Class: Kitchen::Driver::Aws::StandardPlatform::Amazon
- Inherits:
-
StandardPlatform
- Object
- StandardPlatform
- Kitchen::Driver::Aws::StandardPlatform::Amazon
- Defined in:
- lib/kitchen/driver/aws/standard_platform/amazon.rb
Overview
Class Method Summary collapse
-
.from_image(driver, image) ⇒ Amazon?
Detect this platform from an EC2 image.
Instance Method Summary collapse
-
#image_search ⇒ Hash{String => String, Array<String>}
EC2 image filters that select the original Amazon Linux AMIs published by AWS.
-
#username ⇒ String
The account EC2 creates on this platform's official AMIs.
Class Method Details
.from_image(driver, image) ⇒ Amazon?
Detect this platform from an EC2 image.
Matching is done on the image name, which is the only reliable signal EC2 exposes about what an AMI actually contains.
60 61 62 63 64 65 66 67 68 69 |
# File 'lib/kitchen/driver/aws/standard_platform/amazon.rb', line 60 def self.from_image(driver, image) return unless /amzn-ami/i.match?(image.name) # `(\.\d+)?`, not `(\.\d+[\.\d])?`: the character class matched the # separator that follows the minor version, capturing it into the # version string ("2018.03.") and failing outright when the minor # version was followed by anything but a dot or digit. image.name =~ /\b(\d+(\.\d+)?)/i new(driver, "amazon", (Regexp.last_match || [])[1], image.architecture) end |
Instance Method Details
#image_search ⇒ Hash{String => String, Array<String>}
EC2 image filters that select the original Amazon Linux AMIs published by AWS.
A filter is added for Kitchen::Driver::Aws::StandardPlatform#architecture only when one was requested, so that an unspecified architecture matches any of them.
43 44 45 46 47 48 49 50 |
# File 'lib/kitchen/driver/aws/standard_platform/amazon.rb', line 43 def image_search search = { "owner-id" => "137112412989", "name" => version ? "amzn-ami-*-#{version}*" : "amzn-ami-*", } search["architecture"] = architecture if architecture search end |
#username ⇒ String
The account EC2 creates on this platform's official AMIs.
Used as the SSH username when the transport does not specify one.
31 32 33 |
# File 'lib/kitchen/driver/aws/standard_platform/amazon.rb', line 31 def username "ec2-user" end |