class Chef::Knife::ScalewayServerRebuild

Public Instance Methods

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

  validate!

  unless locate_config_value(:image)
    ui.error('Image ID cannot be empty. => -i <image-id>')
    exit 1
  end

  unless locate_config_value(:id)
    ui.error('ID cannot be empty. => -I <id>')
    exit 1
  end

  result = client.server_actions.rebuild(
    server_id: locate_config_value(:id),
    image: locate_config_value(:image)
  )

  unless result.class == DropletKit::Action
    ui.error JSON.parse(result)['message']
    exit 1
  end

  wait_for_status(result, status: 'active')
end