class Chef::Knife::IonoscloudRequestWait

Attributes

description[R]
required_options[R]

Public Class Methods

new(args = []) click to toggle source
Calls superclass method
# File lib/chef/knife/ionoscloud_request_wait.rb, line 17
def initialize(args = [])
  super(args)
  @description =
  'Waits until a request status is either DONE or FAILED.'
  @required_options = [:request_id, :ionoscloud_username, :ionoscloud_password]
end

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/ionoscloud_request_wait.rb, line 24
def run
  $stdout.sync = true
  handle_extra_config
  validate_required_params(@required_options, config)

  print "#{ui.color('Waiting for request...', :magenta)}"

  begin
    dot = ui.color('.', :magenta)
    api_client.wait_for { print dot; is_done? config[:request_id] }
  rescue Ionoscloud::ApiError => err
    raise err unless err.code == 404
    ui.error("Request ID #{config[:request_id]} not found.")
  end
  print "\n"
end