class Chef::Knife::BmcsServerShow

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

Public Instance Methods

run() click to toggle source
# 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