Module: SeleniumGrid::AWS::Ec2Client

Included in:
Server
Defined in:
lib/selenium-grid/examples/ec2/lib/selenium_grid/aws/ec2_client.rb

Instance Method Summary collapse

Instance Method Details

#authorize_port(port) ⇒ Object



40
41
42
43
# File 'lib/selenium-grid/examples/ec2/lib/selenium_grid/aws/ec2_client.rb', line 40

def authorize_port(port)
  puts "Opening port #{port}..."        
  ec2_shell "ec2-authorize default -p #{port}"
end

#describe(instance_id) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/selenium-grid/examples/ec2/lib/selenium_grid/aws/ec2_client.rb', line 5

def describe(instance_id)
  output = ec2_shell "ec2-describe-instances #{instance_id}"
  output =~ /INSTANCE\s+(i-.*)$/
  fields = $1.split(/\s+/)
  if output =~ /running/
    {:instance_id => fields[0],
     :ami => fields[1],
     :public_dns => fields[2],
     :private_dns => fields[3],
     :status => fields[4] }
  else 
    {:instance_id => fields[0],
     :ami => fields[1],
     :status => fields[2] }
  end
end

#ec2_shell(command) ⇒ Object



45
46
47
48
49
50
# File 'lib/selenium-grid/examples/ec2/lib/selenium_grid/aws/ec2_client.rb', line 45

def ec2_shell(command)
  puts "[EC2] '#{command}'" if tracing?
  output = `${EC2_HOME}/bin/#{command}`
  puts "[EC2] #{output}" if tracing?
  output
end

#launch(ami, options = {}) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/selenium-grid/examples/ec2/lib/selenium_grid/aws/ec2_client.rb', line 22

def launch(ami, options ={})
  output = ec2_shell "ec2-run-instances #{ami} -k #{options[:keypair]}"
  output =~ /INSTANCE\s+(i-\S+)\s+ami-/
  if $1 != nil
    $1
  else
    raise InstanceLaunchError, output
  end
end

#shutdown(instance_id) ⇒ Object



32
33
34
# File 'lib/selenium-grid/examples/ec2/lib/selenium_grid/aws/ec2_client.rb', line 32

def shutdown(instance_id)
  ec2_shell "ec2-terminate-instances #{instance_id}"
end

#tracing?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/selenium-grid/examples/ec2/lib/selenium_grid/aws/ec2_client.rb', line 52

def tracing?
  ENV['TRACE_EC2_COMMANDS']
end

#versionObject



36
37
38
# File 'lib/selenium-grid/examples/ec2/lib/selenium_grid/aws/ec2_client.rb', line 36

def version
  ec2_shell "ec2-version"
end