class Chef::Knife::ProfitbricksServerCreate
Public Instance Methods
run()
click to toggle source
# File lib/chef/knife/profitbricks_server_create.rb, line 51 def run $stdout.sync = true validate_required_params(%i(datacenter_id name cores ram), Chef::Config[:knife]) print "#{ui.color('Creating server...', :magenta)}" params = { name: Chef::Config[:knife][:name], cores: Chef::Config[:knife][:cores], cpuFamily: Chef::Config[:knife][:cpufamily], ram: Chef::Config[:knife][:ram], availabilityZone: Chef::Config[:knife][:availabilityzone] } if Chef::Config[:knife][:bootcdrom] params[:bootCdrom] = { id: Chef::Config[:knife][:bootcdrom] } end if Chef::Config[:knife][:bootvolume] params[:bootVolume] = { id: Chef::Config[:knife][:bootvolume] } end connection server = ProfitBricks::Server.create( Chef::Config[:knife][:datacenter_id], params.compact ) dot = ui.color('.', :magenta) server.wait_for { print dot; ready? } server.reload puts "\n" puts "#{ui.color('ID', :cyan)}: #{server.id}" puts "#{ui.color('Name', :cyan)}: #{server.properties['name']}" puts "#{ui.color('Cores', :cyan)}: #{server.properties['cores']}" puts "#{ui.color('CPU Family', :cyan)}: #{server.properties['cpuFamily']}" puts "#{ui.color('Ram', :cyan)}: #{server.properties['ram']}" puts "#{ui.color('Availability Zone', :cyan)}: #{server.properties['availabilityZone']}" puts "#{ui.color('Boot Volume', :cyan)}: #{server.properties['bootVolume']}" puts "#{ui.color('Boot CDROM', :cyan)}: #{server.properties['bootCdrom']}" puts 'done' end