beaker 2.19.0 → 2.20.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/HISTORY.md +96 -2
- data/lib/beaker/dsl/install_utils/foss_utils.rb +1 -1
- data/lib/beaker/host.rb +7 -5
- data/lib/beaker/hypervisor/vagrant_virtualbox.rb +5 -1
- data/lib/beaker/shared/host_manager.rb +5 -4
- data/lib/beaker/test_case.rb +2 -2
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/dsl/install_utils/foss_utils_spec.rb +16 -1
- data/spec/beaker/host_spec.rb +13 -0
- data/spec/beaker/shared/host_manager_spec.rb +41 -4
- data/spec/beaker/test_case_spec.rb +14 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ODkwNTk3ZWZmNDQ4MDc0YTVhYTk1OWJiYTU2Njc4YTAyYmM5NWUxZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NDU1Y2QzYzUyNGU0ZWM3YzI2MmNiNGM3M2M1YjIyOTllNjQ2YTg2NQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MDAwZTY4MTZlNTQxMmMxNDVhMjRkOGVkYTQ2OGZhNjgzYjE2Y2FiNmY0ZGU2
|
10
|
+
Yzg0ZjI2OGY2ZjAzODQ2NjM0ZDczY2Y3OGYxMzM0NWI3YjM0MTgwNmJlZTRk
|
11
|
+
YmQ2NDcxNjI0ODA0Y2Q4NWEwYzYwYjk2Mzk5NGIyYTEzMTI1NDU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZDQ1MGM4ZmY0YzY3MGMzNTVjNWExZGZlMTM0MmUxNmZhNDNhM2U0ODliNjg4
|
14
|
+
ZDRmNjcyNTJjMzg3MGJlNDE1YzZkOWEwMjE0ZDIzMTc1MjJmYzc2ZjlmZDQ2
|
15
|
+
ZmIwOTAwODVhYWUwNzdmMjQ0ODJmNTkzYjJmZTJjMWJkOWEwZWQ=
|
data/HISTORY.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# default - History
|
2
2
|
## Tags
|
3
|
-
* [LATEST -
|
3
|
+
* [LATEST - 17 Aug, 2015 (1d735a7a)](#LATEST)
|
4
|
+
* [2.19.0 - 13 Aug, 2015 (80897129)](#2.19.0)
|
4
5
|
* [2.18.3 - 28 Jul, 2015 (d9a02474)](#2.18.3)
|
5
6
|
* [2.18.2 - 27 Jul, 2015 (c84f6f23)](#2.18.2)
|
6
7
|
* [2.18.1 - 14 Jul, 2015 (6a82f99f)](#2.18.1)
|
@@ -91,7 +92,100 @@
|
|
91
92
|
* [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
|
92
93
|
|
93
94
|
## Details
|
94
|
-
### <a name = "LATEST">LATEST -
|
95
|
+
### <a name = "LATEST">LATEST - 17 Aug, 2015 (1d735a7a)
|
96
|
+
|
97
|
+
* (GEM) update beaker version to 2.20.0 (1d735a7a)
|
98
|
+
|
99
|
+
* Merge pull request #925 from objectverbobject/BKR-448 (d76d2a4a)
|
100
|
+
|
101
|
+
|
102
|
+
```
|
103
|
+
Merge pull request #925 from objectverbobject/BKR-448
|
104
|
+
|
105
|
+
(BKR-448) Check for connection object during host.close
|
106
|
+
```
|
107
|
+
* Merge pull request #924 from anodelman/puppet-agent (ba4b3d4e)
|
108
|
+
|
109
|
+
|
110
|
+
```
|
111
|
+
Merge pull request #924 from anodelman/puppet-agent
|
112
|
+
|
113
|
+
(BKR-447) Ubuntu PE puppet-agent urls not being generated correctly
|
114
|
+
```
|
115
|
+
* Merge pull request #904 from dylanratcliffe/add-per-node-memory (cc3d716a)
|
116
|
+
|
117
|
+
|
118
|
+
```
|
119
|
+
Merge pull request #904 from dylanratcliffe/add-per-node-memory
|
120
|
+
|
121
|
+
(BKR-423) Added the ability to set CPUs and memory per node
|
122
|
+
```
|
123
|
+
* Merge pull request #923 from puppetlabs/bkr-428/change-assertion-in-teardown-behavior (5f60c353)
|
124
|
+
|
125
|
+
|
126
|
+
```
|
127
|
+
Merge pull request #923 from puppetlabs/bkr-428/change-assertion-in-teardown-behavior
|
128
|
+
|
129
|
+
[BKR-428] gracefully handle assert failure in teardown
|
130
|
+
```
|
131
|
+
* (BKR-448) Check for connection object during host.close (255f43f6)
|
132
|
+
|
133
|
+
|
134
|
+
```
|
135
|
+
(BKR-448) Check for connection object during host.close
|
136
|
+
|
137
|
+
The close method for hosts assumed the connection object existed when
|
138
|
+
trying to set the hostname; this fix checks to ensure the connection
|
139
|
+
object exists prior to calling any methods on it.
|
140
|
+
```
|
141
|
+
* (BKR-447) Ubuntu PE puppet-agent urls not being generated correctly (bb71b7ba)
|
142
|
+
|
143
|
+
|
144
|
+
```
|
145
|
+
(BKR-447) Ubuntu PE puppet-agent urls not being generated correctly
|
146
|
+
|
147
|
+
- incorrectly adding additional '.' to ubuntu version strings that were
|
148
|
+
already correct
|
149
|
+
- added spec test to ensure correct behavior
|
150
|
+
- passed local testing
|
151
|
+
```
|
152
|
+
* Merge pull request #922 from anodelman/many-names (334d63a8)
|
153
|
+
|
154
|
+
|
155
|
+
```
|
156
|
+
Merge pull request #922 from anodelman/many-names
|
157
|
+
|
158
|
+
(BKR-446) add ability to identify a host by vmhostname/ip
|
159
|
+
```
|
160
|
+
* (BKR-428) gracefully handle assert failure in teardown (f8b97d7b)
|
161
|
+
|
162
|
+
|
163
|
+
```
|
164
|
+
(BKR-428) gracefully handle assert failure in teardown
|
165
|
+
|
166
|
+
Prior to this commit, if a teardown method ran code which contained assertions,
|
167
|
+
and an assertion failed, the exception raised by the assertion failure was
|
168
|
+
uncaught and beaker would crash.
|
169
|
+
|
170
|
+
This change treats the assertion failure as a test failure and allows beaker
|
171
|
+
to continue running.
|
172
|
+
```
|
173
|
+
* (BKR-446) add ability to identify a host by vmhostname/ip (24ecdf4b)
|
174
|
+
|
175
|
+
|
176
|
+
```
|
177
|
+
(BKR-446) add ability to identify a host by vmhostname/ip
|
178
|
+
|
179
|
+
- make it possible to run commands like:
|
180
|
+
|
181
|
+
on 'vmhostname', "command"
|
182
|
+
on '0.0.0.0', "command"
|
183
|
+
```
|
184
|
+
* (BKR-423) Added the ability to set CPUs and memory per node (132b6b7e)
|
185
|
+
|
186
|
+
### <a name = "2.19.0">2.19.0 - 13 Aug, 2015 (80897129)
|
187
|
+
|
188
|
+
* (HISTORY) update beaker history for gem release 2.19.0 (80897129)
|
95
189
|
|
96
190
|
* (GEM) update beaker version to 2.19.0 (821aefba)
|
97
191
|
|
@@ -1203,7 +1203,7 @@ module Beaker
|
|
1203
1203
|
if arch == 'x86_64'
|
1204
1204
|
arch = 'amd64'
|
1205
1205
|
end
|
1206
|
-
version = version[0,2] + '.' + version[2,2] if variant =~ /ubuntu/ && version
|
1206
|
+
version = version[0,2] + '.' + version[2,2] if (variant =~ /ubuntu/ && !version.include?("."))
|
1207
1207
|
release_file = "/repos/apt/#{codename}/pool/#{opts[:puppet_collection]}/p/puppet-agent/puppet-agent*#{arch}.deb"
|
1208
1208
|
download_file = "puppet-agent-#{variant}-#{version}-#{arch}.tar.gz"
|
1209
1209
|
when /^windows$/
|
data/lib/beaker/host.rb
CHANGED
@@ -243,11 +243,13 @@ module Beaker
|
|
243
243
|
end
|
244
244
|
|
245
245
|
def close
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
246
|
+
if @connection
|
247
|
+
@connection.close
|
248
|
+
# update connection information
|
249
|
+
@connection.ip = self['ip'] if self['ip']
|
250
|
+
@connection.vmhostname = self['vmhostname'] if self['vmhostname']
|
251
|
+
@connection.hostname = @name
|
252
|
+
end
|
251
253
|
@connection = nil
|
252
254
|
end
|
253
255
|
|
@@ -16,9 +16,13 @@ class Beaker::VagrantVirtualbox < Beaker::Vagrant
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def self.provider_vfile_section(host, options)
|
19
|
+
# Allow memory and CPUs to be set at a per node level or overall, and take the most specific setting
|
20
|
+
host_memory = host['vagrant_memsize'] ? host['vagrant_memsize'] : (options['vagrant_memsize'] ? options['vagrant_memsize'] : 1024)
|
21
|
+
host_cpus = host['vagrant_cpus'] ? host['vagrant_cpus'] : (options['vagrant_cpus'] ? options['vagrant_cpus'] : 1)
|
22
|
+
|
19
23
|
provider_section = ""
|
20
24
|
provider_section << " v.vm.provider :virtualbox do |vb|\n"
|
21
|
-
provider_section << " vb.customize ['modifyvm', :id, '--memory', '#{
|
25
|
+
provider_section << " vb.customize ['modifyvm', :id, '--memory', '#{host_memory}', '--cpus', '#{host_cpus}']\n"
|
22
26
|
provider_section << " vb.vbguest.auto_update = false" if options[:vbguest_plugin] == 'disable'
|
23
27
|
|
24
28
|
# Guest volume support
|
@@ -17,13 +17,14 @@ module Beaker
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
#Find hosts from a given array of hosts that all have the desired name
|
20
|
+
#Find hosts from a given array of hosts that all have the desired name, match against host name,
|
21
|
+
#vmhostname and ip (the three valid ways to identify an individual host)
|
21
22
|
#@param [Array<Host>] hosts The hosts to examine
|
22
|
-
#@param [String] name The hosts returned will have this name
|
23
|
-
#@return [Array<Host>] The hosts that have the desired name
|
23
|
+
#@param [String] name The hosts returned will have this name/vmhostname/ip
|
24
|
+
#@return [Array<Host>] The hosts that have the desired name/vmhostname/ip
|
24
25
|
def hosts_with_name(hosts, name = nil)
|
25
26
|
hosts.select do |host|
|
26
|
-
name.nil? or host.name =~ /\A#{name}/
|
27
|
+
name.nil? or host.name =~ /\A#{name}/ or host[:vmhostname] =~ /\A#{name}/ or host[:ip] =~ /\A#{name}/
|
27
28
|
end
|
28
29
|
end
|
29
30
|
|
data/lib/beaker/test_case.rb
CHANGED
@@ -33,7 +33,7 @@ module Beaker
|
|
33
33
|
# an instance of {Beaker::Logger}.
|
34
34
|
attr_accessor :logger
|
35
35
|
|
36
|
-
# Necessary for many methods in {Beaker::DSL::Helpers}. Assumed to be
|
36
|
+
# Necessary for many methods in {Beaker::DSL::Helpers}. Assumed to be
|
37
37
|
# a hash.
|
38
38
|
attr_accessor :metadata
|
39
39
|
|
@@ -139,7 +139,7 @@ module Beaker
|
|
139
139
|
@teardown_procs.each do |teardown|
|
140
140
|
begin
|
141
141
|
teardown.call
|
142
|
-
rescue StandardError, SignalException => e
|
142
|
+
rescue StandardError, SignalException, TEST_EXCEPTION_CLASS => e
|
143
143
|
log_and_fail_test(e)
|
144
144
|
end
|
145
145
|
end
|
data/lib/beaker/version.rb
CHANGED
@@ -912,7 +912,7 @@ describe ClassMixedWithDSLInstallUtils do
|
|
912
912
|
|
913
913
|
describe '#install_puppet_agent_pe_promoted_repo_on' do
|
914
914
|
|
915
|
-
it 'splits the platform string version correctly to get ubuntu puppet-agent packages' do
|
915
|
+
it 'splits the platform string version correctly to get ubuntu puppet-agent packages (format 9999)' do
|
916
916
|
platform = Object.new()
|
917
917
|
allow(platform).to receive(:to_array) { ['ubuntu', '9999', 'x42']}
|
918
918
|
host = basic_hosts.first
|
@@ -927,6 +927,21 @@ describe ClassMixedWithDSLInstallUtils do
|
|
927
927
|
subject.install_puppet_agent_pe_promoted_repo_on( host, {} )
|
928
928
|
end
|
929
929
|
|
930
|
+
it 'doesn\'t split the platform string version correctly to get ubuntu puppet-agent packages when unnecessary (format 99.99)' do
|
931
|
+
platform = Object.new()
|
932
|
+
allow(platform).to receive(:to_array) { ['ubuntu', '99.99', 'x42']}
|
933
|
+
host = basic_hosts.first
|
934
|
+
host['platform'] = platform
|
935
|
+
|
936
|
+
expect(subject).to receive(:fetch_http_file).once.with(/\/puppet-agent\//, "puppet-agent-ubuntu-99.99-x42.tar.gz", /ubuntu/)
|
937
|
+
expect(subject).to receive(:scp_to).once.with(host, /-ubuntu-99.99-x42\./, "/root")
|
938
|
+
expect(subject).to receive(:on).ordered.with(host, /^tar.*-ubuntu-99.99-x42/)
|
939
|
+
expect(subject).to receive(:on).ordered.with(host, /dpkg\ -i\ --force-all/)
|
940
|
+
expect(subject).to receive(:on).ordered.with(host, /apt-get\ update/)
|
941
|
+
|
942
|
+
subject.install_puppet_agent_pe_promoted_repo_on( host, {} )
|
943
|
+
end
|
944
|
+
|
930
945
|
end
|
931
946
|
|
932
947
|
describe '#install_cert_on_windows' do
|
data/spec/beaker/host_spec.rb
CHANGED
@@ -649,5 +649,18 @@ module Beaker
|
|
649
649
|
expect( "#{host}" ).to be === 'name'
|
650
650
|
end
|
651
651
|
|
652
|
+
describe 'host close' do
|
653
|
+
context 'with a nil connection object' do
|
654
|
+
before do
|
655
|
+
conn = nil
|
656
|
+
host.instance_variable_set :@connection, conn
|
657
|
+
allow(host).to receive(:close).and_call_original
|
658
|
+
end
|
659
|
+
it 'does not raise an error' do
|
660
|
+
expect { host.close }.to_not raise_error
|
661
|
+
end
|
662
|
+
end
|
663
|
+
end
|
664
|
+
|
652
665
|
end
|
653
666
|
end
|
@@ -15,7 +15,44 @@ module Beaker
|
|
15
15
|
hosts[2][:roles] = ['agent', role2]
|
16
16
|
hosts }
|
17
17
|
|
18
|
-
context "
|
18
|
+
context "#hosts_with_name" do
|
19
|
+
|
20
|
+
it "can identify the host by name" do
|
21
|
+
|
22
|
+
expect( host_handler.hosts_with_name( hosts, 'vm1' )).to be === [hosts[0]]
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
it "can identify the host by vmhostname" do
|
27
|
+
|
28
|
+
hosts[0][:vmhostname] = 'myname.whatever'
|
29
|
+
|
30
|
+
expect( host_handler.hosts_with_name( hosts, 'myname.whatever' )).to be === [hosts[0]]
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
it "can identify the host by ip" do
|
35
|
+
|
36
|
+
hosts[0][:ip] = '0.0.0.0'
|
37
|
+
|
38
|
+
expect( host_handler.hosts_with_name( hosts, '0.0.0.0' )).to be === [hosts[0]]
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
it "returns [] when no match is found in a set of hosts" do
|
43
|
+
|
44
|
+
hosts[0][:ip] = '0.0.0.0'
|
45
|
+
hosts[0][:vmhostname] = 'myname.whatever'
|
46
|
+
|
47
|
+
expect( host_handler.hosts_with_name( hosts, 'surprise' )).to be === []
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
context "#hosts_with_role" do
|
19
56
|
it "can find the master in a set of hosts" do
|
20
57
|
|
21
58
|
expect( host_handler.hosts_with_role( hosts, 'master' ) ).to be === [hosts[1]]
|
@@ -36,7 +73,7 @@ module Beaker
|
|
36
73
|
|
37
74
|
end
|
38
75
|
|
39
|
-
context "only_host_with_role" do
|
76
|
+
context "#only_host_with_role" do
|
40
77
|
it "can find the single master in a set of hosts" do
|
41
78
|
|
42
79
|
expect( host_handler.only_host_with_role( hosts, 'master' ) ).to be === hosts[1]
|
@@ -56,7 +93,7 @@ module Beaker
|
|
56
93
|
end
|
57
94
|
end
|
58
95
|
|
59
|
-
context "find_at_most_one_host_with_role" do
|
96
|
+
context "#find_at_most_one_host_with_role" do
|
60
97
|
it "can find the single master in a set of hosts" do
|
61
98
|
|
62
99
|
expect( host_handler.find_at_most_one_host_with_role( hosts, 'master' ) ).to be === hosts[1]
|
@@ -76,7 +113,7 @@ module Beaker
|
|
76
113
|
end
|
77
114
|
end
|
78
115
|
|
79
|
-
context "run_block_on" do
|
116
|
+
context "#run_block_on" do
|
80
117
|
it "can execute a block against hosts identified by a string" do
|
81
118
|
myhosts = host_handler.run_block_on( hosts, role0 ) do |hosts|
|
82
119
|
hosts
|
@@ -94,6 +94,20 @@ module Beaker
|
|
94
94
|
expect( testcase ).to receive( :log_and_fail_test ).once.with(kind_of(Host::CommandFailure))
|
95
95
|
testcase.run_test
|
96
96
|
end
|
97
|
+
|
98
|
+
it 'records a test failure if an assertion fails in a teardown block' do
|
99
|
+
path = 'test.rb'
|
100
|
+
File.open(path, 'w') do |f|
|
101
|
+
f.write <<-EOF
|
102
|
+
teardown do
|
103
|
+
assert_equal(1, 2, 'Oh noes!')
|
104
|
+
end
|
105
|
+
EOF
|
106
|
+
end
|
107
|
+
@path = path
|
108
|
+
expect( testcase ).to receive( :log_and_fail_test ).once.with(kind_of(Minitest::Assertion))
|
109
|
+
testcase.run_test
|
110
|
+
end
|
97
111
|
end
|
98
112
|
|
99
113
|
context 'metadata' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beaker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppetlabs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|