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_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



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
# 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
  #puts "DEBUG: Audit Scripts"
  #pp @context

  Dir::mkdir(tmp_dir)
  if FileTest::directory?(tmp_dir)
    post_message("local temporary directory created")
  end

  LaunchAuditViaSsh.new(@context)
end