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.
- 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)
|