class Chef::Knife::ScalewayServerDestroy

Public Instance Methods

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

  validate!

  servers_ids = []

  if locate_config_value(:server)
    servers_ids = [locate_config_value(:server)]
  elsif locate_config_value(:all)
    ui.error('Warning all servers will be lost unless you exit with ctrl-c now!')

    15.times do |x|
      print x
      print 13.chr
      sleep 1
    end

    servers_ids = client.servers.all.map(&:id)
  else
    ui.error 'You need to specify either a --server id or --all'
    exit 1
  end

  if servers_ids.empty?
    ui.error('Could not find any server(s)')
    exit 1
  end

  servers_ids.each do |id|
    ui.info "Delete server with id: #{id}"
    result = client.servers.delete(id: id)
    ui.info 'OK' if result == true || ui.error(JSON.parse(result)['message'])
  end
end