summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/container_image.rb28
-rw-r--r--app/models/project.rb16
2 files changed, 9 insertions, 35 deletions
diff --git a/app/models/container_image.rb b/app/models/container_image.rb
index a362ea3adbc..411617ccd71 100644
--- a/app/models/container_image.rb
+++ b/app/models/container_image.rb
@@ -3,36 +3,16 @@ class ContainerImage < ActiveRecord::Base
belongs_to :project
- delegate :container_registry, :container_registry_allowed_paths,
- :container_registry_path_with_namespace, to: :project
-
+ delegate :container_registry, to: :project
delegate :client, to: :container_registry
validates :manifest, presence: true
before_destroy :delete_tags
- before_validation :update_token, on: :create
- def update_token
- paths = container_registry_allowed_paths << name_with_namespace
- token = Auth::ContainerRegistryAuthenticationService.full_access_token(paths)
- client.update_token(token)
- end
-
- def parent
- project
- end
-
- def parent_changed?
- project_id_changed?
- end
-
- # def path
- # [container_registry.path, name_with_namespace].compact.join('/')
- # end
-
- def name_with_namespace
- [container_registry_path_with_namespace, name].reject(&:blank?).join('/')
+ def registry
+ # TODO, container registry with image access level
+ token = Auth::ContainerRegistryAuthenticationService.image_token(self)
end
def tag(tag)
diff --git a/app/models/project.rb b/app/models/project.rb
index 928965643a0..4aa9c6bb2f2 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -405,29 +405,23 @@ class Project < ActiveRecord::Base
@repository ||= Repository.new(path_with_namespace, self)
end
- def container_registry_path_with_namespace
- path_with_namespace.downcase
- end
-
- def container_registry_allowed_paths
- @container_registry_allowed_paths ||= [container_registry_path_with_namespace] +
- container_images.map { |i| i.name_with_namespace }
- end
-
def container_registry
return unless Gitlab.config.registry.enabled
@container_registry ||= begin
- token = Auth::ContainerRegistryAuthenticationService.full_access_token(container_registry_allowed_paths)
+ token = Auth::ContainerRegistryAuthenticationService.full_access_token(project)
+
url = Gitlab.config.registry.api_url
host_port = Gitlab.config.registry.host_port
+ # TODO, move configuration vars into ContainerRegistry::Registry, clean
+ # this method up afterwards
ContainerRegistry::Registry.new(url, token: token, path: host_port)
end
end
def container_registry_url
if Gitlab.config.registry.enabled
- "#{Gitlab.config.registry.host_port}/#{container_registry_path_with_namespace}"
+ "#{Gitlab.config.registry.host_port}/#{path_with_namespace.downcase}"
end
end