Class: VagrantAWS::Action::DeregisterImage

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-aws/action/deregister_image.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, env) ⇒ DeregisterImage

Returns a new instance of DeregisterImage.



4
5
6
# File 'lib/vagrant-aws/action/deregister_image.rb', line 4

def initialize(app, env)
	@app = app
end

Instance Method Details

#call(env) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/vagrant-aws/action/deregister_image.rb', line 8

def call(env)
	if env['image.deregister']
		image = Fog::Compute.new(:provider => 'AWS').images.new(load_image(env))	
		env.ui.info I18n.t("vagrant.plugins.aws.actions.deregister_image.deregistering", :image => image.id)
		image.reload
		image.deregister(true)  # Delete snapshot when deregistering	
	end
	@app.call(env)
end

#load_image(env) ⇒ Object



18
19
20
21
22
# File 'lib/vagrant-aws/action/deregister_image.rb', line 18

def load_image(env)
	File.open(File.join(env["box"].directory, "image.json"), "r") do |f|
		JSON.parse(f.read)
	end
end