knife-ec2 1.0.32 → 1.0.33

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 720ebe531f9c5d63eb98cf8d943d767628fbbbc75733f3cfda461be7c7cc1093
4
- data.tar.gz: 42ea760bbc7d85c4684bbd57b9fc7e2d8578cc9bbfbc51cc7e54c22aa78c16b1
3
+ metadata.gz: 50ee04d6ee29701c1dd9b40b23da36cb22628fb1e29e40a33460581ec2ddff6b
4
+ data.tar.gz: 849825bbda6123485edaf4c2a9db8253a5c57ab742fbb8253078aec8f86ff39d
5
5
  SHA512:
6
- metadata.gz: dd203f42f76400d9d07358bde4351f35568c2a74716034ce11eeb565b3e338c6d3173e4d904c4eec1ec15e29b212e13138def1e0e695d64f719fa88c83f0384d
7
- data.tar.gz: 20032468b55e145e1e35f5b42818bb0e2099f8a3f5a37383b5919994d205829a57e568515c33066bafed187c05a7e9faf295c6ec2a6c888815fc97fc79e2055c
6
+ metadata.gz: 5ef3159b6987c5efddbd4ccdf7cb3bb526ea90e9ae9243e319e953b1c9ea0d5d799496e3217c4b485b7987329c1ad0eba85e47e7e673398f36050305f57178f7
7
+ data.tar.gz: 33e7f8d5854e2cb8cca7c44060adcbeb4b56917bc9489c6b5fa308c7315f7818fbd41ebc71dff4e9939ee3147b3123728f4dbd665f1ecec070a9af8738c4f21c
@@ -623,7 +623,7 @@ class Chef
623
623
  if config[:associate_eip]
624
624
  eips = ec2_connection.describe_addresses.addresses.collect { |addr| addr if addr.domain == eip_scope }.compact
625
625
 
626
- unless eips.detect { |addr| addr.public_ip == config[:associate_eip] && addr.instance_id.nil? }
626
+ unless eips.detect { |addr| addr.public_ip == config[:associate_eip] && (addr.instance_id.nil? || addr.instance_id.empty?) }
627
627
  ui.error("Elastic IP requested is not available.")
628
628
  exit 1
629
629
  end
@@ -858,7 +858,6 @@ class Chef
858
858
  attributes = {
859
859
  image_id: config_value(:image),
860
860
  instance_type: config_value(:flavor),
861
- groups: config[:security_groups],
862
861
  key_name: config_value(:ssh_key_name),
863
862
  max_count: 1,
864
863
  min_count: 1,
@@ -878,6 +877,8 @@ class Chef
878
877
  network_attrs[:groups] = config_value(:security_group_ids) if !!config_value(:security_group_ids)
879
878
  network_attrs[:private_ip_address] = config_value(:private_ip_address)
880
879
  network_attrs[:associate_public_ip_address] = config_value(:associate_public_ip)
880
+ else
881
+ attributes[:security_groups] = config[:security_groups]
881
882
  end
882
883
 
883
884
  if network_attrs.length > 0
@@ -1199,10 +1200,17 @@ class Chef
1199
1200
  end
1200
1201
 
1201
1202
  def associate_address(elastic_ip)
1202
- ec2_connection.associate_address({
1203
- allocation_id: elastic_ip.allocation_id,
1204
- instance_id: server.id,
1205
- })
1203
+ if vpc_mode?
1204
+ ec2_connection.associate_address({
1205
+ allocation_id: elastic_ip.allocation_id,
1206
+ instance_id: server.id,
1207
+ })
1208
+ else
1209
+ ec2_connection.associate_address({
1210
+ public_ip: elastic_ip.public_ip,
1211
+ instance_id: server.id,
1212
+ })
1213
+ end
1206
1214
  end
1207
1215
 
1208
1216
  def validate_nics!
@@ -100,6 +100,10 @@ class Chef
100
100
  @ec2_connection ||= Aws::EC2::Client.new(connection_string)
101
101
  end
102
102
 
103
+ def vpc_mode?
104
+ !!config_value(:subnet_id)
105
+ end
106
+
103
107
  def fetch_ami(image_id)
104
108
  return nil unless image_id
105
109
 
@@ -147,7 +151,7 @@ class Chef
147
151
  server_data[id] = server_obj.instances[0].send(id)
148
152
  end
149
153
  server_data["availability_zone"] = server_obj.instances[0].placement.availability_zone
150
- server_data["groups"] = server_obj.groups.map(&:name)
154
+ server_data["groups"] = server_obj.groups.map(&:group_name) unless vpc_mode?
151
155
  server_data["iam_instance_profile"] = ( server_obj.instances[0].iam_instance_profile.nil? ? nil : server_obj.instances[0].iam_instance_profile.arn[%r{instance-profile/(.*)}] )
152
156
  server_data["id"] = server_data["instance_id"]
153
157
 
@@ -157,8 +161,8 @@ class Chef
157
161
  server_data["security_groups"] = server_obj.instances[0].security_groups.map(&:group_name)
158
162
  server_data["security_group_ids"] = server_obj.instances[0].security_groups.map(&:group_id)
159
163
  server_data["state"] = server_obj.instances[0].state.name
160
- server_data["subnet_id"] = server_obj.instances[0].network_interfaces[0].subnet_id
161
- server_data["source_dest_check"] = server_obj.instances[0].network_interfaces[0].source_dest_check
164
+ server_data["subnet_id"] = server_obj.instances[0].network_interfaces[0].subnet_id if vpc_mode?
165
+ server_data["source_dest_check"] = server_obj.instances[0].network_interfaces[0].source_dest_check if vpc_mode?
162
166
  server_data["tags"] = tags
163
167
  server_data["tenancy"] = server_obj.instances[0].placement.tenancy
164
168
  server_data["volume_id"] = server_obj.instances[0].block_device_mappings[0]&.ebs&.volume_id
@@ -1,6 +1,6 @@
1
1
  module Knife
2
2
  module Ec2
3
- VERSION = "1.0.32".freeze
3
+ VERSION = "1.0.33".freeze
4
4
  MAJOR, MINOR, TINY = VERSION.split(".")
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-ec2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.32
4
+ version: 1.0.33
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef Software, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-24 00:00:00.000000000 Z
11
+ date: 2020-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef