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.
- checksums.yaml +4 -4
- data/.travis.yml +6 -2
- data/CHANGELOG.md +18 -0
- data/Gemfile +3 -5
- data/README.md +52 -18
- data/Rakefile +1 -1
- data/kitchen-ec2.gemspec +3 -8
- data/lib/kitchen/driver/aws/client.rb +16 -16
- data/lib/kitchen/driver/aws/instance_generator.rb +17 -17
- data/lib/kitchen/driver/aws/standard_platform.rb +2 -2
- data/lib/kitchen/driver/aws/standard_platform/amazon.rb +34 -0
- data/lib/kitchen/driver/aws/standard_platform/centos.rb +2 -2
- data/lib/kitchen/driver/aws/standard_platform/debian.rb +3 -2
- data/lib/kitchen/driver/aws/standard_platform/fedora.rb +1 -1
- data/lib/kitchen/driver/aws/standard_platform/freebsd.rb +1 -1
- data/lib/kitchen/driver/aws/standard_platform/rhel.rb +1 -1
- data/lib/kitchen/driver/aws/standard_platform/ubuntu.rb +1 -1
- data/lib/kitchen/driver/aws/standard_platform/windows.rb +3 -3
- data/lib/kitchen/driver/ec2.rb +30 -14
- data/lib/kitchen/driver/ec2_version.rb +1 -1
- data/spec/kitchen/driver/ec2/client_spec.rb +3 -3
- data/spec/kitchen/driver/ec2/image_selection_spec.rb +157 -122
- data/spec/kitchen/driver/ec2/instance_generator_spec.rb +51 -43
- data/spec/kitchen/driver/ec2_spec.rb +36 -16
- metadata +8 -22
- data/.rubocop.yml +0 -21
@@ -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.
|
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
|
@@ -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.
|
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.
|
104
|
+
service_pack = (service_pack.casecmp("rtm") == 0) ? 0 : service_pack[2..-1].to_i
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
data/lib/kitchen/driver/ec2.rb
CHANGED
@@ -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,
|
52
|
+
default_config :region, ENV["AWS_REGION"] || "us-east-1"
|
52
53
|
default_config :shared_credentials_profile, nil
|
53
|
-
default_config :availability_zone,
|
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,
|
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,
|
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
|
-
|
212
|
-
|
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
|
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
|
-
|
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
|
@@ -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
|
-
|
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
|
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
|
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
|
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
|
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
|
110
|
+
{ :name => "owner-alias", :values => %w{aws-marketplace} },
|
80
111
|
{ :name => "name", :values => ["CentOS Linux *", "CentOS-*-GA-*"] },
|
81
|
-
{ :name => "architecture", :values => %w
|
112
|
+
{ :name => "architecture", :values => %w{x86_64} },
|
82
113
|
],
|
83
114
|
"centos-6.3-x86_64" => [
|
84
|
-
{ :name => "owner-alias", :values => %w
|
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
|
117
|
+
{ :name => "architecture", :values => %w{x86_64} },
|
87
118
|
],
|
88
119
|
"centos-7-x86_64" => [
|
89
|
-
{ :name => "owner-alias", :values => %w
|
120
|
+
{ :name => "owner-alias", :values => %w{aws-marketplace} },
|
90
121
|
{ :name => "name", :values => ["CentOS Linux 7*", "CentOS-7*-GA-*"] },
|
91
|
-
{ :name => "architecture", :values => %w
|
122
|
+
{ :name => "architecture", :values => %w{x86_64} },
|
92
123
|
],
|
93
124
|
|
94
125
|
"debian" => [
|
95
|
-
{ :name => "owner-id", :values => %w
|
96
|
-
{ :name => "name", :values => %w
|
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
|
100
|
-
{ :name => "name", :values => %w
|
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
|
104
|
-
{ :name => "name", :values => %w
|
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
|
108
|
-
{ :name => "name", :values => %w
|
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
|
112
|
-
{ :name => "name", :values => %w
|
113
|
-
{ :name => "architecture", :values => %w
|
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
|
117
|
-
{ :name => "name", :values => %w
|
118
|
-
{ :name => "architecture", :values => %w
|
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
|
123
|
-
{ :name => "name", :values => %w
|
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
|
127
|
-
{ :name => "name", :values => %w
|
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
|
131
|
-
{ :name => "name", :values => %w
|
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
|
135
|
-
{ :name => "name", :values => %w
|
136
|
-
{ :name => "architecture", :values => %w
|
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
|
140
|
-
{ :name => "name", :values => %w
|
141
|
-
{ :name => "architecture", :values => %w
|
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
|
145
|
-
{ :name => "name", :values => %w
|
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
|
149
|
-
{ :name => "name", :values => %w
|
150
|
-
{ :name => "architecture", :values => %w
|
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
|
155
|
-
{ :name => "name", :values => %w
|
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
|
159
|
-
{ :name => "name", :values => %w
|
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
|
163
|
-
{ :name => "name", :values => %w
|
164
|
-
{ :name => "architecture", :values => %w
|
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
|
168
|
-
{ :name => "name", :values => %w
|
169
|
-
{ :name => "architecture", :values => %w
|
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
|
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
|
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
|
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
|
220
|
+
{ :name => "owner-id", :values => %w{118940168514} },
|
186
221
|
{ :name => "name", :values => ["FreeBSD *-RELEASE*", "FreeBSD/EC2 *-RELEASE*"] },
|
187
|
-
{ :name => "architecture", :values => %w
|
222
|
+
{ :name => "architecture", :values => %w{x86_64} },
|
188
223
|
],
|
189
224
|
"freebsd-10-x86_64" => [
|
190
|
-
{ :name => "owner-id", :values => %w
|
225
|
+
{ :name => "owner-id", :values => %w{118940168514} },
|
191
226
|
{ :name => "name", :values => ["FreeBSD 10*-RELEASE*", "FreeBSD/EC2 10*-RELEASE*"] },
|
192
|
-
{ :name => "architecture", :values => %w
|
227
|
+
{ :name => "architecture", :values => %w{x86_64} },
|
193
228
|
],
|
194
229
|
|
195
230
|
"ubuntu" => [
|
196
|
-
{ :name => "owner-id", :values => %w
|
197
|
-
{ :name => "name", :values => %w
|
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
|
201
|
-
{ :name => "name", :values => %w
|
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
|
205
|
-
{ :name => "name", :values => %w
|
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
|
209
|
-
{ :name => "name", :values => %w
|
210
|
-
{ :name => "architecture", :values => %w
|
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
|
214
|
-
{ :name => "name", :values => %w
|
215
|
-
{ :name => "architecture", :values => %w
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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)
|