Class: Chef::Knife::CloudstackPublicipList

Inherits:
Chef::Knife
  • Object
show all
Includes:
CloudstackBase
Defined in:
lib/chef/knife/cloudstack_publicip_list.rb

Instance Method Summary collapse

Methods included from CloudstackBase

#connection, included, #locate_config_value, #msg_pair, #validate!

Instance Method Details

#runObject



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/chef/knife/cloudstack_publicip_list.rb', line 29

def run
  $stdout.sync = true

  validate!

  publicip_list = [
    ui.color('ID', :bold),
    ui.color('ipaddress', :bold),
    ui.color('isSourceNAT', :bold),
    ui.color('isStaticNAT', :bold),
    ui.color('VirtualMachineDisplayName', :bold)
  ]
  response = connection.list_public_ip_addresses['listpublicipaddressesresponse']
    if publicips = response['publicipaddress']
      publicips.each do |publicip|
        publicip_list << publicip['id'].to_s
        publicip_list << publicip['ipaddress'].to_s
        publicip_list << publicip['issourcenat'].to_s
        publicip_list << publicip['isstaticnat'].to_s
        publicip_list << publicip['virtualmachinedisplayname'].to_s
      end
    end
  puts ui.list(publicip_list, :columns_across, 5)

end