class Chef::Knife::CloudstackNetworkofferingList

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/cloudstack_networkoffering_list.rb, line 29
def run
  $stdout.sync = true

  validate!

  network_list = [
    ui.color('ID', :bold),
    ui.color('Name', :bold),
    ui.color('Display Name', :bold),
    ui.color('Traffic Type', :bold),
    ui.color('State', :bold),
    ui.color('Service Offering ID', :bold)
  ]

  response = connection.list_network_offerings['listnetworkofferingsresponse']

  if networks = response['networkoffering']

    networks.each do |networkoffering|
      # puts networkoffering
      network_list << networkoffering['id'].to_s
      network_list << networkoffering['name'].to_s
      network_list << networkoffering['displaytext'].to_s
      network_list << networkoffering['traffictype'].to_s
      network_list << begin
        state = networkoffering['state'].to_s.downcase
        case state
          when 'allocated'
            ui.color(state, :red)
          when 'pending'
            ui.color(state, :yellow)
          else
            ui.color(state, :green)
        end
      end
      network_list << networkoffering['serviceofferingid'].to_s
    end
  end

  puts ui.list(network_list, :uneven_columns_across, 6)

end