Class: Bosh::Cli::Command::Release::InspectRelease
- Defined in:
- lib/cli/commands/release/inspect_release.rb
Constant Summary
Constants inherited from Base
Instance Attribute Summary
Attributes inherited from Base
#args, #exit_code, #info, #options, #out, #runner, #work_dir
Instance Method Summary collapse
- #build_jobs_table(release) ⇒ Object
- #build_packages_table(release) ⇒ Object
- #inspect(release) ⇒ Object
-
#reasonable_response?(response) ⇒ Boolean
older directors return an incorrect response for the request we make (they ignore the version parameter).
Methods inherited from Base
#add_option, #blob_manager, #blobstore, #cache_dir, #config, #confirmed?, #credentials, #deployment, #director, #initialize, #interactive?, #logged_in?, #non_interactive?, #progress_renderer, #redirect, #release, #remove_option, #run_nested_command, #show_current_state, #target, #target_name, #verbose?
Methods included from Bosh::Cli::CommandDiscovery
#desc, #method_added, #option, #register_command, #usage
Methods included from DeploymentHelper
#build_manifest, #cancel_deployment, #deployment_changed?, #inspect_deployment_changes, #job_exists_in_deployment?, #job_unique_in_deployment?, #jobs_and_indexes, #prepare_deployment_manifest, #prompt_for_errand_name, #prompt_for_job_and_index
Constructor Details
This class inherits a constructor from Bosh::Cli::Command::Base
Instance Method Details
#build_jobs_table(release) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/cli/commands/release/inspect_release.rb', line 27 def build_jobs_table(release) table do |t| t.headings = 'Job', 'Fingerprint', 'Blobstore ID', 'SHA1' release['jobs'].each do |job| row = [ job['name'].make_yellow, job['fingerprint'].make_yellow, job['blobstore_id'].make_yellow, job['sha1'].make_yellow] t << row end end end |
#build_packages_table(release) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/cli/commands/release/inspect_release.rb', line 41 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 |
#inspect(release) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# 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 |
#reasonable_response?(response) ⇒ Boolean
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.
68 69 70 |
# File 'lib/cli/commands/release/inspect_release.rb', line 68 def reasonable_response?(response) !response.has_key?('versions') end |