module Chef::Knife::Cloud::VraServiceHelpers

Public Instance Methods

check_for_missing_config_values!(*keys) click to toggle source

rubocop:disable Style/GuardClause

# File lib/chef/knife/cloud/vra_service_helpers.rb, line 80
def check_for_missing_config_values!(*keys)
  missing = keys.select { |x| config[x].nil? }

  unless missing.empty?
    ui.error("The following required parameters are missing: #{missing.join(", ")}")
    exit(1)
  end
end
create_service_instance() click to toggle source
# File lib/chef/knife/cloud/vra_service_helpers.rb, line 29
def create_service_instance
  Chef::Knife::Cloud::VraService.new(username:  config[:vra_username],
                                     password:  config[:vra_password],
                                     base_url:  config[:vra_base_url],
                                     tenant:    config[:vra_tenant],
                                     page_size: config[:vra_page_size],
                                     verify_ssl: verify_ssl?)
end
validate!() click to toggle source
# File lib/chef/knife/cloud/vra_service_helpers.rb, line 75
def validate!
  check_for_missing_config_values!(:vra_username, :vra_password, :vra_base_url, :vra_tenant)
end
verify_ssl?() click to toggle source
# File lib/chef/knife/cloud/vra_service_helpers.rb, line 38
def verify_ssl?
  !config[:vra_disable_ssl_verify]
end
wait_for_request(request, wait_time = 600, refresh_rate = 2) click to toggle source
# File lib/chef/knife/cloud/vra_service_helpers.rb, line 42
def wait_for_request(request, wait_time = 600, refresh_rate = 2)
  print "Waiting for request to complete."

  last_status = ""

  begin
    Timeout.timeout(wait_time) do
      loop do
        request.refresh

        if request.completed?
          print "\n"
          break
        end

        if last_status == request.status
          print "."
        else
          last_status = request.status
          print "\n"
          print "Current request status: #{request.status}."
        end

        sleep refresh_rate
      end
    end
  rescue Timeout::Error
    ui.msg("")
    ui.error("Request did not complete in #{wait_time} seconds. Check the Requests tab in the vRA UI for more information.")
    exit 1
  end
end