Class: DownloadSnapshot::DownloadStoppedState

Inherits:
DownloadSnapshotState show all
Defined in:
lib/scripts/ec2/download_snapshot.rb

Overview

Snapshot can no longer be downloaded. Shut down the instance.

Instance Attribute Summary

Attributes inherited from ScriptExecutionState

#context, #logger

Instance Method Summary collapse

Methods inherited from DownloadSnapshotState

load_state

Methods inherited from ScriptExecutionState

#done?, #end_state, #failed?, #get_superclass_name, #initialize, #register_state_change_listener, #start_state_machine, #to_s

Methods included from StateTransitionHelper

#attach_volume, #connect, #copy_distribution, #create_fs, #create_image_from_instance, #create_labeled_fs, #create_security_group_with_rules, #create_snapshot, #create_volume, #create_volume_from_snapshot, #delete_security_group, #delete_snapshot, #delete_volume, #describe_instance, #detach_volume, #determine_file, #disable_ssh_tty, #disconnect, #ec2_handler, #ec2_handler=, #enable_ssh_tty, #get_aws_kernel_image_aki, #get_aws_region_from_endpoint, #get_partition_count, #get_partition_fs_type, #get_partition_fs_type_and_label, #get_partition_label, #get_partition_table, #get_root_device_name, #get_root_partition_fs_type, #get_root_partition_fs_type_and_label, #get_root_partition_label, #get_root_volume_id, #launch_instance, #local_decompress_and_dump_file_to_device, #local_dump_and_compress_device_to_file, #local_dump_device_to_file, #local_dump_file_to_device, #mount_fs, #mount_fs_old, #register_snapshot, #remote_copy, #remote_copy_old, #remote_handler, #remote_handler=, #retrieve_instances, #retrieve_security_groups, #set_partition_table, #shut_down_instance, #snapshot_accessible, #start_instance, #stop_instance, #unmount_fs, #upload_file, #zip_volume

Methods included from VCloudTransitionHelper

#retrieve_ip_services

Constructor Details

This class inherits a constructor from ScriptExecutionState

Instance Method Details

#enterObject



216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
# File 'lib/scripts/ec2/download_snapshot.rb', line 216

def enter
  error = []
  begin
    shut_down_instance(@context[:instance_id])
  rescue Exception => e
    error << e
    post_message("Unable to shutdown instance '#{@context[:instance_id]}': #{e.to_s}")
  end
  #XXX: delete Security Group according to its name
  if @context[:security_group_name].eql?(Ec2Script::CS_SEC_GRP_NAME)
    begin
      delete_security_group(@context[:security_group_name])
    rescue Exception => e
      error << e
      post_message("Unable to delete Security Group '#{@context[:security_group_name]}': #{e.to_s}")
    end
  end
  begin
    delete_volume(@context[:source_volume_id])
  rescue Exception => e
    error << e
    post_message("Unable to delete volume '#{@context[:source_volume_id]}': #{e.to_s}")
  end
  begin
    delete_volume(@context[:dest_volume_id])
  rescue Exception => e
    error << e
    post_message("Unable to delete volume '#{@context[:dest_volume_id]}': #{e.to_s}")
  end

  if error.size() > 0
    raise Exception.new("Cleanup error(s)")
  end

  Done.new(@context)
end