Class: AuditViaSsh::InitialState

Inherits:
AuditViaSshState show all
Defined in:
lib/scripts/ec2/audit_via_ssh.rb

Overview

Start an instance and wait for it to be UP and running Create a temporary directory

Instance Attribute Summary

Attributes inherited from ScriptExecutionState

#context, #logger

Instance Method Summary collapse

Methods inherited from AuditViaSshState

load_state

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_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, #mount_fs, #mount_fs_old, #register_snapshot, #remote_copy, #remote_copy_old, #remote_handler, #remote_handler=, #retrieve_instances, #retrieve_security_groups, #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



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/scripts/ec2/audit_via_ssh.rb', line 69

def enter
  instances_info = []
  tmp_dir = ""
  if @context[:ami_id] != nil
    instance_infos = launch_instance(@context[:ami_id], @context[:ssh_key_name], @context[:sec_grp_name], nil, "t1.micro")
    tmp_dir = "/tmp/#{@context[:ami_id]}-#{Time.now().to_i}"
  elsif @context[:instance_id] != nil
    instance_infos = start_instance(@context[:instance_id])
    tmp_dir = "/tmp/#{@context[:instance_id]}-#{Time.now().to_i}"
  else
    raise Exception.new("No Instance ID or AMI ID specified (should have been catched earlier)")
  end
  @context[:instance_id] = instance_infos[0]
  @context[:public_dns_name] = instance_infos[1]
  @context[:tmp_dir] = tmp_dir

  Dir::mkdir(tmp_dir)
  if FileTest::directory?(tmp_dir)
    post_message("local temporary directory created")
  end
 
  if @context[:audit] == nil
    @context[:audit] = Audit.new(:benchmark => @context[:benchmark_file], :attachment_dir => @context[:tmp_dir],
                                 :connection_type => :ssh, 
                                 :connection_params => {:user => @context[:ssh_user],
                                                        :keys => @context[:ssh_key_file],
                                                        :host => @context[:public_dns_name],
                                                        :paranoid => false}, 
                                 :logger => nil)
  end

  LaunchAuditViaSsh.new(@context)
end