beaker 2.42.0 → 2.43.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 +156 -2
- data/MAINTAINERS.md +21 -0
- data/README.md +11 -13
- data/docs/README.md +5 -4
- data/docs/dsl/confine.md +76 -0
- data/docs/hypervisors/vagrant.md +88 -7
- data/docs/{Example-Vagrant-Hosts-Files.md → hypervisors/vagrant_hosts_file_examples.md} +0 -0
- data/lib/beaker/dsl/helpers/host_helpers.rb +2 -4
- data/lib/beaker/dsl/install_utils/foss_utils.rb +6 -1
- data/lib/beaker/host/windows/file.rb +0 -2
- data/lib/beaker/host_prebuilt_steps.rb +7 -1
- data/lib/beaker/hypervisor/vagrant.rb +4 -0
- data/lib/beaker/tasks/rake_task.rb +3 -1
- data/lib/beaker/version.rb +1 -1
- metadata +5 -6
- data/docs/Beaker-Owners-and-Reviewers.md +0 -16
- data/docs/File-a-Beaker-Bug.md +0 -3
- data/docs/Vagrant-Support.md +0 -47
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NjVlYzZiNmZiMmI2MzY4YmZjY2U0YTkyNDZmMjMwMmNjMWQ3NmQzMA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZDUyMWViNjYwYWFkM2E0ZjE3OWQ5YmNjNmM0MmQ2MmNiMmEyMTdkOA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MDcxNDk4NTUwYzc2NGI1MDE3NmM4NjAyMzA5ZmM1MDY2MDYwZGY3N2I5MmIy
|
10
|
+
ZTRjNmY2YWY0YjEwMDU1OTQ4OWU2NzMyNDE4OTgwNTlmMTcwZWU1ZmE3MTMx
|
11
|
+
YThiNDk2OGVjM2U0ZDUxZThmM2Q0N2MxNmY3YzU5NDVlYTQ2NTQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NTUzOWNhYjI5MzU2YjE1ODk5YzZjY2IxZDBmYzY4MWFmYTJkZGRmMTU2NWYw
|
14
|
+
YjAyZjU2MGNkMDFmM2Y2ZjE0YzFjZjAwOTQ3NTc5Mzg3YzY1MmU5MTUzOTVj
|
15
|
+
NWZhMDQ0NmRjOGUwM2IwM2ViNTlmMzVmYmQwY2UyOGM4ODEyYWY=
|
data/HISTORY.md
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# default - History
|
2
2
|
## Tags
|
3
|
-
* [LATEST -
|
3
|
+
* [LATEST - 1 Jun, 2016 (83bf4f46)](#LATEST)
|
4
|
+
* [2.42.0 - 23 May, 2016 (c245fef7)](#2.42.0)
|
4
5
|
* [2.41.0 - 10 May, 2016 (17c745bd)](#2.41.0)
|
5
6
|
* [2.40.0 - 18 Apr, 2016 (0a7b948a)](#2.40.0)
|
6
7
|
* [2.39.0 - 6 Apr, 2016 (5976e103)](#2.39.0)
|
@@ -118,7 +119,160 @@
|
|
118
119
|
* [pe1.2 - 6 Sep, 2011 (ba3dadd2)](#pe1.2)
|
119
120
|
|
120
121
|
## Details
|
121
|
-
### <a name = "LATEST">LATEST -
|
122
|
+
### <a name = "LATEST">LATEST - 1 Jun, 2016 (83bf4f46)
|
123
|
+
|
124
|
+
* (GEM) update beaker version to 2.43.0 (83bf4f46)
|
125
|
+
|
126
|
+
* Merge pull request #1128 from puppetlabs/maint/master/update-shell-docs (81f6ab97)
|
127
|
+
|
128
|
+
|
129
|
+
```
|
130
|
+
Merge pull request #1128 from puppetlabs/maint/master/update-shell-docs
|
131
|
+
|
132
|
+
(maint) Fix documentation example for shell
|
133
|
+
```
|
134
|
+
* Merge pull request #1132 from kevpl/docs_vagrant_reconcile (1ec62530)
|
135
|
+
|
136
|
+
|
137
|
+
```
|
138
|
+
Merge pull request #1132 from kevpl/docs_vagrant_reconcile
|
139
|
+
|
140
|
+
(MAINT) cleaned up vagrant hypervisor docs
|
141
|
+
```
|
142
|
+
* Merge pull request #1113 from james-powis/BKR-758_fix-bitvise-ssh (3df2a046)
|
143
|
+
|
144
|
+
|
145
|
+
```
|
146
|
+
Merge pull request #1113 from james-powis/BKR-758_fix-bitvise-ssh
|
147
|
+
|
148
|
+
(BKR-758) Fix Bitvise SSH issues and Various vagrant versions not forwarding ssh properly
|
149
|
+
```
|
150
|
+
* (MAINT) cleaned up vagrant hypervisor docs (ad442334)
|
151
|
+
|
152
|
+
|
153
|
+
```
|
154
|
+
(MAINT) cleaned up vagrant hypervisor docs
|
155
|
+
|
156
|
+
[skip ci]
|
157
|
+
```
|
158
|
+
* (maint) Fix documentation example for shell (323a5296)
|
159
|
+
|
160
|
+
|
161
|
+
```
|
162
|
+
(maint) Fix documentation example for shell
|
163
|
+
|
164
|
+
Shell cannot accept a host, so update inline docs accordingly.
|
165
|
+
```
|
166
|
+
* Merge pull request #1125 from kevpl/maint_docs_installation_clarify (75d6244f)
|
167
|
+
|
168
|
+
|
169
|
+
```
|
170
|
+
Merge pull request #1125 from kevpl/maint_docs_installation_clarify
|
171
|
+
|
172
|
+
(MAINT) clarifying between install docs
|
173
|
+
```
|
174
|
+
* Merge pull request #1123 from kevpl/maint_docs_filebug_rm (c6a02b25)
|
175
|
+
|
176
|
+
|
177
|
+
```
|
178
|
+
Merge pull request #1123 from kevpl/maint_docs_filebug_rm
|
179
|
+
|
180
|
+
(MAINT) rm File-a-Beaker-Bug doc, redundant
|
181
|
+
```
|
182
|
+
* Merge pull request #1127 from kevpl/maint_docs_maintainers_consolidate (746f571f)
|
183
|
+
|
184
|
+
|
185
|
+
```
|
186
|
+
Merge pull request #1127 from kevpl/maint_docs_maintainers_consolidate
|
187
|
+
|
188
|
+
(MAINT) clarify beaker maintainers
|
189
|
+
```
|
190
|
+
* Merge pull request #1124 from kevpl/maint_docs_readme_01 (dbd4c1cf)
|
191
|
+
|
192
|
+
|
193
|
+
```
|
194
|
+
Merge pull request #1124 from kevpl/maint_docs_readme_01
|
195
|
+
|
196
|
+
(MAINT) added overview to main README
|
197
|
+
```
|
198
|
+
* (MAINT) clarify beaker maintainers (a9a9fb9a)
|
199
|
+
|
200
|
+
|
201
|
+
```
|
202
|
+
(MAINT) clarify beaker maintainers
|
203
|
+
|
204
|
+
[skipci]
|
205
|
+
```
|
206
|
+
* Merge pull request #1126 from tvpartytonight/maint_add_front_page_links (8540111a)
|
207
|
+
|
208
|
+
|
209
|
+
```
|
210
|
+
Merge pull request #1126 from tvpartytonight/maint_add_front_page_links
|
211
|
+
|
212
|
+
(maint) Add front page link for Getting Started guide
|
213
|
+
```
|
214
|
+
* (maint) Add front page link for Getting Started guide (74fe4247)
|
215
|
+
|
216
|
+
* (MAINT) clarifying between install docs (bbe3e500)
|
217
|
+
|
218
|
+
|
219
|
+
```
|
220
|
+
(MAINT) clarifying between install docs
|
221
|
+
|
222
|
+
[skip ci]
|
223
|
+
```
|
224
|
+
* (MAINT) added overview to main README (c0987a67)
|
225
|
+
|
226
|
+
* (MAINT) rm File-a-Beaker-Bug doc, redundant (c9af7dd7)
|
227
|
+
|
228
|
+
* Merge pull request #1122 from pinkypie/BKR-811 (6b586915)
|
229
|
+
|
230
|
+
|
231
|
+
```
|
232
|
+
Merge pull request #1122 from pinkypie/BKR-811
|
233
|
+
|
234
|
+
(BKR-811) Adding documentation for the confine method.
|
235
|
+
```
|
236
|
+
* Merge pull request #1121 from pinkypie/BKR-718 (8659c9d8)
|
237
|
+
|
238
|
+
|
239
|
+
```
|
240
|
+
Merge pull request #1121 from pinkypie/BKR-718
|
241
|
+
|
242
|
+
(BKR-718) Check the available rake method
|
243
|
+
```
|
244
|
+
* (BKR-811) Adding documentation for the confine method. (bf7921a7)
|
245
|
+
|
246
|
+
* (BKR-718) - Check the available rake method for the version of, rake to avoid deprecation errors/warnings. (2d98d384)
|
247
|
+
|
248
|
+
* (BKR-758) Fix Bitvise SSH issues and (1f9c6efd)
|
249
|
+
|
250
|
+
|
251
|
+
```
|
252
|
+
(BKR-758) Fix Bitvise SSH issues and
|
253
|
+
|
254
|
+
correct various vagrant versions not forwarding ssh properly
|
255
|
+
|
256
|
+
petems - Add logic for PSWindows
|
257
|
+
petems - Replace host make command with mkdir_p helper
|
258
|
+
petems - Remove resolv.conf code
|
259
|
+
Could fix this with Windows specific stuff later, but leaving it out for now
|
260
|
+
joshsouza - Correct SSH config's HostName when connecting to Windows hosts (not using local port mapping)
|
261
|
+
joshsouza - Correct hieraconf to be hiera_config in puppet lookup
|
262
|
+
|
263
|
+
explicitly forwarding ssh
|
264
|
+
james-powis - forwarding ssh explicitly for windows
|
265
|
+
|
266
|
+
due to regression bugs in vagrant versions 1.6.2, 1.6.3, 1.6.4, 1.7.3+
|
267
|
+
this causes ssh vagrant@#{SUT} to fail to map to ssh -p 2222
|
268
|
+
vagrant@localhost. Explicitly setting absolutely ensures ssh forwarding
|
269
|
+
functions.
|
270
|
+
|
271
|
+
james-powis - fixing bitvise on windows
|
272
|
+
```
|
273
|
+
### <a name = "2.42.0">2.42.0 - 23 May, 2016 (c245fef7)
|
274
|
+
|
275
|
+
* (HISTORY) update beaker history for gem release 2.42.0 (c245fef7)
|
122
276
|
|
123
277
|
* (GEM) update beaker version to 2.42.0 (67b70d4a)
|
124
278
|
|
data/MAINTAINERS.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# Reviewers/Maintainers For Beaker
|
2
|
+
|
3
|
+
Beaker is maintained by Puppet's Quality Engineering (QE) Team. These people
|
4
|
+
will be reviewing & merging PRs to the project.
|
5
|
+
In particular, our current Beaker maintainers are:
|
6
|
+
|
7
|
+
| Name | Github | Email |
|
8
|
+
|:--------------:|:---------------------------------------------------:|:--------------------:|
|
9
|
+
| Kevin Imber | [kevpl](https://github.com/kevpl) | <ki@puppet.com> |
|
10
|
+
| Tony Vu | [tvpartytonight](https://github.com/tvpartytonight) | <tony.vu@puppet.com> |
|
11
|
+
| Sarah Thompson | [pinkypie](https://github.com/pinkypie) | <sarah@puppet.com> |
|
12
|
+
|
13
|
+
# Reviewers/Maintainers For Specific Areas of Beaker
|
14
|
+
|
15
|
+
For code to land in these specific areas of Beaker the following owners must provide review and :+1:
|
16
|
+
|
17
|
+
Code | Owners
|
18
|
+
:-------:|:----------:
|
19
|
+
Beaker::Hypervisor::Docker | [Richard Pijnenburg (electrical)](https://github.com/electrical)
|
20
|
+
FreeBSD | [Peter Souter (petems)](https://github.com/petems)
|
21
|
+
OpenBSD | [Matt Dainty (bodgit)](https://github.com/bodgit)
|
data/README.md
CHANGED
@@ -1,41 +1,39 @@
|
|
1
1
|
# Beaker
|
2
2
|
|
3
|
-
|
3
|
+
Beaker is an acceptance testing harness for Puppet PE and other Puppet Projects. It can also be used as a virtual machine provisioner - setting up machines, running any configuration on those machines and then exiting.
|
4
|
+
|
5
|
+
Beaker runs tests written in Ruby with an additional DSL API. This gives you access to all standard Ruby along with acceptance testing specific commands.
|
4
6
|
|
5
7
|
# Installation
|
6
8
|
|
7
9
|
See [Beaker Installation](docs/Beaker-Installation.md).
|
8
10
|
|
9
|
-
#Documentation
|
11
|
+
# Documentation
|
10
12
|
|
11
13
|
Documentation for Beaker can be found in this repository in [the docs/ folder](docs/README.md).
|
12
14
|
|
15
|
+
The [Getting Started](docs/How-To-Beaker.md) is a great place to start for new Beaker users.
|
16
|
+
|
13
17
|
#Beaker Libraries
|
14
18
|
|
15
19
|
Beaker functionality has been extended through the use of libraries available as gems. See the
|
16
20
|
[complete list](docs/Beaker-Libraries.md) for available gems. See the [beaker-template documentation](https://github.com/puppetlabs/beaker-template/blob/master/README.md) for documentation on creating beaker-libraries.
|
17
21
|
|
18
|
-
#Beaker API
|
22
|
+
# Beaker API
|
19
23
|
|
20
24
|
[RubyDoc Beaker Documentation Server](http://rubydoc.info/github/puppetlabs/beaker/frames)
|
21
25
|
|
22
|
-
#License
|
26
|
+
# License
|
23
27
|
|
24
28
|
See [LICENSE](LICENSE) file.
|
25
29
|
|
26
|
-
#Support & Issues
|
30
|
+
# Support & Issues
|
27
31
|
|
28
32
|
Please log tickets and issues at our [Beaker Issue Tracker](https://tickets.puppetlabs.com/issues/?jql=project%20%3D%20BKR). In addition there is an active #puppet-dev channel on Freenode.
|
29
33
|
|
30
34
|
For additional information on filing tickets, please check out our [CONTRIBUTOR doc](CONTRIBUTING.md),
|
31
35
|
and for ticket lifecycle information, checkout our [ticket process doc](docs/meta/ticket_process.md).
|
32
36
|
|
33
|
-
#Maintainers
|
34
|
-
|
35
|
-
Beaker is maintained by Puppet's Quality Engineering (QE) Team. In particular, our current Beaker maintainers are:
|
37
|
+
# Maintainers
|
36
38
|
|
37
|
-
|
38
|
-
|:--------------:|:--------------------:|
|
39
|
-
| Kevin Imber | <ki@puppet.com> |
|
40
|
-
| Tony Vu | <tony.vu@puppet.com> |
|
41
|
-
| Sarah Thompson | <sarah@puppet.com> |
|
39
|
+
For information on project maintainers, please check out our [MAINTAINERS doc](MAINTAINERS.md).
|
data/docs/README.md
CHANGED
@@ -2,11 +2,10 @@
|
|
2
2
|
|
3
3
|
## Beaker Info
|
4
4
|
|
5
|
-
* [
|
6
|
-
* [
|
5
|
+
* [MAINTAINERS](/MAINTAINERS.md)
|
6
|
+
* [Installing Beaker](Beaker-Installation.md)
|
7
7
|
* [How to Beaker](How-To-Beaker.md)
|
8
8
|
* [Overview](Overview.md)
|
9
|
-
* [Beaker Installation](Beaker-Installation.md)
|
10
9
|
* [Creating A Test Environment](Creating-A-Test-Environment.md)
|
11
10
|
* [Roles, What Are They?](Roles-What-Are-They.md)
|
12
11
|
* Supported Virtualization Techniques
|
@@ -25,8 +24,10 @@
|
|
25
24
|
* [Running Masterless Beaker](Beaker-with-Masterless-Puppet.md)
|
26
25
|
* [Types, Puppet 4, & The All-In-One Agent](Types,-Puppet-4,-and-the-All-In-One-Agent.md)
|
27
26
|
* [The Beaker DSL](The-Beaker-DSL.md)
|
28
|
-
* [Shared Options for Executing Beaker Commands](Shared-Options-for-Executing-Beaker-Commands.md)
|
29
27
|
* [Beaker DSL on rdoc.info](http://rdoc.info/github/puppetlabs/beaker/master/Beaker/DSL)
|
28
|
+
* [How the confine method works](dsl/confine.md)
|
29
|
+
* [Platform Specific Tag Confines](dsl/platform_specific_tag_confines.md)
|
30
|
+
* [Shared Options for Executing Beaker Commands](Shared-Options-for-Executing-Beaker-Commands.md)
|
30
31
|
* [Let's Write a Test!](Lets-Write-a-Test.md)
|
31
32
|
* [Access The Live Test Console with Pry](Access-the-Live-Test-Console-with-Pry.md)
|
32
33
|
* [Test Tagging](Beaker-Test-Tagging.md)
|
data/docs/dsl/confine.md
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
# Confine
|
2
|
+
|
3
|
+
## How does it work?
|
4
|
+
|
5
|
+
The confine method will limit the hosts the testcase is run against. You can pass in either :to or :except
|
6
|
+
to control how the criteria is applied (**:to** will apply the criteria to the hosts in order to find a match,
|
7
|
+
**:except** will apply the criteria to the hosts, and return those hosts that do not match). The default behaviour
|
8
|
+
is that the **TestCase#hosts** array is modified to only contain the hosts that match (or don't match) the criteria.
|
9
|
+
|
10
|
+
Full method documentation here:
|
11
|
+
|
12
|
+
* [confine](http://www.rubydoc.info/github/puppetlabs/beaker/Beaker/DSL/Structure#confine-instance_method)
|
13
|
+
|
14
|
+
## How does the optional Array<Host> parameter work?
|
15
|
+
|
16
|
+
However, if you pass in the optional Array<Host> to the method, the criteria will be applied to this hosts array
|
17
|
+
(not **TestCase#hosts**). Subsequently, any of the hosts contained in **TestCase#hosts** that were not included in the Array<Host>
|
18
|
+
passed to the method, will remain in **TestCase#hosts**. But any hosts that were filtered out by the criteria match
|
19
|
+
will be overwritten.
|
20
|
+
|
21
|
+
Take the following example:
|
22
|
+
|
23
|
+
HOSTS:
|
24
|
+
ubuntu_master:
|
25
|
+
roles:
|
26
|
+
- master
|
27
|
+
- database
|
28
|
+
- dashboard
|
29
|
+
- classifier
|
30
|
+
platform: ubuntu-14.04-amd64
|
31
|
+
hypervisor: vcloud
|
32
|
+
template: Delivery/Quality Assurance/Templates/vCloud/ubuntu-1404-x86_64
|
33
|
+
centos7_agent:
|
34
|
+
roles:
|
35
|
+
- agent
|
36
|
+
- frictionless
|
37
|
+
platform: el-7-x86_64
|
38
|
+
template: Delivery/Quality Assurance/Templates/vCloud/centos-7-x86_64
|
39
|
+
hypervisor: vcloud
|
40
|
+
ubuntu_agent:
|
41
|
+
roles:
|
42
|
+
- agent
|
43
|
+
- frictionless
|
44
|
+
platform: ubuntu-14.04-amd64
|
45
|
+
template: Delivery/Quality Assurance/Templates/vCloud/ubuntu-1404-x86_64
|
46
|
+
hypervisor: vcloud
|
47
|
+
|
48
|
+
|
49
|
+
Using the following confine:
|
50
|
+
|
51
|
+
`confine :to, { :platform => 'el-7-x86_64' }, agents`
|
52
|
+
|
53
|
+
We will end up with a **TestCase#hosts** array with two hosts, one agent and one master.
|
54
|
+
|
55
|
+
Since we passed in the 'agents' host array to the method, the criteria (:platform => 'el-7-x86_64') will be applied
|
56
|
+
to this set of hosts. Only one agent matches this criteria (centos7_agent). Since the master host (ubuntu_master) was not
|
57
|
+
included in the 'agents' host array when the criteria match was performed, it will remain in **TestCase#hosts**. But only one agent
|
58
|
+
remains after the criteria match.
|
59
|
+
|
60
|
+
`confine :except, { :platform => 'el-7-x86_64' }, agents`
|
61
|
+
|
62
|
+
Will also return two hosts, one agent and one master. But it will be the other agent (ubuntu_agent) as its platform does not match
|
63
|
+
'el-7-x86_64'.
|
64
|
+
|
65
|
+
`confine :to, { :platform => 'el-7-x86_64' }`
|
66
|
+
|
67
|
+
Will return one host (centos7_agent). Because no Array<Host> was passed to the confine method, the criteria match
|
68
|
+
is being applied directly to **TestCase#hosts** (which contains all hosts).
|
69
|
+
|
70
|
+
`confine :except, { :platform => 'el-7-x86_64' }`
|
71
|
+
|
72
|
+
Will return two hosts (ubuntu_master and ubuntu_agent).
|
73
|
+
|
74
|
+
In order to limit the hosts to only the ubuntu agent, you would need to use:
|
75
|
+
|
76
|
+
`confine :to, { :platform => 'ubuntu-14.04-amd64', :role => 'agent' }`
|
data/docs/hypervisors/vagrant.md
CHANGED
@@ -1,7 +1,90 @@
|
|
1
|
-
|
2
|
-
This is done by using the 'mount_folders' option in the nodeset file.
|
1
|
+
# Vagrant
|
3
2
|
|
4
|
-
|
3
|
+
Vagrant's slogan is "development environments made easy". They provide an
|
4
|
+
abstraction on top of a VM or cloud provider that allows you to manage
|
5
|
+
hosts and their provisioning. [Their Site](https://www.vagrantup.com/).
|
6
|
+
|
7
|
+
# Getting Started
|
8
|
+
|
9
|
+
### Requirements
|
10
|
+
|
11
|
+
A prerequisite for using the vagrant hypervisor with beaker is that the
|
12
|
+
**Vagrant 1.7+** package needs to installed -
|
13
|
+
see [downloads.vagrantup.com](http://downloads.vagrantup.com/) for downloads.
|
14
|
+
|
15
|
+
Currently, we provide a suite of pre-built, publicly available vagrant boxes for
|
16
|
+
use in constructing tests: [Puppet Labs Vagrant Boxes](https://vagrantcloud.com/puppetlabs/).
|
17
|
+
You can use these boxes easily by pulling one of our
|
18
|
+
[Example Vagrant Hosts Files](Example-Vagrant-Hosts-Files.md).
|
19
|
+
|
20
|
+
### Setup a Vagrant Hosts File
|
21
|
+
|
22
|
+
A vm is identified by `box` or `box_url` in the config file. No snapshot name
|
23
|
+
is required as the vm is reverted back to original state post testing using
|
24
|
+
`vagrant destroy --force`.
|
25
|
+
|
26
|
+
**Example Vagrant hosts file**
|
27
|
+
|
28
|
+
HOSTS:
|
29
|
+
ubuntu-1404-x64:
|
30
|
+
roles:
|
31
|
+
- master
|
32
|
+
- agent
|
33
|
+
- dashboard
|
34
|
+
- cloudpro
|
35
|
+
platform: ubuntu-1404-x86_64
|
36
|
+
hypervisor: vagrant
|
37
|
+
box: puppetlabs/ubuntu-14.04-64-nocm
|
38
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
|
39
|
+
CONFIG:
|
40
|
+
nfs_server: none
|
41
|
+
consoleport: 443
|
42
|
+
|
43
|
+
VagrantFiles are created per host configuration file. They can be found in the
|
44
|
+
`.vagrant/beaker_vagrant_files` directory of the current working directory in a
|
45
|
+
subdirectory named after the host configuration file.
|
46
|
+
|
47
|
+
> beaker --hosts sample.cfg
|
48
|
+
> cd .vagrant/beaker_vagrant_files; ls
|
49
|
+
sample.cfg
|
50
|
+
> cd sample.c
|
51
|
+
|
52
|
+
Below are details of vagrants features as they're supported through beaker. If
|
53
|
+
you'd like to see more examples of vagrant hosts files, checkout our
|
54
|
+
[vagrant hosts file examples doc](vagrant_hosts_file_examples.md).
|
55
|
+
|
56
|
+
# Vagrant-Specific Hosts File Settings
|
57
|
+
|
58
|
+
### Running With a GUI
|
59
|
+
|
60
|
+
It is possible to have the VirtualBox VM run with a GUI (i.e. non-headless mode)
|
61
|
+
by specifying ``vb_gui`` of any non-nil value in the config file, i.e.:
|
62
|
+
|
63
|
+
**Example Vagrant hosts file with vb_gui**
|
64
|
+
|
65
|
+
HOSTS:
|
66
|
+
ubuntu-1404-x64:
|
67
|
+
roles:
|
68
|
+
- master
|
69
|
+
- agent
|
70
|
+
- dashboard
|
71
|
+
- cloudpro
|
72
|
+
platform: ubuntu-1404-x86_64
|
73
|
+
hypervisor: vagrant
|
74
|
+
box: puppetlabs/ubuntu-14.04-64-nocm
|
75
|
+
box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
|
76
|
+
vb_gui: true
|
77
|
+
CONFIG:
|
78
|
+
nfs_server: none
|
79
|
+
consoleport: 443
|
80
|
+
|
81
|
+
### Mounting Local Folders
|
82
|
+
|
83
|
+
When using the Vagrant Hypervisor, beaker can mount specific local directories
|
84
|
+
as synced_folders inside the vagrant box. This is done by using the
|
85
|
+
`mount_folders` option in the nodeset file.
|
86
|
+
|
87
|
+
**Example hosts file**
|
5
88
|
|
6
89
|
HOSTS:
|
7
90
|
ubuntu-1404-x64-master:
|
@@ -34,7 +117,5 @@ Example hosts file:
|
|
34
117
|
nfs_server: none
|
35
118
|
consoleport: 443
|
36
119
|
|
37
|
-
In the above beaker will mount the folders
|
38
|
-
|
39
|
-
## Supported Virtualization Providers ##
|
40
|
-
* [Vagrant](Vagrant-Support.md)
|
120
|
+
In the above beaker will mount the folders `./` to `/vagrant/folder1` and the
|
121
|
+
folder `/tmp` to `/vagrant/tmp`.
|
File without changes
|
@@ -110,10 +110,8 @@ module Beaker
|
|
110
110
|
# end
|
111
111
|
#
|
112
112
|
# @example Using TestCase helpers from within a test.
|
113
|
-
#
|
114
|
-
#
|
115
|
-
# assert_match result.stdout, /server = #{master}/, 'WTF Mate'
|
116
|
-
# end
|
113
|
+
# shell('cat /etc/puppet/puppet.conf') do |result|
|
114
|
+
# assert_match result.stdout, /server = #{master}/, 'WTF Mate'
|
117
115
|
# end
|
118
116
|
#
|
119
117
|
# @return [Result] An object representing the outcome of *command*.
|
@@ -290,7 +290,12 @@ module Beaker
|
|
290
290
|
|
291
291
|
# Certain install paths may not create the config dirs/files needed
|
292
292
|
host.mkdir_p host['puppetpath'] unless host[:type] =~ /aio/
|
293
|
-
|
293
|
+
|
294
|
+
if ((host['platform'] =~ /windows/) and not host.is_cygwin?)
|
295
|
+
# Do nothing
|
296
|
+
else
|
297
|
+
on host, "echo '' >> #{host.puppet['hiera_config']}"
|
298
|
+
end
|
294
299
|
end
|
295
300
|
end
|
296
301
|
|
@@ -293,7 +293,11 @@ module Beaker
|
|
293
293
|
def get_domain_name(host)
|
294
294
|
domain = nil
|
295
295
|
search = nil
|
296
|
-
|
296
|
+
if ((host['platform'] =~ /windows/) and not host.is_cygwin?)
|
297
|
+
resolv_conf = host.exec(Command.new('type C:\Windows\System32\drivers\etc\hosts')).stdout
|
298
|
+
else
|
299
|
+
resolv_conf = host.exec(Command.new("cat /etc/resolv.conf")).stdout
|
300
|
+
end
|
297
301
|
resolv_conf.each_line { |line|
|
298
302
|
if line =~ /^\s*domain\s+(\S+)/
|
299
303
|
domain = $1
|
@@ -322,6 +326,8 @@ module Beaker
|
|
322
326
|
def set_etc_hosts(host, etc_hosts)
|
323
327
|
if host['platform'] =~ /freebsd/
|
324
328
|
host.echo_to_file(etc_hosts, '/etc/hosts')
|
329
|
+
elsif ((host['platform'] =~ /windows/) and not host.is_cygwin?)
|
330
|
+
host.exec(Command.new("echo '#{etc_hosts}' >> C:\\Windows\\System32\\drivers\\etc\\hosts"))
|
325
331
|
else
|
326
332
|
host.exec(Command.new("echo '#{etc_hosts}' >> /etc/hosts"))
|
327
333
|
end
|
@@ -42,6 +42,10 @@ module Beaker
|
|
42
42
|
end
|
43
43
|
|
44
44
|
if /windows/i.match(host['platform'])
|
45
|
+
#due to a regression bug in versions of vagrant 1.6.2, 1.6.3, 1.6.4, >= 1.7.3 ssh fails to forward
|
46
|
+
#automatically (note <=1.6.1, 1.6.5, 1.7.0 - 1.7.2 are uneffected)
|
47
|
+
#Explicitly setting SSH port forwarding due to this bug
|
48
|
+
v_file << " v.vm.network :forwarded_port, guest: 22, host: 2222, id: 'ssh', auto_correct: true\n"
|
45
49
|
v_file << " v.vm.network :forwarded_port, guest: 3389, host: 3389, id: 'rdp', auto_correct: true\n"
|
46
50
|
v_file << " v.vm.network :forwarded_port, guest: 5985, host: 5985, id: 'winrm', auto_correct: true\n"
|
47
51
|
v_file << " v.vm.guest = :windows\n"
|
@@ -59,7 +59,9 @@ module Beaker
|
|
59
59
|
|
60
60
|
# @private
|
61
61
|
def define(args, &task_block)
|
62
|
-
|
62
|
+
# Depending on the version of rake, either last_description or last_comment will be available.
|
63
|
+
desc "Run Beaker Acceptance" unless (::Rake.application.respond_to?(:last_description) ? ::Rake.application.last_description : ::Rake
|
64
|
+
.application.last_comment)
|
63
65
|
task name, *args do |_, task_args|
|
64
66
|
RakeFileUtils.__send__(:verbose, verbose) do
|
65
67
|
task_block.call(*[self, task_args].slice(0, task_block.arity)) if task_block
|
data/lib/beaker/version.rb
CHANGED
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.43.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppetlabs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -473,6 +473,7 @@ files:
|
|
473
473
|
- Gemfile
|
474
474
|
- HISTORY.md
|
475
475
|
- LICENSE
|
476
|
+
- MAINTAINERS.md
|
476
477
|
- README.md
|
477
478
|
- Rakefile
|
478
479
|
- acceptance/config/acceptance-options.rb
|
@@ -579,15 +580,12 @@ files:
|
|
579
580
|
- docs/Argument-Processing-and-Precedence.md
|
580
581
|
- docs/Beaker-Installation.md
|
581
582
|
- docs/Beaker-Libraries.md
|
582
|
-
- docs/Beaker-Owners-and-Reviewers.md
|
583
583
|
- docs/Beaker-Recipes.md
|
584
584
|
- docs/Beaker-Test-Tagging.md
|
585
585
|
- docs/Beaker-with-Masterless-Puppet.md
|
586
586
|
- docs/Creating-A-Test-Environment.md
|
587
587
|
- docs/Docker-Support.md
|
588
588
|
- docs/EC2-Support.md
|
589
|
-
- docs/Example-Vagrant-Hosts-Files.md
|
590
|
-
- docs/File-a-Beaker-Bug.md
|
591
589
|
- docs/Google-Compute-Engine-Support.md
|
592
590
|
- docs/How-To-Beaker.md
|
593
591
|
- docs/How-To-Use-User-Password-Authentication-with-Beaker.md
|
@@ -603,8 +601,8 @@ files:
|
|
603
601
|
- docs/The-Command-Line.md
|
604
602
|
- docs/Types,-Puppet-4,-and-the-All-In-One-Agent.md
|
605
603
|
- docs/VMWare-Fusion-Support.md
|
606
|
-
- docs/Vagrant-Support.md
|
607
604
|
- docs/beaker-vs.-beaker-rspec.md
|
605
|
+
- docs/dsl/confine.md
|
608
606
|
- docs/dsl/platform_specific_tag_confines.md
|
609
607
|
- docs/hosts/README.md
|
610
608
|
- docs/hosts/cisco.md
|
@@ -612,6 +610,7 @@ files:
|
|
612
610
|
- docs/hypervisors/README.md
|
613
611
|
- docs/hypervisors/aws.md
|
614
612
|
- docs/hypervisors/vagrant.md
|
613
|
+
- docs/hypervisors/vagrant_hosts_file_examples.md
|
615
614
|
- docs/meta/README.md
|
616
615
|
- docs/meta/ticket_process.md
|
617
616
|
- docs/runner/test_suites.md
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# Reviewers/Maintainers For Beaker
|
2
|
-
For the majority of Beaker new code will be reviewed and merged by these owners.
|
3
|
-
|
4
|
-
|Owners|
|
5
|
-
|:------:|
|
6
|
-
|[Alice Nodelman (anodelman)](https://github.com/anodelman)|
|
7
|
-
|[Kevin Imber (kevpl)](https://github.com/kevpl)|
|
8
|
-
|
9
|
-
# Reviewers/Maintainers For Specific Areas of Beaker
|
10
|
-
For code to land in these specific areas of Beaker the following owners must provide review and :+1:
|
11
|
-
|
12
|
-
Code | Owners
|
13
|
-
:-------:|:----------:
|
14
|
-
Beaker::Hypervisor::Docker | [Richard Pijnenburg (electrical)](https://github.com/electrical)
|
15
|
-
FreeBSD | [Peter Souter (petems)](https://github.com/petems)
|
16
|
-
OpenBSD | [Matt Dainty (bodgit)](https://github.com/bodgit)
|
data/docs/File-a-Beaker-Bug.md
DELETED
data/docs/Vagrant-Support.md
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
For testing against local Vagrant boxes. As a prerequisite the **Vagrant 1.7+** package needs to installed - see <a href = "http://downloads.vagrantup.com/">downloads.vagrantup.com</a> for downloads.
|
2
|
-
|
3
|
-
Currently, we provide a suite of pre-built, publicly available vagrant boxes for use in constructing tests: <a href = "https://vagrantcloud.com/puppetlabs/">Puppet Labs Vagrant Boxes</a>. You can use these boxes easily by pulling one of our [Example Vagrant Hosts Files](Example-Vagrant-Hosts-Files.md).
|
4
|
-
|
5
|
-
The vm is identified by `box` or `box_url` in the config file. No snapshot name is required as the vm is reverted back to original state post testing using `vagrant destroy --force`.
|
6
|
-
|
7
|
-
### example Vagrant hosts file ###
|
8
|
-
HOSTS:
|
9
|
-
ubuntu-1404-x64:
|
10
|
-
roles:
|
11
|
-
- master
|
12
|
-
- agent
|
13
|
-
- dashboard
|
14
|
-
- cloudpro
|
15
|
-
platform: ubuntu-1404-x86_64
|
16
|
-
hypervisor: vagrant
|
17
|
-
box: puppetlabs/ubuntu-14.04-64-nocm
|
18
|
-
box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
|
19
|
-
CONFIG:
|
20
|
-
nfs_server: none
|
21
|
-
consoleport: 443
|
22
|
-
|
23
|
-
VagrantFiles are created per host configuration file. They can be found in the `.vagrant/beaker_vagrant_files` directory of the current working directory in a subdirectory named after the host configuration file.
|
24
|
-
|
25
|
-
> beaker --hosts sample.cfg
|
26
|
-
> cd .vagrant/beaker_vagrant_files; ls
|
27
|
-
sample.cfg
|
28
|
-
> cd sample.c
|
29
|
-
|
30
|
-
It is possible to have the VirtualBox VM run with a GUI (i.e. non-headless mode) by specifying ``vb_gui`` of any non-nil value in the config file, i.e.:
|
31
|
-
|
32
|
-
### example Vagrant hosts file with vb_gui ###
|
33
|
-
HOSTS:
|
34
|
-
ubuntu-1404-x64:
|
35
|
-
roles:
|
36
|
-
- master
|
37
|
-
- agent
|
38
|
-
- dashboard
|
39
|
-
- cloudpro
|
40
|
-
platform: ubuntu-1404-x86_64
|
41
|
-
hypervisor: vagrant
|
42
|
-
box: puppetlabs/ubuntu-14.04-64-nocm
|
43
|
-
box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
|
44
|
-
vb_gui: true
|
45
|
-
CONFIG:
|
46
|
-
nfs_server: none
|
47
|
-
consoleport: 443
|