Class: Kitchen::Driver::Aws::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/kitchen/driver/aws/client.rb

Overview

A class for creating and managing the EC2 client connection

Author:

Instance Method Summary collapse

Constructor Details

#initialize(region, profile_name = "default", http_proxy = nil, retry_limit = nil, ssl_verify_peer = true) ⇒ Client

Returns a new instance of Client.



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/kitchen/driver/aws/client.rb', line 36

def initialize(
  region,
  profile_name = "default",
  http_proxy = nil,
  retry_limit = nil,
  ssl_verify_peer = true
)
  ::Aws.config.update(
    region: region,
    profile: profile_name,
    http_proxy: http_proxy,
    ssl_verify_peer: ssl_verify_peer
  )
  ::Aws.config.update(retry_limit: retry_limit) unless retry_limit.nil?
end

Instance Method Details

#clientObject



69
70
71
# File 'lib/kitchen/driver/aws/client.rb', line 69

def client
  @client ||= ::Aws::EC2::Client.new
end

#create_instance(options) ⇒ Object



52
53
54
# File 'lib/kitchen/driver/aws/client.rb', line 52

def create_instance(options)
  resource.create_instances(options).first
end

#get_instance(id) ⇒ Object



56
57
58
# File 'lib/kitchen/driver/aws/client.rb', line 56

def get_instance(id)
  resource.instance(id)
end

#get_instance_from_spot_request(request_id) ⇒ Object



60
61
62
63
64
65
66
67
# File 'lib/kitchen/driver/aws/client.rb', line 60

def get_instance_from_spot_request(request_id)
  resource.instances(
    filters: [{
      name: "spot-instance-request-id",
      values: [request_id],
    }]
  ).to_a[0]
end

#resourceObject



73
74
75
# File 'lib/kitchen/driver/aws/client.rb', line 73

def resource
  @resource ||= ::Aws::EC2::Resource.new
end