kitchen-ec2 1.3.2 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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)