Class: CopyAmi::AmiSnapshotCreatedState

Inherits:
CopyAmiState show all
Defined in:
lib/scripts/ec2/copy_ami.rb

Overview

Snapshot is created from the AMI. Create a volume from the snapshot, attach and mount the volume as second device.

Instance Attribute Summary

Attributes inherited from ScriptExecutionState

#context, #logger

Instance Method Summary collapse

Methods inherited from CopyAmiState

load_state, #local_region, #remote_region

Methods inherited from ScriptExecutionState

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

Methods included from StateTransitionHelper

#attach_volume, #connect, #copy_distribution, #create_fs, #create_snapshot, #create_volume, #create_volume_from_snapshot, #delete_snapshot, #delete_volume, #detach_volume, #determine_file, #disconnect, #ec2_handler, #ec2_handler=, #launch_instance, #mount_fs, #register_snapshot, #remote_copy, #remote_handler, #remote_handler=, #shut_down_instance, #unmount_fs, #upload_file, #zip_volume

Constructor Details

This class inherits a constructor from ScriptExecutionState

Instance Method Details

#enterObject



115
116
117
118
119
120
121
122
123
124
125
# File 'lib/scripts/ec2/copy_ami.rb', line 115

def enter()
  @context[:source_volume_id] = create_volume_from_snapshot(@context[:snapshot_id],
    @context[:source_availability_zone])
  device = @context[:temp_device_name]
  mount_point = "/mnt/tmp_#{@context[:source_volume_id]}"
  attach_volume(@context[:source_volume_id], @context[:source_instance_id], device)
  connect(@context[:source_dns_name], @context[:source_ssh_username], nil, @context[:source_ssh_keydata])
  mount_fs(mount_point, device)
  disconnect()
  SourceVolumeReadyState.new(@context)
end