class Chef::Knife::IonoscloudIpblockCreate
Attributes
description[R]
required_options[R]
Public Class Methods
new(args = [])
click to toggle source
Calls superclass method
# File lib/chef/knife/ionoscloud_ipblock_create.rb, line 27 def initialize(args = []) super(args) @description = 'Reserves an IP block at a specified location that can be used by resources '\ 'within any VDCs provisioned in that same location. An IP block consists of '\ 'one or more static IP addresses. The IP block size \(number of IP addresses\) '\ 'and location are required to reserve an IP block.' @required_options = [:size, :location, :ionoscloud_username, :ionoscloud_password] end
Public Instance Methods
run()
click to toggle source
# File lib/chef/knife/ionoscloud_ipblock_create.rb, line 37 def run $stdout.sync = true handle_extra_config validate_required_params(@required_options, config) print "#{ui.color('Allocating IP block...', :magenta)}" params = { location: config[:location], size: config[:size], name: config[:name], }.compact ipblock, _, headers = Ionoscloud::IPBlocksApi.new(api_client).ipblocks_post_with_http_info({ properties: params.compact }) dot = ui.color('.', :magenta) api_client.wait_for { print dot; is_done? get_request_id headers } puts "\n" puts "#{ui.color('ID', :cyan)}: #{ipblock.id}" puts "#{ui.color('Name', :cyan)}: #{ipblock.properties.name}" puts "#{ui.color('Location', :cyan)}: #{ipblock.properties.location}" puts "#{ui.color('IP Addresses', :cyan)}: #{ipblock.properties.ips.to_s}" puts 'done' end