class Chef::Knife::OciServerShow
List details of a particular OCI instance.
Public Instance Methods
run()
click to toggle source
# File lib/chef/knife/oci_server_show.rb, line 26 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 OCI::Errors::ServiceError => service_error raise unless service_error.service_code == 'NotAuthorizedOrNotFound' else add_vnic_details(vnic_info.data) if vnic_info.data.is_primary == true vnic_array.unshift(vnic_info.data) # make primary interface first in the array else vnic_array.push(vnic_info.data) end end end add_server_details(server.data, vnic_array[0] ? vnic_array[0].vcn_id : nil) display_server_info(config, server.data, vnic_array) end