class Bosh::Cli::Command::Release::InspectRelease
Public Instance Methods
inspect(release)
click to toggle source
# File lib/cli/commands/release/inspect_release.rb, line 7 def inspect(release) auth_required show_current_state release = Bosh::Cli::NameVersionPair.parse(release) response = director.inspect_release(release.name, release.version) if !reasonable_response?(response) raise Bosh::Cli::DirectorError, 'Response from director does not include expected information. Is your director version 1.3034.0 or newer?' end templates_table = build_jobs_table(response) say(templates_table.render) nl packages_table = build_packages_table(response) say(packages_table.render) end
Private Instance Methods
build_jobs_table(release)
click to toggle source
# File lib/cli/commands/release/inspect_release.rb, line 29 def build_jobs_table(release) table do |t| t.headings = 'Job', 'Fingerprint', 'Blobstore ID', 'SHA1', 'Links Consumed', 'Links Provided' release['jobs'].each_with_index do |job, index| consumed_links = (job['consumes'].nil? ? '' : YAML.dump(job['consumes']).sub("---\n", '')) provided_links = (job['provides'].nil? ? '' : YAML.dump(job['provides']).sub("---\n", '')) color = (index.even? ? :yellow : :green) row = [ job['name'].make_color(color), job['fingerprint'].make_color(color), job['blobstore_id'].make_color(color), job['sha1'].make_color(color), consumed_links.make_color(color), provided_links.make_color(color)] t << row end end end
build_packages_table(release)
click to toggle source
# File lib/cli/commands/release/inspect_release.rb, line 53 def build_packages_table(release) table do |t| t.headings = 'Package', 'Fingerprint', 'Compiled For', 'Blobstore ID', 'SHA1' release['packages'].each do |package| src_pkg_row = [ package['name'].make_yellow, package['fingerprint'].make_yellow, package['blobstore_id'].nil? ? '(no source)'.make_red : '(source)'.make_yellow, package['blobstore_id'].nil? ? "" : package['blobstore_id'].make_yellow, package['sha1'].nil? ? "" : package['sha1'].make_yellow] t << src_pkg_row package['compiled_packages'].each do |compiled| comp_pkg_row = [ '', '', compiled['stemcell'].make_green, compiled['blobstore_id'].make_green, compiled['sha1'].make_green] t << comp_pkg_row end end end end
reasonable_response?(response)
click to toggle source
older directors return an incorrect response for the request we make (they ignore the version parameter). this method checks for that condition so we can give a helpful error message.
# File lib/cli/commands/release/inspect_release.rb, line 80 def reasonable_response?(response) !response.has_key?('versions') end