Class: VagrantPlugins::Linode::Actions::CreateImage

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-linode/actions/create_image.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, _env) ⇒ CreateImage

Returns a new instance of CreateImage.



5
6
7
8
# File 'lib/vagrant-linode/actions/create_image.rb', line 5

def initialize(app, _env)
  @app = app
    @machine = _env[:machine]
end

Instance Method Details

#call(env) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/vagrant-linode/actions/create_image.rb', line 10

def call(env)
  linode_api = env[:linode_api]
  env[:ui].info ('%-36s %-36s %-10s %-10s' % ['Image ID', 'Disk Label', 'Disk ID', 'Job ID'])
  linode_api.linode.disk.list(:linodeid => @machine.id).each do |disk|
    next if disk.type == 'swap'
      img = linode_api.linode.disk.imagize :linodeid => disk.linodeid, :diskid => disk.diskid, :description => 'Imagized with Vagrant'
    env[:ui].info ('%-36s %-36s %-10s %-10s' % [img.imageid, disk.label, disk.diskid, img.jobid])
  end
  @app.call(env)
end