Sha256: 94a2a86a75ddd4a6d5a60f031dc2194a3faea4c9697037ade041459421ed43ad
Contents?: true
Size: 1.93 KB
Versions: 1
Compression:
Stored size: 1.93 KB
Contents
require 'pp' require 'mccloud/util/iterator' module Mccloud module Command include Mccloud::Util def up(selection,options) on_selected_machines(selection) do |id,vm| provider=@session.config.providers[vm.provider] if (id.nil?) puts "Machine #{vm.name} doesn't yet exist" provider_options=vm.provider_options boxname=vm.name puts "Spinning up a new machine called #{boxname}" instance=provider.servers.create(provider_options) puts "Waiting for it the machine to become accessible" instance.wait_for { printf "."; STDOUT.flush; ready?} puts prefix=@session.config.mccloud.prefix provider.create_tags(instance.id, { "Name" => "#{prefix} - #{boxname}"}) # Resetting the in memory model of the new machine @all_servers[boxname.to_s]=instance.id unless @session.config.vms[boxname.to_s].nil? @session.config.vms[boxname.to_s].reload end # Wait for ssh to become available ... puts "Waiting for ssh to be come available" Mccloud::Util.execute_when_tcp_available(instance.public_ip_address, { :port => 22, :timeout => 60 }) do puts "Ok, ssh is available , proceeding with bootstrap" end @session.bootstrap(boxname.to_s,nil,options) else state=vm.instance.state if state =="stopped" puts "Machine #{vm.name} was stopped -> starting it again" vm.instance.start vm.instance.wait_for { printf ".";STDOUT.flush; ready?} puts else puts "Machine #{selection} already exists but is currently in state #{state} " end end end @session.provision(selection,options) #server.boostrap(:image_id => 'ami', :private_key_path => '', :public_key_path => '') end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mccloud-0.0.1 | lib/mccloud/command/up.rb |