class Chef::Knife::ProfitbricksFirewallList

Public Instance Methods

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

  validate_required_params(%i(datacenter_id server_id nic_id), Chef::Config[:knife])

  firewall_list = [
    ui.color('ID', :bold),
    ui.color('Name', :bold),
    ui.color('Protocol', :bold),
    ui.color('Source MAC', :bold),
    ui.color('Source IP', :bold),
    ui.color('Target IP', :bold),
    ui.color('Port Range Start', :bold),
    ui.color('Port Range End', :bold),
    ui.color('ICMP Type', :bold),
    ui.color('ICMP CODE', :bold)
  ]
  connection

  ProfitBricks::Firewall.list(Chef::Config[:knife][:datacenter_id], Chef::Config[:knife][:server_id], Chef::Config[:knife][:nic_id]).each do |firewall|
    firewall_list << firewall.id
    firewall_list << firewall.properties['name']
    firewall_list << firewall.properties['protocol'].to_s
    firewall_list << firewall.properties['sourceMac'].to_s
    firewall_list << firewall.properties['sourceIp'].to_s
    firewall_list << firewall.properties['targetIp'].to_s
    firewall_list << firewall.properties['portRangeStart'].to_s
    firewall_list << firewall.properties['portRangeEnd'].to_s
    firewall_list << firewall.properties['icmpType'].to_s
    firewall_list << firewall.properties['icmpCode'].to_s
  end

  puts ui.list(firewall_list, :uneven_columns_across, 10)
end