Class: Chef::Knife::BmcsServerShow

Inherits:
Chef::Knife show all
Includes:
BmcsCommonOptions, BmcsHelper
Defined in:
lib/chef/knife/bmcs_server_show.rb

Overview

List BMCS instances. Note that this lists all instances in a compartment, not just those that are set up as Chef nodes.

Instance Method Summary collapse

Methods included from BmcsCommonOptions

included

Methods included from BmcsHelper

#bmcs_config, #check_can_access_instance, #compartment_id, #compute_client, #confirm, #display_list, #display_server_info, #error_and_exit, #identity_client, #network_client, #show_value, #validate_required_params, #warn_if_page_is_truncated

Instance Method Details

#runObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/chef/knife/bmcs_server_show.rb', line 25

def run
  validate_required_params(%i[instance_id], config)
  vnic_array = []
  server = check_can_access_instance(config[:instance_id])
  error_and_exit 'Unable to retrieve instance' unless server.data
  vnics = compute_client.list_vnic_attachments(compartment_id, instance_id: config[:instance_id])
  vnics.data && vnics.data.each do |vnic|
    next unless vnic.lifecycle_state == 'ATTACHED'
    begin
      vnic_info = network_client.get_vnic(vnic.vnic_id, {})
    rescue OracleBMC::Errors::ServiceError => service_error
      raise unless service_error.serviceCode == 'NotAuthorizedOrNotFound'
    else
      # for now, only display information for primary vnic
      if vnic_info.data.is_primary == true
        vnic_array.push(vnic_info.data)
        break
      end
    end
  end

  display_server_info(config, server.data, vnic_array)
end