Class: AmiSpec::AwsKeyPair
- Inherits:
-
Object
- Object
- AmiSpec::AwsKeyPair
- Defined in:
- lib/ami_spec/aws_key_pair.rb
Instance Attribute Summary collapse
-
#key_file ⇒ Object
readonly
Returns the value of attribute key_file.
-
#key_name ⇒ Object
readonly
Returns the value of attribute key_name.
Class Method Summary collapse
Instance Method Summary collapse
- #create ⇒ Object
- #delete ⇒ Object
-
#initialize(ec2: Aws::EC2::Resource.new, key_name_prefix: 'ami-spec-', logger: Logger.new(STDOUT)) ⇒ AwsKeyPair
constructor
A new instance of AwsKeyPair.
Constructor Details
#initialize(ec2: Aws::EC2::Resource.new, key_name_prefix: 'ami-spec-', logger: Logger.new(STDOUT)) ⇒ AwsKeyPair
Returns a new instance of AwsKeyPair.
14 15 16 17 18 |
# File 'lib/ami_spec/aws_key_pair.rb', line 14 def initialize(ec2: Aws::EC2::Resource.new, key_name_prefix: 'ami-spec-', logger: Logger.new(STDOUT)) @ec2 = ec2 @key_name = "#{key_name_prefix}#{SecureRandom.uuid}" @logger = logger end |
Instance Attribute Details
#key_file ⇒ Object (readonly)
Returns the value of attribute key_file.
20 21 22 |
# File 'lib/ami_spec/aws_key_pair.rb', line 20 def key_file @key_file end |
#key_name ⇒ Object (readonly)
Returns the value of attribute key_name.
20 21 22 |
# File 'lib/ami_spec/aws_key_pair.rb', line 20 def key_name @key_name end |
Class Method Details
.create(**args) ⇒ Object
10 11 12 |
# File 'lib/ami_spec/aws_key_pair.rb', line 10 def self.create(**args) new(**args).tap(&:create) end |
Instance Method Details
#create ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/ami_spec/aws_key_pair.rb', line 22 def create @logger.info "Creating temporary AWS key pair: #{@key_name}" @key_pair = @ec2.create_key_pair(key_name: @key_name) @temp_file = Tempfile.new('key') @temp_file.write(@key_pair.key_material) @temp_file.close @key_file = Pathname.new(@temp_file.path) end |
#delete ⇒ Object
31 32 33 34 |
# File 'lib/ami_spec/aws_key_pair.rb', line 31 def delete @logger.info "Deleting temporary AWS key pair: #{@key_name}" @key_pair.delete end |