Class: Breeze::Server::Image

Inherits:
Breeze::Server show all
Defined in:
lib/breeze/tasks/server/image.rb

Overview

Dealing with machine images.

Instance Method Summary collapse

Methods inherited from Veur

inherited

Instance Method Details

#createObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/breeze/tasks/server/image.rb', line 10

def create
  # The commented lines used to work before fog 0.7.0.
  # options[:block_device_mapping] = [{:device_name => '/dev/sda1', :ebs_volume_size => options.delete(:root_device_size)}]
  options[:block_device_mapping] = [{'DeviceName' => '/dev/sda1', 'Ebs.VolumeSize' => options.delete(:root_device_size)}]
  server = create_server(options)
  prepare_private_image(server.public_ip_address)
  print('Stopping the server before saving a snapshot')
  server.stop
  wait_until('stopped!') { server.stopped? }
  thor('describe:images')
  puts('===== Old server images are listed above. Give a name to the new image. =====')
  # image = fog.images.create(:name => ask('Image name >'), :instance_id => server.id)
  fog.create_image(server.id, ask('Image name >'), '')
  server.destroy
  puts
  # puts("===> Created image #{image.id} and terminated temporary server #{server.id}.")
  puts("===> Created a new server image and terminated temporary server #{server.id}.")
  puts
  puts("NOTICE: it may take a while before the new image shows up in describe:images")
end

#destroy(*image_ids) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/breeze/tasks/server/image.rb', line 33

def destroy(*image_ids)
  image_ids.each do |image_id|
    image = fog.images.get(image_id)
    if force_or_accept?("Destroy image #{image.display_name}?")
      image.deregister(true)
    end
  end
end