class Bosh::Cli::PublicStemcells
Constants
- PUBLIC_STEMCELLS_BASE_URL
Public Instance Methods
all()
click to toggle source
# File lib/cli/public_stemcells.rb, line 19 def all response = HTTPClient.new.get(PUBLIC_STEMCELLS_BASE_URL, {'prefix' => 'bosh-stemcell'}) doc = REXML::Document.new(response.body) stemcells_tags = parse_document(doc) stemcells = parse_stemcells(stemcells_tags) while is_truncated(doc) response = HTTPClient.new.get(PUBLIC_STEMCELLS_BASE_URL, { 'prefix' => 'bosh-stemcell', 'marker' => stemcells_tags.last.get_text('Key').value }) doc = REXML::Document.new(response.body) stemcells_tags = parse_document(doc) stemcells += parse_stemcells(stemcells_tags) end stemcells end
find(stemcell_filename)
click to toggle source
# File lib/cli/public_stemcells.rb, line 15 def find(stemcell_filename) all.detect { |stemcell| stemcell.name == stemcell_filename } end
has_stemcell?(stemcell_filename)
click to toggle source
# File lib/cli/public_stemcells.rb, line 11 def has_stemcell?(stemcell_filename) all.any? { |stemcell| stemcell.name == stemcell_filename } end
recent()
click to toggle source
# File lib/cli/public_stemcells.rb, line 39 def recent stemcell_varietes = all.reject(&:legacy?).group_by(&:variety).values stemcell_varietes.map { |stemcells| stemcells.sort_by(&:version).last } end
Private Instance Methods
is_truncated(doc)
click to toggle source
# File lib/cli/public_stemcells.rb, line 59 def is_truncated(doc) REXML::XPath.match(doc, "/ListBucketResult/IsTruncated").first.get_text == 'true' end
parse_document(doc)
click to toggle source
# File lib/cli/public_stemcells.rb, line 46 def parse_document(doc) REXML::XPath.match(doc, "/ListBucketResult/Contents[Key[text()[not(contains(.,'latest'))]]]") end
parse_stemcells(stemcell_tags)
click to toggle source
# File lib/cli/public_stemcells.rb, line 50 def parse_stemcells(stemcell_tags) stemcell_tags.map do |stemcell_tag| stemcell_key = stemcell_tag.get_text('Key').value stemcell_size = Integer(stemcell_tag.get_text('Size').value) PublicStemcell.new(stemcell_key, stemcell_size) end end