kitchen-ec2 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,7 +18,7 @@ module Kitchen
18
18
  def image_search
19
19
  search = {
20
20
  "owner-alias" => "aws-marketplace",
21
- "name" => ["CentOS Linux #{version}*", "CentOS-#{version}*-GA-*"]
21
+ "name" => ["CentOS Linux #{version}*", "CentOS-#{version}*-GA-*"],
22
22
  }
23
23
  search["architecture"] = architecture if architecture
24
24
  search
@@ -30,7 +30,7 @@ module Kitchen
30
30
  # ...
31
31
  images.group_by { |image| self.class.from_image(driver, image).version }.
32
32
  sort_by { |k, _v| (k && k.include?(".") ? k.to_f : "#{k}.999".to_f) }.
33
- reverse.map { |_k, v| v }.flatten(1)
33
+ reverse.flat_map { |_k, v| v }
34
34
  end
35
35
 
36
36
  def self.from_image(driver, image)
@@ -9,9 +9,10 @@ module Kitchen
9
9
  StandardPlatform.platforms["debian"] = self
10
10
 
11
11
  DEBIAN_CODENAMES = {
12
+ "9" => "stretch",
12
13
  "8" => "jessie",
13
14
  "7" => "wheezy",
14
- "6" => "squeeze"
15
+ "6" => "squeeze",
15
16
  }
16
17
 
17
18
  def username
@@ -25,7 +26,7 @@ module Kitchen
25
26
  def image_search
26
27
  search = {
27
28
  "owner-id" => "379101102735",
28
- "name" => "debian-#{codename}-*"
29
+ "name" => "debian-#{codename}-*",
29
30
  }
30
31
  search["architecture"] = architecture if architecture
31
32
  search
@@ -15,7 +15,7 @@ module Kitchen
15
15
  def image_search
16
16
  search = {
17
17
  "owner-id" => "125523088429",
18
- "name" => version ? "Fedora-Cloud-Base-#{version}-*" : "Fedora-Cloud-Base-*"
18
+ "name" => version ? "Fedora-Cloud-Base-#{version}-*" : "Fedora-Cloud-Base-*",
19
19
  }
20
20
  search["architecture"] = architecture if architecture
21
21
  search
@@ -18,7 +18,7 @@ module Kitchen
18
18
  def image_search
19
19
  search = {
20
20
  "owner-id" => "118940168514",
21
- "name" => ["FreeBSD #{version}*-RELEASE*", "FreeBSD/EC2 #{version}*-RELEASE*"]
21
+ "name" => ["FreeBSD #{version}*-RELEASE*", "FreeBSD/EC2 #{version}*-RELEASE*"],
22
22
  }
23
23
  search["architecture"] = architecture if architecture
24
24
  search
@@ -21,7 +21,7 @@ module Kitchen
21
21
  def image_search
22
22
  search = {
23
23
  "owner-id" => "309956199498",
24
- "name" => "RHEL-#{version}*"
24
+ "name" => "RHEL-#{version}*",
25
25
  }
26
26
  search["architecture"] = architecture if architecture
27
27
  search
@@ -15,7 +15,7 @@ module Kitchen
15
15
  def image_search
16
16
  search = {
17
17
  "owner-id" => "099720109477",
18
- "name" => "ubuntu/images/*/ubuntu-*-#{version}*"
18
+ "name" => "ubuntu/images/*/ubuntu-*-#{version}*",
19
19
  }
20
20
  search["architecture"] = architecture if architecture
21
21
  search
@@ -35,7 +35,7 @@ module Kitchen
35
35
  def image_search
36
36
  search = {
37
37
  "owner-alias" => "amazon",
38
- "name" => windows_name_filter
38
+ "name" => windows_name_filter,
39
39
  }
40
40
  search["architecture"] = architecture if architecture
41
41
  search
@@ -47,7 +47,7 @@ module Kitchen
47
47
  # ...
48
48
  images.group_by { |image| self.class.from_image(driver, image).windows_version_parts }.
49
49
  sort_by { |version, _platform_images| version }.
50
- reverse.map { |_version, platform_images| platform_images }.flatten(1)
50
+ reverse.flat_map { |_version, platform_images| platform_images }
51
51
  end
52
52
 
53
53
  def self.from_image(driver, image)
@@ -101,7 +101,7 @@ module Kitchen
101
101
 
102
102
  # Turn service_pack into an integer. rtm = 0, spN = N.
103
103
  if service_pack
104
- service_pack = (service_pack.downcase == "rtm") ? 0 : service_pack[2..-1].to_i
104
+ service_pack = (service_pack.casecmp("rtm") == 0) ? 0 : service_pack[2..-1].to_i
105
105
  end
106
106
  end
107
107
 
@@ -23,6 +23,7 @@ require_relative "ec2_version"
23
23
  require_relative "aws/client"
24
24
  require_relative "aws/instance_generator"
25
25
  require_relative "aws/standard_platform"
26
+ require_relative "aws/standard_platform/amazon"
26
27
  require_relative "aws/standard_platform/centos"
27
28
  require_relative "aws/standard_platform/debian"
28
29
  require_relative "aws/standard_platform/rhel"
@@ -48,15 +49,15 @@ module Kitchen
48
49
 
49
50
  plugin_version Kitchen::Driver::EC2_VERSION
50
51
 
51
- default_config :region, ENV["AWS_REGION"] || "us-east-1"
52
+ default_config :region, ENV["AWS_REGION"] || "us-east-1"
52
53
  default_config :shared_credentials_profile, nil
53
- default_config :availability_zone, nil
54
+ default_config :availability_zone, nil
54
55
  default_config :instance_type do |driver|
55
56
  driver.default_instance_type
56
57
  end
57
58
  default_config :ebs_optimized, false
58
59
  default_config :security_group_ids, nil
59
- default_config :tags, "created-by" => "test-kitchen"
60
+ default_config :tags, "created-by" => "test-kitchen"
60
61
  default_config :user_data do |driver|
61
62
  if driver.windows_os?
62
63
  driver.default_windows_user_data
@@ -83,7 +84,7 @@ module Kitchen
83
84
  default_config :retry_limit, 3
84
85
  default_config :tenancy, "default"
85
86
  default_config :instance_initiated_shutdown_behavior, nil
86
- default_config :ssl_verify_peer, true
87
+ default_config :ssl_verify_peer, true
87
88
 
88
89
  def initialize(*args, &block)
89
90
  super
@@ -206,10 +207,18 @@ module Kitchen
206
207
  info("Attempting to tag the instance, #{r} retries")
207
208
  tag_server(server)
208
209
 
210
+ # Get information about the AMI (image) used to create the image.
211
+ image_data = ec2.client.describe_images({ :image_ids => [server.image_id] })[0][0]
212
+
209
213
  state[:server_id] = server.id
210
214
  info("EC2 instance <#{state[:server_id]}> created.")
211
- wait_until_volumes_ready(server, state)
212
- tag_volumes(server)
215
+
216
+ # instance-store backed images do not have attached volumes, so only
217
+ # wait for the volumes to be ready if the instance EBS-backed.
218
+ if image_data.root_device_type == "ebs"
219
+ wait_until_volumes_ready(server, state)
220
+ tag_volumes(server)
221
+ end
213
222
  wait_until_ready(server, state)
214
223
  end
215
224
 
@@ -221,7 +230,7 @@ module Kitchen
221
230
  fetch_windows_admin_password(server, state)
222
231
  end
223
232
 
224
- info("EC2 instance <#{state[:server_id]}> ready.")
233
+ info("EC2 instance <#{state[:server_id]}> ready (hostname: #{state[:hostname]}).")
225
234
  instance.transport.connection(state).wait_until_ready
226
235
  create_ec2_json(state)
227
236
  debug("ec2:create '#{state[:hostname]}'")
@@ -372,7 +381,7 @@ module Kitchen
372
381
  request_data = {
373
382
  :spot_price => config[:spot_price].to_s,
374
383
  :launch_specification => instance_generator.ec2_instance_data,
375
- :valid_until => Time.now + request_duration
384
+ :valid_until => Time.now + request_duration,
376
385
  }
377
386
  if config[:block_duration_minutes]
378
387
  request_data[:block_duration_minutes] = config[:block_duration_minutes]
@@ -491,7 +500,7 @@ module Kitchen
491
500
  "dns" => "public_dns_name",
492
501
  "public" => "public_ip_address",
493
502
  "private" => "private_ip_address",
494
- "private_dns" => "private_dns_name"
503
+ "private_dns" => "private_dns_name",
495
504
  }
496
505
 
497
506
  #
@@ -557,26 +566,33 @@ module Kitchen
557
566
 
558
567
  if actual_platform.version =~ /2016/
559
568
  logfile_name = 'C:\\ProgramData\\Amazon\\EC2-Windows\\Launch\\Log\\kitchen-ec2.log'
569
+ disk_init = 'C:\\ProgramData\\Amazon\\EC2-Windows\\Launch\\Scripts\\InitializeDisks.ps1'
560
570
  else
561
571
  logfile_name = 'C:\\Program Files\\Amazon\\Ec2ConfigService\\Logs\\kitchen-ec2.log'
572
+ disk_init = ""
562
573
  end
563
574
  # Returning the fully constructed PowerShell script to user_data
564
575
  Kitchen::Util.outdent!(<<-EOH)
565
576
  <powershell>
566
- $logfile=#{logfile_name}
577
+ $logfile="#{logfile_name}"
578
+ # EC2Launch doesn't init extra disks by default
579
+ #{disk_init}
567
580
  # Allow script execution
568
581
  Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force
569
582
  #PS Remoting and & winrm.cmd basic config
570
- Enable-PSRemoting -Force -SkipNetworkProfileCheck
583
+ $enableArgs=@{Force=$true}
584
+ $command=Get-Command Enable-PSRemoting
585
+ if($command.Parameters.Keys -contains "skipnetworkprofilecheck"){
586
+ $enableArgs.skipnetworkprofilecheck=$true
587
+ }
588
+ Enable-PSRemoting @enableArgs
571
589
  & winrm.cmd set winrm/config '@{MaxTimeoutms="1800000"}' >> $logfile
572
590
  & winrm.cmd set winrm/config/winrs '@{MaxMemoryPerShellMB="1024"}' >> $logfile
573
591
  & winrm.cmd set winrm/config/winrs '@{MaxShellsPerUser="50"}' >> $logfile
574
- #Server settings - support username/password login
575
- & winrm.cmd set winrm/config/service/auth '@{Basic="true"}' >> $logfile
576
- & winrm.cmd set winrm/config/service '@{AllowUnencrypted="true"}' >> $logfile
577
592
  & winrm.cmd set winrm/config/winrs '@{MaxMemoryPerShellMB="1024"}' >> $logfile
578
593
  #Firewall Config
579
594
  & netsh advfirewall firewall set rule name="Windows Remote Management (HTTP-In)" profile=public protocol=tcp localport=5985 remoteip=localsubnet new remoteip=any >> $logfile
595
+ Set-ItemProperty -Name LocalAccountTokenFilterPolicy -Path HKLM:\\software\\Microsoft\\Windows\\CurrentVersion\\Policies\\system -Value 1
580
596
  #{custom_admin_script}
581
597
  </powershell>
582
598
  EOH
@@ -21,6 +21,6 @@ module Kitchen
21
21
  module Driver
22
22
 
23
23
  # Version string for EC2 Test Kitchen driver
24
- EC2_VERSION = "1.3.2"
24
+ EC2_VERSION = "1.4.0"
25
25
  end
26
26
  end
@@ -164,7 +164,7 @@ describe Kitchen::Driver::Aws::Client do
164
164
  end
165
165
 
166
166
  context "when provided all optional parameters" do
167
- let(:client) {
167
+ let(:client) do
168
168
  Kitchen::Driver::Aws::Client.new(
169
169
  "us-west-1",
170
170
  "profile_name",
@@ -175,7 +175,7 @@ describe Kitchen::Driver::Aws::Client do
175
175
  999,
176
176
  false
177
177
  )
178
- }
178
+ end
179
179
  let(:creds) { double("creds") }
180
180
  it "Sets the AWS config" do
181
181
  expect(Kitchen::Driver::Aws::Client).to receive(:get_credentials).and_return(creds)
@@ -202,7 +202,7 @@ describe Kitchen::Driver::Aws::Client do
202
202
  "AWS_ACCESS_KEY_ID" => key_id,
203
203
  "AWS_SECRET_ACCESS_KEY" => secret
204
204
  ) do
205
- block.call
205
+ yield
206
206
  end
207
207
  end
208
208
  end
@@ -59,247 +59,282 @@ describe "Default images for various platforms" do
59
59
  end
60
60
 
61
61
  PLATFORM_SEARCHES = {
62
+ "amazon" => [
63
+ { :name => "owner-id", :values => %w{137112412989} },
64
+ { :name => "name", :values => %w{amzn-ami-*} },
65
+ ],
66
+ "amazon-x86_64" => [
67
+ { :name => "owner-id", :values => %w{137112412989} },
68
+ { :name => "name", :values => %w{amzn-ami-*} },
69
+ { :name => "architecture", :values => ["x86_64"] },
70
+ ],
71
+ "amazon-2016" => [
72
+ { :name => "owner-id", :values => %w{137112412989} },
73
+ { :name => "name", :values => %w{amzn-ami-*-2016*} },
74
+ ],
75
+ "amazon-2017" => [
76
+ { :name => "owner-id", :values => %w{137112412989} },
77
+ { :name => "name", :values => %w{amzn-ami-*-2017*} },
78
+ ],
79
+ "amazon-2016.09" => [
80
+ { :name => "owner-id", :values => %w{137112412989} },
81
+ { :name => "name", :values => %w{amzn-ami-*-2016.09*} },
82
+ ],
83
+ "amazon-2017.03" => [
84
+ { :name => "owner-id", :values => %w{137112412989} },
85
+ { :name => "name", :values => %w{amzn-ami-*-2017.03*} },
86
+ ],
87
+ "amazon-2017.03-x86_64" => [
88
+ { :name => "owner-id", :values => %w{137112412989} },
89
+ { :name => "name", :values => %w{amzn-ami-*-2017.03*} },
90
+ { :name => "architecture", :values => ["x86_64"] },
91
+ ],
92
+
62
93
  "centos" => [
63
- { :name => "owner-alias", :values => %w[aws-marketplace] },
64
- { :name => "name", :values => ["CentOS Linux *", "CentOS-*-GA-*"] }
94
+ { :name => "owner-alias", :values => %w{aws-marketplace} },
95
+ { :name => "name", :values => ["CentOS Linux *", "CentOS-*-GA-*"] },
65
96
  ],
66
97
  "centos-7" => [
67
- { :name => "owner-alias", :values => %w[aws-marketplace] },
68
- { :name => "name", :values => ["CentOS Linux 7*", "CentOS-7*-GA-*"] }
98
+ { :name => "owner-alias", :values => %w{aws-marketplace} },
99
+ { :name => "name", :values => ["CentOS Linux 7*", "CentOS-7*-GA-*"] },
69
100
  ],
70
101
  "centos-6" => [
71
- { :name => "owner-alias", :values => %w[aws-marketplace] },
72
- { :name => "name", :values => ["CentOS Linux 6*", "CentOS-6*-GA-*"] }
102
+ { :name => "owner-alias", :values => %w{aws-marketplace} },
103
+ { :name => "name", :values => ["CentOS Linux 6*", "CentOS-6*-GA-*"] },
73
104
  ],
74
105
  "centos-6.3" => [
75
- { :name => "owner-alias", :values => %w[aws-marketplace] },
76
- { :name => "name", :values => ["CentOS Linux 6.3*", "CentOS-6.3*-GA-*"] }
106
+ { :name => "owner-alias", :values => %w{aws-marketplace} },
107
+ { :name => "name", :values => ["CentOS Linux 6.3*", "CentOS-6.3*-GA-*"] },
77
108
  ],
78
109
  "centos-x86_64" => [
79
- { :name => "owner-alias", :values => %w[aws-marketplace] },
110
+ { :name => "owner-alias", :values => %w{aws-marketplace} },
80
111
  { :name => "name", :values => ["CentOS Linux *", "CentOS-*-GA-*"] },
81
- { :name => "architecture", :values => %w[x86_64] }
112
+ { :name => "architecture", :values => %w{x86_64} },
82
113
  ],
83
114
  "centos-6.3-x86_64" => [
84
- { :name => "owner-alias", :values => %w[aws-marketplace] },
115
+ { :name => "owner-alias", :values => %w{aws-marketplace} },
85
116
  { :name => "name", :values => ["CentOS Linux 6.3*", "CentOS-6.3*-GA-*"] },
86
- { :name => "architecture", :values => %w[x86_64] }
117
+ { :name => "architecture", :values => %w{x86_64} },
87
118
  ],
88
119
  "centos-7-x86_64" => [
89
- { :name => "owner-alias", :values => %w[aws-marketplace] },
120
+ { :name => "owner-alias", :values => %w{aws-marketplace} },
90
121
  { :name => "name", :values => ["CentOS Linux 7*", "CentOS-7*-GA-*"] },
91
- { :name => "architecture", :values => %w[x86_64] }
122
+ { :name => "architecture", :values => %w{x86_64} },
92
123
  ],
93
124
 
94
125
  "debian" => [
95
- { :name => "owner-id", :values => %w[379101102735] },
96
- { :name => "name", :values => %w[debian-jessie-*] }
126
+ { :name => "owner-id", :values => %w{379101102735} },
127
+ { :name => "name", :values => %w{debian-stretch-*} },
128
+ ],
129
+ "debian-9" => [
130
+ { :name => "owner-id", :values => %w{379101102735} },
131
+ { :name => "name", :values => %w{debian-stretch-*} },
97
132
  ],
98
133
  "debian-8" => [
99
- { :name => "owner-id", :values => %w[379101102735] },
100
- { :name => "name", :values => %w[debian-jessie-*] }
134
+ { :name => "owner-id", :values => %w{379101102735} },
135
+ { :name => "name", :values => %w{debian-jessie-*} },
101
136
  ],
102
137
  "debian-7" => [
103
- { :name => "owner-id", :values => %w[379101102735] },
104
- { :name => "name", :values => %w[debian-wheezy-*] }
138
+ { :name => "owner-id", :values => %w{379101102735} },
139
+ { :name => "name", :values => %w{debian-wheezy-*} },
105
140
  ],
106
141
  "debian-6" => [
107
- { :name => "owner-id", :values => %w[379101102735] },
108
- { :name => "name", :values => %w[debian-squeeze-*] }
142
+ { :name => "owner-id", :values => %w{379101102735} },
143
+ { :name => "name", :values => %w{debian-squeeze-*} },
109
144
  ],
110
145
  "debian-x86_64" => [
111
- { :name => "owner-id", :values => %w[379101102735] },
112
- { :name => "name", :values => %w[debian-jessie-*] },
113
- { :name => "architecture", :values => %w[x86_64] }
146
+ { :name => "owner-id", :values => %w{379101102735} },
147
+ { :name => "name", :values => %w{debian-stretch-*} },
148
+ { :name => "architecture", :values => %w{x86_64} },
114
149
  ],
115
150
  "debian-6-x86_64" => [
116
- { :name => "owner-id", :values => %w[379101102735] },
117
- { :name => "name", :values => %w[debian-squeeze-*] },
118
- { :name => "architecture", :values => %w[x86_64] }
151
+ { :name => "owner-id", :values => %w{379101102735} },
152
+ { :name => "name", :values => %w{debian-squeeze-*} },
153
+ { :name => "architecture", :values => %w{x86_64} },
119
154
  ],
120
155
 
121
156
  "rhel" => [
122
- { :name => "owner-id", :values => %w[309956199498] },
123
- { :name => "name", :values => %w[RHEL-*] }
157
+ { :name => "owner-id", :values => %w{309956199498} },
158
+ { :name => "name", :values => %w{RHEL-*} },
124
159
  ],
125
160
  "rhel-6" => [
126
- { :name => "owner-id", :values => %w[309956199498] },
127
- { :name => "name", :values => %w[RHEL-6*] }
161
+ { :name => "owner-id", :values => %w{309956199498} },
162
+ { :name => "name", :values => %w{RHEL-6*} },
128
163
  ],
129
164
  "rhel-7.1" => [
130
- { :name => "owner-id", :values => %w[309956199498] },
131
- { :name => "name", :values => %w[RHEL-7.1*] }
165
+ { :name => "owner-id", :values => %w{309956199498} },
166
+ { :name => "name", :values => %w{RHEL-7.1*} },
132
167
  ],
133
168
  "rhel-x86_64" => [
134
- { :name => "owner-id", :values => %w[309956199498] },
135
- { :name => "name", :values => %w[RHEL-*] },
136
- { :name => "architecture", :values => %w[x86_64] }
169
+ { :name => "owner-id", :values => %w{309956199498} },
170
+ { :name => "name", :values => %w{RHEL-*} },
171
+ { :name => "architecture", :values => %w{x86_64} },
137
172
  ],
138
173
  "rhel-6-x86_64" => [
139
- { :name => "owner-id", :values => %w[309956199498] },
140
- { :name => "name", :values => %w[RHEL-6*] },
141
- { :name => "architecture", :values => %w[x86_64] }
174
+ { :name => "owner-id", :values => %w{309956199498} },
175
+ { :name => "name", :values => %w{RHEL-6*} },
176
+ { :name => "architecture", :values => %w{x86_64} },
142
177
  ],
143
178
  "el" => [
144
- { :name => "owner-id", :values => %w[309956199498] },
145
- { :name => "name", :values => %w[RHEL-*] }
179
+ { :name => "owner-id", :values => %w{309956199498} },
180
+ { :name => "name", :values => %w{RHEL-*} },
146
181
  ],
147
182
  "el-6-x86_64" => [
148
- { :name => "owner-id", :values => %w[309956199498] },
149
- { :name => "name", :values => %w[RHEL-6*] },
150
- { :name => "architecture", :values => %w[x86_64] }
183
+ { :name => "owner-id", :values => %w{309956199498} },
184
+ { :name => "name", :values => %w{RHEL-6*} },
185
+ { :name => "architecture", :values => %w{x86_64} },
151
186
  ],
152
187
 
153
188
  "fedora" => [
154
- { :name => "owner-id", :values => %w[125523088429] },
155
- { :name => "name", :values => %w[Fedora-Cloud-Base-*] }
189
+ { :name => "owner-id", :values => %w{125523088429} },
190
+ { :name => "name", :values => %w{Fedora-Cloud-Base-*} },
156
191
  ],
157
192
  "fedora-22" => [
158
- { :name => "owner-id", :values => %w[125523088429] },
159
- { :name => "name", :values => %w[Fedora-Cloud-Base-22-*] }
193
+ { :name => "owner-id", :values => %w{125523088429} },
194
+ { :name => "name", :values => %w{Fedora-Cloud-Base-22-*} },
160
195
  ],
161
196
  "fedora-x86_64" => [
162
- { :name => "owner-id", :values => %w[125523088429] },
163
- { :name => "name", :values => %w[Fedora-Cloud-Base-*] },
164
- { :name => "architecture", :values => %w[x86_64] }
197
+ { :name => "owner-id", :values => %w{125523088429} },
198
+ { :name => "name", :values => %w{Fedora-Cloud-Base-*} },
199
+ { :name => "architecture", :values => %w{x86_64} },
165
200
  ],
166
201
  "fedora-22-x86_64" => [
167
- { :name => "owner-id", :values => %w[125523088429] },
168
- { :name => "name", :values => %w[Fedora-Cloud-Base-22-*] },
169
- { :name => "architecture", :values => %w[x86_64] }
202
+ { :name => "owner-id", :values => %w{125523088429} },
203
+ { :name => "name", :values => %w{Fedora-Cloud-Base-22-*} },
204
+ { :name => "architecture", :values => %w{x86_64} },
170
205
  ],
171
206
 
172
207
  "freebsd" => [
173
- { :name => "owner-id", :values => %w[118940168514] },
174
- { :name => "name", :values => ["FreeBSD *-RELEASE*", "FreeBSD/EC2 *-RELEASE*"] }
208
+ { :name => "owner-id", :values => %w{118940168514} },
209
+ { :name => "name", :values => ["FreeBSD *-RELEASE*", "FreeBSD/EC2 *-RELEASE*"] },
175
210
  ],
176
211
  "freebsd-10" => [
177
- { :name => "owner-id", :values => %w[118940168514] },
178
- { :name => "name", :values => ["FreeBSD 10*-RELEASE*", "FreeBSD/EC2 10*-RELEASE*"] }
212
+ { :name => "owner-id", :values => %w{118940168514} },
213
+ { :name => "name", :values => ["FreeBSD 10*-RELEASE*", "FreeBSD/EC2 10*-RELEASE*"] },
179
214
  ],
180
215
  "freebsd-10.1" => [
181
- { :name => "owner-id", :values => %w[118940168514] },
182
- { :name => "name", :values => ["FreeBSD 10.1*-RELEASE*", "FreeBSD/EC2 10.1*-RELEASE*"] }
216
+ { :name => "owner-id", :values => %w{118940168514} },
217
+ { :name => "name", :values => ["FreeBSD 10.1*-RELEASE*", "FreeBSD/EC2 10.1*-RELEASE*"] },
183
218
  ],
184
219
  "freebsd-x86_64" => [
185
- { :name => "owner-id", :values => %w[118940168514] },
220
+ { :name => "owner-id", :values => %w{118940168514} },
186
221
  { :name => "name", :values => ["FreeBSD *-RELEASE*", "FreeBSD/EC2 *-RELEASE*"] },
187
- { :name => "architecture", :values => %w[x86_64] }
222
+ { :name => "architecture", :values => %w{x86_64} },
188
223
  ],
189
224
  "freebsd-10-x86_64" => [
190
- { :name => "owner-id", :values => %w[118940168514] },
225
+ { :name => "owner-id", :values => %w{118940168514} },
191
226
  { :name => "name", :values => ["FreeBSD 10*-RELEASE*", "FreeBSD/EC2 10*-RELEASE*"] },
192
- { :name => "architecture", :values => %w[x86_64] }
227
+ { :name => "architecture", :values => %w{x86_64} },
193
228
  ],
194
229
 
195
230
  "ubuntu" => [
196
- { :name => "owner-id", :values => %w[099720109477] },
197
- { :name => "name", :values => %w[ubuntu/images/*/ubuntu-*-*] }
231
+ { :name => "owner-id", :values => %w{099720109477} },
232
+ { :name => "name", :values => %w{ubuntu/images/*/ubuntu-*-*} },
198
233
  ],
199
234
  "ubuntu-14" => [
200
- { :name => "owner-id", :values => %w[099720109477] },
201
- { :name => "name", :values => %w[ubuntu/images/*/ubuntu-*-14*] }
235
+ { :name => "owner-id", :values => %w{099720109477} },
236
+ { :name => "name", :values => %w{ubuntu/images/*/ubuntu-*-14*} },
202
237
  ],
203
238
  "ubuntu-12.04" => [
204
- { :name => "owner-id", :values => %w[099720109477] },
205
- { :name => "name", :values => %w[ubuntu/images/*/ubuntu-*-12.04*] }
239
+ { :name => "owner-id", :values => %w{099720109477} },
240
+ { :name => "name", :values => %w{ubuntu/images/*/ubuntu-*-12.04*} },
206
241
  ],
207
242
  "ubuntu-x86_64" => [
208
- { :name => "owner-id", :values => %w[099720109477] },
209
- { :name => "name", :values => %w[ubuntu/images/*/ubuntu-*-*] },
210
- { :name => "architecture", :values => %w[x86_64] }
243
+ { :name => "owner-id", :values => %w{099720109477} },
244
+ { :name => "name", :values => %w{ubuntu/images/*/ubuntu-*-*} },
245
+ { :name => "architecture", :values => %w{x86_64} },
211
246
  ],
212
247
  "ubuntu-14-x86_64" => [
213
- { :name => "owner-id", :values => %w[099720109477] },
214
- { :name => "name", :values => %w[ubuntu/images/*/ubuntu-*-14*] },
215
- { :name => "architecture", :values => %w[x86_64] }
248
+ { :name => "owner-id", :values => %w{099720109477} },
249
+ { :name => "name", :values => %w{ubuntu/images/*/ubuntu-*-14*} },
250
+ { :name => "architecture", :values => %w{x86_64} },
216
251
  ],
217
252
 
218
253
  "windows" => [
219
- { :name => "owner-alias", :values => %w[amazon] },
220
- { :name => "name", :values => %w[
254
+ { :name => "owner-alias", :values => %w{amazon} },
255
+ { :name => "name", :values => %w{
221
256
  Windows_Server-*-RTM-English-*-Base-*
222
257
  Windows_Server-*-SP*-English-*-Base-*
223
258
  Windows_Server-*-R*_RTM-English-*-Base-*
224
259
  Windows_Server-*-R*_SP*-English-*-Base-*
225
- Windows_Server-*-English-Full-Base-*] }
260
+ Windows_Server-*-English-Full-Base-*} },
226
261
  ],
227
262
  "windows-2008" => [
228
- { :name => "owner-alias", :values => %w[amazon] },
229
- { :name => "name", :values => %w[
263
+ { :name => "owner-alias", :values => %w{amazon} },
264
+ { :name => "name", :values => %w{
230
265
  Windows_Server-2008-RTM-English-*-Base-*
231
- Windows_Server-2008-SP*-English-*-Base-*] }
266
+ Windows_Server-2008-SP*-English-*-Base-*} },
232
267
  ],
233
268
  "windows-2012" => [
234
- { :name => "owner-alias", :values => %w[amazon] },
235
- { :name => "name", :values => %w[
269
+ { :name => "owner-alias", :values => %w{amazon} },
270
+ { :name => "name", :values => %w{
236
271
  Windows_Server-2012-RTM-English-*-Base-*
237
- Windows_Server-2012-SP*-English-*-Base-*] }
272
+ Windows_Server-2012-SP*-English-*-Base-*} },
238
273
  ],
239
274
  "windows-2012r2" => [
240
- { :name => "owner-alias", :values => %w[amazon] },
241
- { :name => "name", :values => %w[
275
+ { :name => "owner-alias", :values => %w{amazon} },
276
+ { :name => "name", :values => %w{
242
277
  Windows_Server-2012-R2_RTM-English-*-Base-*
243
- Windows_Server-2012-R2_SP*-English-*-Base-*] }
278
+ Windows_Server-2012-R2_SP*-English-*-Base-*} },
244
279
  ],
245
280
  "windows-2012sp1" => [
246
- { :name => "owner-alias", :values => %w[amazon] },
247
- { :name => "name", :values => %w[
248
- Windows_Server-2012-SP1-English-*-Base-*] }
281
+ { :name => "owner-alias", :values => %w{amazon} },
282
+ { :name => "name", :values => %w{
283
+ Windows_Server-2012-SP1-English-*-Base-*} },
249
284
  ],
250
285
  "windows-2012rtm" => [
251
- { :name => "owner-alias", :values => %w[amazon] },
252
- { :name => "name", :values => %w[
253
- Windows_Server-2012-RTM-English-*-Base-*] }
286
+ { :name => "owner-alias", :values => %w{amazon} },
287
+ { :name => "name", :values => %w{
288
+ Windows_Server-2012-RTM-English-*-Base-*} },
254
289
  ],
255
290
  "windows-2012r2sp1" => [
256
- { :name => "owner-alias", :values => %w[amazon] },
257
- { :name => "name", :values => %w[
258
- Windows_Server-2012-R2_SP1-English-*-Base-*] }
291
+ { :name => "owner-alias", :values => %w{amazon} },
292
+ { :name => "name", :values => %w{
293
+ Windows_Server-2012-R2_SP1-English-*-Base-*} },
259
294
  ],
260
295
  "windows-2012r2rtm" => [
261
- { :name => "owner-alias", :values => %w[amazon] },
262
- { :name => "name", :values => %w[
263
- Windows_Server-2012-R2_RTM-English-*-Base-*] }
296
+ { :name => "owner-alias", :values => %w{amazon} },
297
+ { :name => "name", :values => %w{
298
+ Windows_Server-2012-R2_RTM-English-*-Base-*} },
264
299
  ],
265
300
  "windows-x86_64" => [
266
- { :name => "owner-alias", :values => %w[amazon] },
267
- { :name => "name", :values => %w[
301
+ { :name => "owner-alias", :values => %w{amazon} },
302
+ { :name => "name", :values => %w{
268
303
  Windows_Server-*-RTM-English-*-Base-*
269
304
  Windows_Server-*-SP*-English-*-Base-*
270
305
  Windows_Server-*-R*_RTM-English-*-Base-*
271
306
  Windows_Server-*-R*_SP*-English-*-Base-*
272
- Windows_Server-*-English-Full-Base-*] },
273
- { :name => "architecture", :values => %w[x86_64] }
307
+ Windows_Server-*-English-Full-Base-*} },
308
+ { :name => "architecture", :values => %w{x86_64} },
274
309
  ],
275
310
  "windows-2012r2-x86_64" => [
276
- { :name => "owner-alias", :values => %w[amazon] },
277
- { :name => "name", :values => %w[
311
+ { :name => "owner-alias", :values => %w{amazon} },
312
+ { :name => "name", :values => %w{
278
313
  Windows_Server-2012-R2_RTM-English-*-Base-*
279
- Windows_Server-2012-R2_SP*-English-*-Base-*] },
280
- { :name => "architecture", :values => %w[x86_64] }
314
+ Windows_Server-2012-R2_SP*-English-*-Base-*} },
315
+ { :name => "architecture", :values => %w{x86_64} },
281
316
  ],
282
317
  "windows-server" => [
283
- { :name => "owner-alias", :values => %w[amazon] },
284
- { :name => "name", :values => %w[
318
+ { :name => "owner-alias", :values => %w{amazon} },
319
+ { :name => "name", :values => %w{
285
320
  Windows_Server-*-RTM-English-*-Base-*
286
321
  Windows_Server-*-SP*-English-*-Base-*
287
322
  Windows_Server-*-R*_RTM-English-*-Base-*
288
323
  Windows_Server-*-R*_SP*-English-*-Base-*
289
- Windows_Server-*-English-Full-Base-*] }
324
+ Windows_Server-*-English-Full-Base-*} },
290
325
  ],
291
326
  "windows-server-2012r2-x86_64" => [
292
- { :name => "owner-alias", :values => %w[amazon] },
293
- { :name => "name", :values => %w[
327
+ { :name => "owner-alias", :values => %w{amazon} },
328
+ { :name => "name", :values => %w{
294
329
  Windows_Server-2012-R2_RTM-English-*-Base-*
295
- Windows_Server-2012-R2_SP*-English-*-Base-*] },
296
- { :name => "architecture", :values => %w[x86_64] }
330
+ Windows_Server-2012-R2_SP*-English-*-Base-*} },
331
+ { :name => "architecture", :values => %w{x86_64} },
297
332
  ],
298
333
  "windows-2016" => [
299
- { :name => "owner-alias", :values => %w[amazon] },
300
- { :name => "name", :values => %w[
301
- Windows_Server-2016-English-Full-Base-*] }
302
- ]
334
+ { :name => "owner-alias", :values => %w{amazon} },
335
+ { :name => "name", :values => %w{
336
+ Windows_Server-2016-English-Full-Base-*} },
337
+ ],
303
338
  }
304
339
 
305
340
  describe "Platform defaults" do
@@ -329,7 +364,7 @@ describe "Default images for various platforms" do
329
364
  it "searches for an image id without using the standard filters" do
330
365
  expect(driver.ec2.resource).
331
366
  to receive(:images).
332
- with(:filters => [{ :name => "name", :values => %w[SuperImage] }]).
367
+ with(:filters => [{ :name => "name", :values => %w{SuperImage} }]).
333
368
  and_return([image])
334
369
  expect(driver.ec2.resource).
335
370
  to receive(:image).with(image.id).and_return(image)
@@ -345,7 +380,7 @@ describe "Default images for various platforms" do
345
380
  it "does not search for (or find) an image, and informs the user they need to set image_id" do
346
381
  expect(driver.ec2.resource).
347
382
  to receive(:images).
348
- with(:filters => [{ :name => "name", :values => %w[SuperImage] }]).
383
+ with(:filters => [{ :name => "name", :values => %w{SuperImage} }]).
349
384
  and_return([image])
350
385
  expect(driver.ec2.resource).
351
386
  to receive(:image).with(image.id).and_return(image)