Class: CopyAmi::TargetInstanceLaunchedState
- Inherits:
-
CopyAmiState
- Object
- ScriptExecutionState
- CopyAmiState
- CopyAmi::TargetInstanceLaunchedState
- Defined in:
- lib/scripts/ec2/copy_ami.rb
Overview
Destination instance is started. Now configure storage.
Instance Attribute Summary
Attributes inherited from ScriptExecutionState
Instance Method Summary collapse
Methods inherited from CopyAmiState
load_state, #local_region, #remote_region
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
Constructor Details
This class inherits a constructor from ScriptExecutionState
Instance Method Details
#enter ⇒ Object
273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 |
# File 'lib/scripts/ec2/copy_ami.rb', line 273 def enter() local_region() ec2_helper = Ec2Helper.new(@context[:ec2_api_handler]) volume_size = ec2_helper.snapshot_prop(@context[:snapshot_id], :volumeSize).to_i # remote_region() @context[:target_volume_id] = create_volume(@context[:target_availability_zone], volume_size) device = @context[:temp_device_name] mount_point = "/mnt/tmp_#{@context[:target_volume_id]}" attach_volume(@context[:target_volume_id], @context[:target_instance_id], device, Ec2Script::CS_AWS_TIMEOUT) connect(@context[:target_dns_name], @context[:target_ssh_username], nil, @context[:target_ssh_keydata]) # check if we need to create a partition table if !(@context[:partition_table] == nil) ("Creating a partition table on device '#{device}'...") set_partition_table(device, @context[:partition_table]) #XXX: HANDLE at a LOWER LEVEL # before adding partition table, adjust device name #set_partition_table(device, @context[:partition_table].gsub(/\/dev\/(s|xv)d[a-z]/, "#{@context[:temp_device_name]}")) # adjust partition to mount device = device + @context[:root_partition_nb] end # make root partition create_labeled_fs(@context[:target_dns_name], device, @context[:fs_type], @context[:label]) mount_fs(mount_point, device) disconnect() TargetVolumeReadyState.new(@context) end |