class Dockistrano::Registry

Attributes

name[R]

Public Class Methods

new(name) click to toggle source
# File lib/dockistrano/registry.rb, line 7
def initialize(name)
  @name = name
end

Public Instance Methods

latest_id_for_image(image_name, tag) click to toggle source
# File lib/dockistrano/registry.rb, line 27
def latest_id_for_image(image_name, tag)
  response = get("repositories", image_name, "tags", tag)
  if response.kind_of?(Net::HTTPNotFound)
    nil
  else
    MultiJson.load(response.body)
  end
end
tags_for_image(image_name) click to toggle source
# File lib/dockistrano/registry.rb, line 14
def tags_for_image(image_name)
  result = MultiJson.load(get("repositories", image_name, "tags").body)
  if result["error"]
    if result["error"] == "Repository not found"
      raise RepositoryNotFoundInRegistry.new("Could not find repository #{image_name} in registry #{name}")
    else
      raise result["error"]
    end
  else
    result
  end
end
to_s() click to toggle source
# File lib/dockistrano/registry.rb, line 36
def to_s
  name
end

Private Instance Methods

get(*url) click to toggle source
# File lib/dockistrano/registry.rb, line 42
def get(*url)
  uri = URI.parse("http://#{name}/v1/#{url.join("/")}")
  Net::HTTP.get_response(uri)
end