class Chef::Knife::BmcsCompartmentList

List BMCS compartments

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/bmcs_compartment_list.rb, line 24
def run
  options = {}
  options[:limit] = config[:limit] if config[:limit]

  response = identity_client.list_compartments(bmcs_config.tenancy, options)
  # Check whether there is a next page to decide whether to show an 'output is truncated' warning.
  # TODO: expected to be addressed server-side in a future release at which point this special
  # handling can be removed.
  show_truncated_warning = false
  if response && response.headers.include?('opc-next-page')
    response_page2 = identity_client.list_compartments(bmcs_config.tenancy, options.merge(page: response.headers['opc-next-page']))
    show_truncated_warning = response_page2 && response_page2.data && !response_page2.data.empty?
  end

  display_list(response, ['Display Name', 'ID'], warn_on_truncated: show_truncated_warning) do |item|
    [item.name, item.id]
  end
end