class Chef::Knife::ProfitbricksFailoverRemove

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/profitbricks_ipfailover_remove.rb, line 30
def run
  $stdout.sync = true
  validate_required_params(%i[datacenter_id lan_id ip nic_id], Chef::Config[:knife])

  connection

  lan = ProfitBricks::LAN.get(Chef::Config[:knife][:datacenter_id], Chef::Config[:knife][:lan_id])

  ipfailover = lan.properties['ipFailover']

  ipfailover.each_with_index do |value, index|
    if value['nicUuid'] == Chef::Config[:knife][:nic_id] && value['ip'] == Chef::Config[:knife][:ip]
      ipfailover.delete_at(index)
    end
  end

  lan.update(ipFailover: ipfailover)
  lan.wait_for { ready? }
  lan.reload

  puts "\n"
  puts "#{ui.color('ID', :cyan)}: #{lan.id}"
  puts "#{ui.color('Name', :cyan)}: #{lan.properties['name']}"
  puts "#{ui.color('Public', :cyan)}: #{lan.properties['public']}"
  puts "#{ui.color('IP Failover', :cyan)}: #{lan.properties['ipFailover']}"

  puts 'done'
end