Class: VagrantPlugins::GANETI::Action::RemoveInstance

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-ganeti/action/remove_instance.rb

Overview

“unlink” vagrant and the managed server

Instance Method Summary collapse

Constructor Details

#initialize(app, env) ⇒ RemoveInstance

Returns a new instance of RemoveInstance.



9
10
11
12
# File 'lib/vagrant-ganeti/action/remove_instance.rb', line 9

def initialize(app, env)
  @app    = app
  @logger = Log4r::Logger.new("vagrant_ganeti::action::remove_instance")
end

Instance Method Details

#call(env) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/vagrant-ganeti/action/remove_instance.rb', line 14

def call(env)
	  server = env[:ganeti_compute]
	  createjob = server.instance_terminate
  # set machine id to nil
  env[:machine].id = nil

	  env[:ui].info("Removing the instance #{server.info['instance_name']}")
	  while true
		status =  server.is_job_ready(createjob)

		if  status == "error"
			env[:ui].info("Error Removing instance")
			break
		elsif status == "running"
			#Waiting for the message to succeed
			sleep(15)
		elsif status  == "success"
	    		env[:ui].info("Instance #{server.info['instance_name']} Sucessfully Removed")
			break
		end
	
    end

  @app.call(env)
end