module Chef::Knife::Cloud::GoogleServiceHelpers

Constants

REQUIRED_KEYS

Public Instance Methods

check_for_missing_config_values!(*keys) click to toggle source
# File lib/chef/knife/cloud/google_service_helpers.rb, line 35
def check_for_missing_config_values!(*keys)
  keys_to_check = REQUIRED_KEYS + keys

  missing = keys_to_check.select { |x| config[x].nil? }

  unless missing.empty?
    message = "The following required parameters are missing: #{missing.join(", ")}"
    ui.error(message)
    raise message
  end
end
create_service_instance() click to toggle source
# File lib/chef/knife/cloud/google_service_helpers.rb, line 24
def create_service_instance
  Chef::Knife::Cloud::GoogleService.new(
    project:       config[:gce_project],
    zone:          config[:gce_zone],
    wait_time:     config[:request_timeout],
    refresh_rate:  config[:request_refresh_rate],
    max_pages:     config[:gce_max_pages],
    max_page_size: config[:gce_max_page_size]
  )
end
private_ip_for(server) click to toggle source
# File lib/chef/knife/cloud/google_service_helpers.rb, line 47
def private_ip_for(server)
  server.network_interfaces.first.network_ip
rescue NoMethodError
  "unknown"
end
public_ip_for(server) click to toggle source
# File lib/chef/knife/cloud/google_service_helpers.rb, line 53
def public_ip_for(server)
  server.network_interfaces.first.access_configs.first.nat_ip
rescue NoMethodError
  "unknown"
end
valid_disk_size?(size) click to toggle source
# File lib/chef/knife/cloud/google_service_helpers.rb, line 59
def valid_disk_size?(size)
  size.between?(10, 10_000)
end