class Chef::Knife::CloudstackPortforwardingruleList

Public Instance Methods

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

  validate!

  rule_list = [
    ui.color('ID', :bold),
    ui.color('PublicIPID', :bold),
    ui.color('PublicIP', :bold),
    ui.color('PublicPort', :bold),
    ui.color('PrivatePort', :bold),
    ui.color('Protocol', :bold),
    ui.color('VirtualMachineID', :bold),
    ui.color('VirtualMachineName', :bold)
  ]
  response = connection.list_port_forwarding_rules['listportforwardingrulesresponse']
    if rules = response['portforwardingrule']
      rules.each do |rule|
        rule_list << rule['id'].to_s
        rule_list << rule['ipaddressid'].to_s
        rule_list << rule['ipaddress'].to_s
        rule_list << rule['publicport'].to_s
        rule_list << rule['privateport'].to_s
        rule_list << rule['protocol'].to_s
        rule_list << rule['virtualmachineid'].to_s
        rule_list << rule['virtualmachinename'].to_s
      end
    end
  puts ui.list(rule_list, :columns_across, 8)

end