class Chef::Knife::ProfitbricksNicCreate

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/profitbricks_nic_create.rb, line 49
def run
  $stdout.sync = true
  validate_required_params(%i(datacenter_id server_id lan), Chef::Config[:knife])

  print "#{ui.color('Creating nic...', :magenta)}"

  params = {
    name: Chef::Config[:knife][:name],
    ips: Chef::Config[:knife][:ips],
    dhcp: Chef::Config[:knife][:dhcp],
    lan: Chef::Config[:knife][:lan]
  }

  if Chef::Config[:knife][:nat]
    params[:nat] = Chef::Config[:knife][:nat]
  end

  connection
  nic = ProfitBricks::NIC.create(
    Chef::Config[:knife][:datacenter_id],
    Chef::Config[:knife][:server_id],
    params.compact
  )

  dot = ui.color('.', :magenta)
  nic.wait_for { print dot; ready? }
  nic.reload

  puts "\n"
  puts "#{ui.color('ID', :cyan)}: #{nic.id}"
  puts "#{ui.color('Name', :cyan)}: #{nic.properties['name']}"
  puts "#{ui.color('IPs', :cyan)}: #{nic.properties['ips']}"
  puts "#{ui.color('DHCP', :cyan)}: #{nic.properties['dhcp']}"
  puts "#{ui.color('LAN', :cyan)}: #{nic.properties['lan']}"
  puts "#{ui.color('NAT', :cyan)}: #{nic.properties['nat']}"

  puts 'done'
end