beaker 2.28.0 → 2.29.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 +8 -8
- data/HISTORY.md +101 -2
- data/docs/hypervisors/vagrant.md +40 -0
- data/lib/beaker/hypervisor/vagrant.rb +6 -0
- data/lib/beaker/logger.rb +2 -7
- data/lib/beaker/test_case.rb +1 -1
- data/lib/beaker/version.rb +1 -1
- data/spec/beaker/hypervisor/vagrant_spec.rb +12 -1
- data/spec/beaker/logger_spec.rb +40 -10
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MzFmNmVhOTYzNjFkNjM3NjNmYTBjMDk3Njc1NGYwYmE2MGQ0NzM2ZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZGIzM2M4YzE1MzZkYWNiNDNiMGYxMDc2ZmI0MTVkZmEzN2I4OThmOA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NTA5Yjk4YWNkOWRmMjE5OGNlMGQ1NGQ2OTgwNWVhZjYyZjI5YjA1OTgxZWYx
|
10
|
+
NjM1ZjMxYzU2Yzg0MDViOWZkZjQzNzJhYjA2NmY5ZjU1MjMxNmMyMWU1MDli
|
11
|
+
M2U0NmI3Njk4OGU1YzIwYTM4NjVmOThhNmZjYzU0ODE0NTkzZDg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OTVlN2UzYjljMWQxNjU4ODE0ZTlkYmY0NDg0NmNlZTliOTUyOGE5ZWU2MTQ5
|
14
|
+
NGE5OTRlYWE5NjRkZWY2N2IzOTFmNTY4ZjVjMjk2MDRhZjU0ZjRiMWU4ZGNh
|
15
|
+
ZWJjNTEzY2ZjYTVmYTEzZTZiOWY2ZTc4MTc3YTk4OWMxMWI3ZjI=
|
data/HISTORY.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# default - History
|
2
2
|
## Tags
|
3
|
-
* [LATEST -
|
3
|
+
* [LATEST - 18 Nov, 2015 (5ae7782f)](#LATEST)
|
4
|
+
* [2.28.0 - 4 Nov, 2015 (89829551)](#2.28.0)
|
4
5
|
* [2.27.0 - 21 Oct, 2015 (0378d13a)](#2.27.0)
|
5
6
|
* [2.26.0 - 13 Oct, 2015 (427a512b)](#2.26.0)
|
6
7
|
* [2.25.0 - 1 Oct, 2015 (51d4cb1a)](#2.25.0)
|
@@ -100,7 +101,105 @@
|
|
100
101
|
* [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
|
101
102
|
|
102
103
|
## Details
|
103
|
-
### <a name = "LATEST">LATEST -
|
104
|
+
### <a name = "LATEST">LATEST - 18 Nov, 2015 (5ae7782f)
|
105
|
+
|
106
|
+
* (GEM) update beaker version to 2.29.0 (5ae7782f)
|
107
|
+
|
108
|
+
* Merge pull request #1011 from developerinlondon/feature/BKR-625-add-mounting-folder-option (4bc5750e)
|
109
|
+
|
110
|
+
|
111
|
+
```
|
112
|
+
Merge pull request #1011 from developerinlondon/feature/BKR-625-add-mounting-folder-option
|
113
|
+
|
114
|
+
(BKR-625) Added ability to mount a folder.
|
115
|
+
```
|
116
|
+
* Merge pull request #1010 from dylanratcliffe/bkr-624/fix-line_prefix_length (e48e8752)
|
117
|
+
|
118
|
+
|
119
|
+
```
|
120
|
+
Merge pull request #1010 from dylanratcliffe/bkr-624/fix-line_prefix_length
|
121
|
+
|
122
|
+
(BKR-624) Added a setter for line_prefix
|
123
|
+
```
|
124
|
+
* (BKR-624) Modified `step_in` and `step_out` methods so that you can set (e72689b5)
|
125
|
+
|
126
|
+
|
127
|
+
```
|
128
|
+
(BKR-624) Modified `step_in` and `step_out` methods so that you can set
|
129
|
+
`line_prefix` explicitly and they will still work.
|
130
|
+
```
|
131
|
+
* BKR-625: Added ability to mount a folder. (e047bd84)
|
132
|
+
|
133
|
+
|
134
|
+
```
|
135
|
+
BKR-625: Added ability to mount a folder.
|
136
|
+
|
137
|
+
Without this patch there is no way to mount a local folder inside the beaker nodes.
|
138
|
+
|
139
|
+
With this patch folders can be mounted similar to below:
|
140
|
+
|
141
|
+
|
142
|
+
HOSTS:
|
143
|
+
ubuntu-1404-x64-master:
|
144
|
+
roles:
|
145
|
+
- master
|
146
|
+
- agent
|
147
|
+
- dashboard
|
148
|
+
- database
|
149
|
+
platform: ubuntu-1404-x86_64
|
150
|
+
hypervisor: vagrant
|
151
|
+
box: puppetlabs/ubuntu-14.04-64-nocm
|
152
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
|
153
|
+
mount_folders:
|
154
|
+
folder1:
|
155
|
+
from: ./
|
156
|
+
to: /vagrant/folder1
|
157
|
+
tmp:
|
158
|
+
from: /tmp
|
159
|
+
to: /vagrant/tmp
|
160
|
+
ip: 192.168.20.20
|
161
|
+
ubuntu-1404-x64-agent:
|
162
|
+
roles:
|
163
|
+
- agent
|
164
|
+
platform: ubuntu-1404-x86_64
|
165
|
+
hypervisor: vagrant
|
166
|
+
box: puppetlabs/ubuntu-14.04-64-nocm
|
167
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
|
168
|
+
ip: 192.168.21.21
|
169
|
+
CONFIG:
|
170
|
+
nfs_server: none
|
171
|
+
consoleport: 443
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
In the above beaker will mount the folders ./ to /vagrant/folder1 and the folder /tmp to /vagrant/tmp
|
176
|
+
|
177
|
+
This relates to the new feature ticket opened on puppetlab here: https://tickets.puppetlabs.com/browse/BKR-625
|
178
|
+
```
|
179
|
+
* Merge pull request #1007 from adrienthebo/bkr-517-print-exception-class-message (5780f563)
|
180
|
+
|
181
|
+
|
182
|
+
```
|
183
|
+
Merge pull request #1007 from adrienthebo/bkr-517-print-exception-class-message
|
184
|
+
|
185
|
+
(BRK-617) Print exception message for test cases
|
186
|
+
```
|
187
|
+
* (BRK-617) Print exception message for test cases (788b9cda)
|
188
|
+
|
189
|
+
|
190
|
+
```
|
191
|
+
(BRK-617) Print exception message for test cases
|
192
|
+
|
193
|
+
Some exceptions implement the `#inspect` method to only print the class
|
194
|
+
name or otherwise change the output to not include the error message in
|
195
|
+
question, which makes such exceptions very challenging to deubg. This
|
196
|
+
commit changes the test case exception printing method to explicitly
|
197
|
+
print the exception class and message so that there's always relevant
|
198
|
+
context available when an exception is raised.
|
199
|
+
```
|
200
|
+
### <a name = "2.28.0">2.28.0 - 4 Nov, 2015 (89829551)
|
201
|
+
|
202
|
+
* (HISTORY) update beaker history for gem release 2.28.0 (89829551)
|
104
203
|
|
105
204
|
* (GEM) update beaker version to 2.28.0 (aadc0fcc)
|
106
205
|
|
@@ -0,0 +1,40 @@
|
|
1
|
+
When using the Vagrant Hypervisor, beaker can mount specific local directories as synced_folders inside the vagrant box.
|
2
|
+
This is done by using the 'mount_folders' option in the nodeset file.
|
3
|
+
|
4
|
+
Example hosts file:
|
5
|
+
|
6
|
+
HOSTS:
|
7
|
+
ubuntu-1404-x64-master:
|
8
|
+
roles:
|
9
|
+
- master
|
10
|
+
- agent
|
11
|
+
- dashboard
|
12
|
+
- database
|
13
|
+
platform: ubuntu-1404-x86_64
|
14
|
+
hypervisor: vagrant
|
15
|
+
box: puppetlabs/ubuntu-14.04-64-nocm
|
16
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
|
17
|
+
mount_folders:
|
18
|
+
folder1:
|
19
|
+
from: ./
|
20
|
+
to: /vagrant/folder1
|
21
|
+
tmp:
|
22
|
+
from: /tmp
|
23
|
+
to: /vagrant/tmp
|
24
|
+
ip: 192.168.20.20
|
25
|
+
ubuntu-1404-x64-agent:
|
26
|
+
roles:
|
27
|
+
- agent
|
28
|
+
platform: ubuntu-1404-x86_64
|
29
|
+
hypervisor: vagrant
|
30
|
+
box: puppetlabs/ubuntu-14.04-64-nocm
|
31
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
|
32
|
+
ip: 192.168.21.21
|
33
|
+
CONFIG:
|
34
|
+
nfs_server: none
|
35
|
+
consoleport: 443
|
36
|
+
|
37
|
+
In the above beaker will mount the folders ./ to /vagrant/folder1 and the folder /tmp to /vagrant/tmp
|
38
|
+
|
39
|
+
## Supported Virtualization Providers ##
|
40
|
+
* [Vagrant](Vagrant-Support.md)
|
@@ -35,6 +35,12 @@ module Beaker
|
|
35
35
|
v_file << " v.vm.synced_folder '.', '/vagrant', disabled: true\n" if host['synced_folder'] == 'disabled'
|
36
36
|
v_file << " v.vm.network :private_network, ip: \"#{host['ip'].to_s}\", :netmask => \"#{host['netmask'] ||= "255.255.0.0"}\", :mac => \"#{randmac}\"\n"
|
37
37
|
|
38
|
+
unless host['mount_folders'].nil?
|
39
|
+
host['mount_folders'].each do |name, folder|
|
40
|
+
v_file << " v.vm.synced_folder '#{folder[:from]}', '#{folder[:to]}', create: true\n"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
38
44
|
if /windows/i.match(host['platform'])
|
39
45
|
v_file << " v.vm.network :forwarded_port, guest: 3389, host: 3389, id: 'rdp', auto_correct: true\n"
|
40
46
|
v_file << " v.vm.network :forwarded_port, guest: 5985, host: 5985, id: 'winrm', auto_correct: true\n"
|
data/lib/beaker/logger.rb
CHANGED
@@ -78,7 +78,6 @@ module Beaker
|
|
78
78
|
end
|
79
79
|
|
80
80
|
@last_result = nil
|
81
|
-
@line_prefix_length = 0
|
82
81
|
@line_prefix = ''
|
83
82
|
|
84
83
|
@destinations = []
|
@@ -118,7 +117,6 @@ module Beaker
|
|
118
117
|
dests.each {|dest| add_destination(dest)}
|
119
118
|
end
|
120
119
|
|
121
|
-
|
122
120
|
# Turn on/off STDOUT logging
|
123
121
|
# @param [Boolean] off If true, disable STDOUT logging, if false enable STDOUT logging
|
124
122
|
def quiet(off = true)
|
@@ -238,17 +236,14 @@ module Beaker
|
|
238
236
|
#
|
239
237
|
# @return nil
|
240
238
|
def step_in
|
241
|
-
|
242
|
-
@line_prefix = ' ' * @line_prefix_length
|
239
|
+
self.line_prefix = self.line_prefix + ' '
|
243
240
|
end
|
244
241
|
|
245
242
|
# Sets the step level appropriately for logging to be indented correctly
|
246
243
|
#
|
247
244
|
# @return nil
|
248
245
|
def step_out
|
249
|
-
|
250
|
-
@line_prefix_length = 0 if @line_prefix_length < 0
|
251
|
-
@line_prefix = ' ' * @line_prefix_length
|
246
|
+
self.line_prefix = self.line_prefix.chop.chop
|
252
247
|
end
|
253
248
|
|
254
249
|
# Custom reporting for messages generated by host SUTs.
|
data/lib/beaker/test_case.rb
CHANGED
@@ -160,7 +160,7 @@ module Beaker
|
|
160
160
|
#
|
161
161
|
# @param exception [Exception] exception to fail with
|
162
162
|
def log_and_fail_test(exception)
|
163
|
-
logger.error(exception.
|
163
|
+
logger.error("#{exception.class}: #{exception.message}")
|
164
164
|
bt = exception.backtrace
|
165
165
|
logger.pretty_backtrace(bt).each_line do |line|
|
166
166
|
logger.error(line)
|
data/lib/beaker/version.rb
CHANGED
@@ -14,7 +14,12 @@ module Beaker
|
|
14
14
|
let( :vagrant ) { Beaker::Vagrant.new( @hosts, options ) }
|
15
15
|
|
16
16
|
before :each do
|
17
|
-
@hosts = make_hosts(
|
17
|
+
@hosts = make_hosts({
|
18
|
+
:mount_folders => {
|
19
|
+
:test_temp => {:from => './', :to => '/temp'},
|
20
|
+
:test_tmp => {:from => '../', :to => '/tmp'}
|
21
|
+
}
|
22
|
+
})
|
18
23
|
end
|
19
24
|
|
20
25
|
it "stores the vagrant file in $WORKINGDIR/.vagrant/beaker_vagrant_files/sample.cfg" do
|
@@ -41,6 +46,8 @@ Vagrant.configure("2") do |c|
|
|
41
46
|
v.vm.box_url = 'http://address.for.my.box.vm1'
|
42
47
|
v.vm.box_check_update = 'true'
|
43
48
|
v.vm.network :private_network, ip: "ip.address.for.vm1", :netmask => "255.255.0.0", :mac => "0123456789"
|
49
|
+
v.vm.synced_folder './', '/temp', create: true
|
50
|
+
v.vm.synced_folder '../', '/tmp', create: true
|
44
51
|
v.vm.provider :virtualbox do |vb|
|
45
52
|
vb.customize ['modifyvm', :id, '--memory', '1024', '--cpus', '1']
|
46
53
|
end
|
@@ -51,6 +58,8 @@ Vagrant.configure("2") do |c|
|
|
51
58
|
v.vm.box_url = 'http://address.for.my.box.vm2'
|
52
59
|
v.vm.box_check_update = 'true'
|
53
60
|
v.vm.network :private_network, ip: "ip.address.for.vm2", :netmask => "255.255.0.0", :mac => "0123456789"
|
61
|
+
v.vm.synced_folder './', '/temp', create: true
|
62
|
+
v.vm.synced_folder '../', '/tmp', create: true
|
54
63
|
v.vm.provider :virtualbox do |vb|
|
55
64
|
vb.customize ['modifyvm', :id, '--memory', '1024', '--cpus', '1']
|
56
65
|
end
|
@@ -61,6 +70,8 @@ Vagrant.configure("2") do |c|
|
|
61
70
|
v.vm.box_url = 'http://address.for.my.box.vm3'
|
62
71
|
v.vm.box_check_update = 'true'
|
63
72
|
v.vm.network :private_network, ip: "ip.address.for.vm3", :netmask => "255.255.0.0", :mac => "0123456789"
|
73
|
+
v.vm.synced_folder './', '/temp', create: true
|
74
|
+
v.vm.synced_folder '../', '/tmp', create: true
|
64
75
|
v.vm.provider :virtualbox do |vb|
|
65
76
|
vb.customize ['modifyvm', :id, '--memory', '1024', '--cpus', '1']
|
66
77
|
end
|
data/spec/beaker/logger_spec.rb
CHANGED
@@ -47,10 +47,10 @@ module Beaker
|
|
47
47
|
|
48
48
|
context '#prefix_log_line' do
|
49
49
|
def prefix_log_line_test_compare_helper(in_test, out_answer, step_in_loop=1)
|
50
|
-
logger.
|
50
|
+
logger.line_prefix = ''
|
51
51
|
step_in_loop.times { logger.step_in() }
|
52
52
|
expect( logger.prefix_log_line(in_test) ).to be === out_answer
|
53
|
-
logger.
|
53
|
+
logger.line_prefix = ''
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'can be successfully called with a arrays' do
|
@@ -86,33 +86,63 @@ module Beaker
|
|
86
86
|
|
87
87
|
context '#step_* methods' do
|
88
88
|
it 'steps in correctly (simple case)' do
|
89
|
-
logger.
|
89
|
+
logger.line_prefix = ''
|
90
90
|
logger.step_in()
|
91
|
-
expect( logger.instance_variable_get( :@line_prefix_length ) ).to be === 2
|
92
91
|
expect( logger.line_prefix ).to be === ' '
|
93
|
-
logger.
|
92
|
+
logger.line_prefix = ''
|
94
93
|
end
|
95
94
|
|
96
95
|
it 'sets length correctly in mixed scenario ' do
|
97
|
-
logger.
|
96
|
+
logger.line_prefix = ''
|
98
97
|
logger.step_in()
|
99
98
|
logger.step_in()
|
100
99
|
logger.step_out()
|
101
100
|
logger.step_in()
|
102
101
|
logger.step_in()
|
103
102
|
logger.step_out()
|
104
|
-
expect( logger.instance_variable_get( :@line_prefix_length ) ).to be === 4
|
105
103
|
expect( logger.line_prefix ).to be === ' '
|
106
|
-
logger.
|
104
|
+
logger.line_prefix = ''
|
107
105
|
end
|
108
106
|
|
109
107
|
it 'can be unevenly stepped out, will remain at base: 0' do
|
110
|
-
logger.
|
108
|
+
logger.line_prefix = ''
|
111
109
|
logger.step_in()
|
112
110
|
10.times { logger.step_out() }
|
113
|
-
expect( logger.instance_variable_get( :@line_prefix_length ) ).to be === 0
|
114
111
|
expect( logger.line_prefix ).to be === ''
|
115
112
|
end
|
113
|
+
|
114
|
+
it 'can handle arbitrary strings as prefixes' do
|
115
|
+
logger.line_prefix = ''
|
116
|
+
logger.line_prefix = 'Some string:'
|
117
|
+
expect( logger.line_prefix ).to be === 'Some string:'
|
118
|
+
logger.line_prefix = ''
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'can handle stepping in with arbitrary strings' do
|
122
|
+
logger.line_prefix = ''
|
123
|
+
logger.line_prefix = 'Some string:'
|
124
|
+
logger.step_in()
|
125
|
+
logger.step_in()
|
126
|
+
expect( logger.line_prefix ).to be === 'Some string: '
|
127
|
+
logger.line_prefix = ''
|
128
|
+
end
|
129
|
+
|
130
|
+
it 'can handle stepping out with arbitrary strings' do
|
131
|
+
logger.line_prefix = ''
|
132
|
+
logger.line_prefix = 'Some string:'
|
133
|
+
10.times { logger.step_out() }
|
134
|
+
expect( logger.line_prefix ).to be === ''
|
135
|
+
logger.line_prefix = ''
|
136
|
+
end
|
137
|
+
|
138
|
+
it 'can handle stepping in and out with arbitrary strings' do
|
139
|
+
logger.line_prefix = ''
|
140
|
+
logger.line_prefix = 'Some string:'
|
141
|
+
10.times { logger.step_in() }
|
142
|
+
10.times { logger.step_out() }
|
143
|
+
expect( logger.line_prefix ).to be === 'Some string:'
|
144
|
+
logger.line_prefix = ''
|
145
|
+
end
|
116
146
|
end
|
117
147
|
|
118
148
|
context 'new' 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.29.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-11-
|
11
|
+
date: 2015-11-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -546,6 +546,7 @@ files:
|
|
546
546
|
- docs/hosts/eos.md
|
547
547
|
- docs/hypervisors/README.md
|
548
548
|
- docs/hypervisors/aws.md
|
549
|
+
- docs/hypervisors/vagrant.md
|
549
550
|
- docs/vSphere-Support.md
|
550
551
|
- ext/completion/beaker-completion.bash
|
551
552
|
- lib/beaker.rb
|