Class: CopySnapshot::KeyInPlaceState

Inherits:
CopySnapshotState show all
Defined in:
lib/scripts/ec2/copy_snapshot.rb

Overview

Now we can copy.

Instance Attribute Summary

Attributes inherited from ScriptExecutionState

#context, #logger

Instance Method Summary collapse

Methods inherited from CopySnapshotState

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_labeled_fs, #create_snapshot, #create_volume, #create_volume_from_snapshot, #delete_snapshot, #delete_volume, #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_fs_type, #get_partition_fs_type_and_label, #get_partition_label, #get_root_partition_fs_type, #get_root_partition_fs_type_and_label, #get_root_partition_label, #launch_instance, #mount_fs, #mount_fs_old, #register_snapshot, #remote_copy, #remote_copy_old, #remote_handler, #remote_handler=, #retrieve_instances, #retrieve_security_groups, #shut_down_instance, #start_instance, #unmount_fs, #upload_file, #zip_volume

Constructor Details

This class inherits a constructor from ScriptExecutionState

Instance Method Details

#enterObject



161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
# File 'lib/scripts/ec2/copy_snapshot.rb', line 161

def enter()
  connect(@context[:target_dns_name], @context[:target_ssh_username], nil, @context[:target_ssh_keydata])
  disable_ssh_tty(@context[:target_dns_name])
  disconnect()
  #
  connect(@context[:source_dns_name], @context[:source_ssh_username], nil, @context[:source_ssh_keydata])
  source_dir = "/mnt/tmp_#{@context[:source_volume_id]}/"
  dest_dir = "/mnt/tmp_#{@context[:target_volume_id]}"
  remote_copy(@context[:source_ssh_username], @context[:target_key_name], source_dir,
    @context[:target_dns_name], @context[:target_ssh_username], dest_dir)
  disconnect()
  #
  connect(@context[:target_dns_name], @context[:target_ssh_username], nil, @context[:target_ssh_keydata])
  enable_ssh_tty(@context[:target_dns_name])
  unmount_fs(dest_dir)
  disconnect()
  DataCopiedState.new(@context)
end