Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-05-17 17:41:47 +0300
committerKamil Trzcinski <ayufan@ayufan.eu>2016-05-17 17:41:47 +0300
commita82109eee80bf703ad8e82de2410f490e5fc6d54 (patch)
tree4417e900b39111123d175303fec9deb71be14e4a /lib/container_registry
parentac6992ba682de08b79e5ddde08dbf566827e2f07 (diff)
Add .gitkeep
Diffstat (limited to 'lib/container_registry')
-rw-r--r--lib/container_registry/config.rb1
-rw-r--r--lib/container_registry/registry.rb10
-rw-r--r--lib/container_registry/repository.rb1
-rw-r--r--lib/container_registry/tag.rb10
4 files changed, 20 insertions, 2 deletions
diff --git a/lib/container_registry/config.rb b/lib/container_registry/config.rb
index 626b36cbaa9..589f9f4380a 100644
--- a/lib/container_registry/config.rb
+++ b/lib/container_registry/config.rb
@@ -9,6 +9,7 @@ module ContainerRegistry
def [](key)
return unless data
+
data[key]
end
end
diff --git a/lib/container_registry/registry.rb b/lib/container_registry/registry.rb
index d3b117eeaca..07490de94ba 100644
--- a/lib/container_registry/registry.rb
+++ b/lib/container_registry/registry.rb
@@ -3,13 +3,19 @@ module ContainerRegistry
attr_reader :uri, :client, :path
def initialize(uri, options = {})
- @path = options[:path] || uri
- @uri = URI.parse(uri)
+ @uri = uri
+ @path = options[:path] || default_path
@client = ContainerRegistry::Client.new(uri, options)
end
def [](name)
ContainerRegistry::Repository.new(self, name)
end
+
+ private
+
+ def default_path
+ @uri.sub(/^https?:\/\//, '')
+ end
end
end
diff --git a/lib/container_registry/repository.rb b/lib/container_registry/repository.rb
index 07cdb78264e..77825056138 100644
--- a/lib/container_registry/repository.rb
+++ b/lib/container_registry/repository.rb
@@ -20,6 +20,7 @@ module ContainerRegistry
def manifest
return @manifest if defined?(@manifest)
+
@manifest = client.repository_tags(name)
end
diff --git a/lib/container_registry/tag.rb b/lib/container_registry/tag.rb
index 14cee8be889..f06806db6a8 100644
--- a/lib/container_registry/tag.rb
+++ b/lib/container_registry/tag.rb
@@ -12,6 +12,7 @@ module ContainerRegistry
def manifest
return @manifest if defined?(@manifest)
+
@manifest = client.repository_manifest(repository.name, name)
end
@@ -21,33 +22,39 @@ module ContainerRegistry
def [](key)
return unless manifest
+
manifest[key]
end
def digest
return @digest if defined?(@digest)
+
@digest = client.repository_tag_digest(repository.name, name)
end
def config_blob
return @config_blob if defined?(@config_blob)
return unless manifest && manifest['config']
+
@config_blob = ContainerRegistry::Blob.new(repository, manifest['config'])
end
def config
return unless config_blob
+
@config ||= ContainerRegistry::Config.new(self, config_blob)
end
def created_at
return unless config
+
@created_at ||= DateTime.rfc3339(config['created'])
end
def layers
return @layers if defined?(@layers)
return unless manifest
+
@layers = manifest['layers'].map do |layer|
ContainerRegistry::Blob.new(repository, layer)
end
@@ -55,16 +62,19 @@ module ContainerRegistry
def total_size
return unless layers
+
layers.map(&:size).sum
end
def delete
return unless digest
+
client.delete_repository_tag(repository.name, digest)
end
def copy_to(repository)
return unless manifest
+
layers.each do |blob|
repository.mount_blob(blob)
end