Add .gitkeep
This commit is contained in:
parent
ac6992ba68
commit
a82109eee8
6 changed files with 48 additions and 2 deletions
|
@ -9,6 +9,7 @@ module ContainerRegistry
|
|||
|
||||
def [](key)
|
||||
return unless data
|
||||
|
||||
data[key]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -20,6 +20,7 @@ module ContainerRegistry
|
|||
|
||||
def manifest
|
||||
return @manifest if defined?(@manifest)
|
||||
|
||||
@manifest = client.repository_tags(name)
|
||||
end
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
0
shared/registry/.gitkeep
Normal file
0
shared/registry/.gitkeep
Normal file
28
spec/lib/container_registry/registry_spec.rb
Normal file
28
spec/lib/container_registry/registry_spec.rb
Normal file
|
@ -0,0 +1,28 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe ContainerRegistry::Registry do
|
||||
let(:path) { nil }
|
||||
let(:registry) { described_class.new('http://example.com', path: path) }
|
||||
|
||||
subject { registry }
|
||||
|
||||
it { is_expected.to respond_to(:client) }
|
||||
it { is_expected.to respond_to(:uri) }
|
||||
it { is_expected.to respond_to(:path) }
|
||||
|
||||
it { expect(subject['test']).to_not be_nil }
|
||||
|
||||
context '#path' do
|
||||
subject { registry.path }
|
||||
|
||||
context 'path from URL' do
|
||||
it { is_expected.to eq('example.com') }
|
||||
end
|
||||
|
||||
context 'custom path' do
|
||||
let(:path) { 'registry.example.com' }
|
||||
|
||||
it { is_expected.to eq(path) }
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue