beaker-hostgenerator 0.5.0 → 0.6.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/CHANGELOG.md +4 -0
- data/HISTORY.md +233 -2
- data/README.md +50 -11
- data/beaker-hostgenerator.gemspec +2 -2
- data/lib/beaker-hostgenerator.rb +0 -1
- data/lib/beaker-hostgenerator/cli.rb +38 -26
- data/lib/beaker-hostgenerator/data.rb +960 -35
- data/lib/beaker-hostgenerator/generator.rb +57 -97
- data/lib/beaker-hostgenerator/hypervisor.rb +97 -0
- data/lib/beaker-hostgenerator/hypervisor/none.rb +17 -0
- data/lib/beaker-hostgenerator/hypervisor/vmpooler.rb +32 -0
- data/lib/beaker-hostgenerator/parser.rb +199 -0
- data/lib/beaker-hostgenerator/roles.rb +21 -14
- data/lib/beaker-hostgenerator/util.rb +10 -29
- data/lib/beaker-hostgenerator/version.rb +1 -1
- data/spec/beaker-hostgenerator/generator_spec.rb +73 -109
- data/spec/beaker-hostgenerator/parser_spec.rb +84 -0
- data/test/fixtures/default/cisconx-64a +1 -1
- data/test/fixtures/default/windows10ent-32d +22 -0
- data/test/fixtures/default/windows10ent-64f +22 -0
- data/test/fixtures/default/windows10pro-64m +22 -0
- data/test/fixtures/default/windows2003-6432d +22 -0
- data/test/fixtures/default/windows2003-64c +22 -0
- data/test/fixtures/default/windows2003r2-32f +22 -0
- data/test/fixtures/default/windows2003r2-6432aulcdfm +27 -0
- data/test/fixtures/default/windows2003r2-64m +22 -0
- data/test/fixtures/default/windows2008-6432u +22 -0
- data/test/fixtures/default/windows2008-64a +21 -0
- data/test/fixtures/default/windows2008r2-6432c +22 -0
- data/test/fixtures/default/windows2008r2-64l +22 -0
- data/test/fixtures/default/windows2012-6432f +22 -0
- data/test/fixtures/default/windows2012-64d +22 -0
- data/test/fixtures/default/windows2012r2-6432aulcdfm +27 -0
- data/test/fixtures/default/windows2012r2-64m +22 -0
- data/test/fixtures/default/windows7-64a +21 -0
- data/test/fixtures/default/windows8-64u +22 -0
- data/test/fixtures/default/windows81-64l +22 -0
- data/test/fixtures/default/windowsvista-64c +22 -0
- data/test/fixtures/multiplatform/arista4-32a-windows10pro-64-arista4-32aulcdfm +47 -0
- data/test/fixtures/multiplatform/centos4-32u-windows10ent-64-centos4-32m +43 -0
- data/test/fixtures/multiplatform/centos4-64l-windows10ent-32-centos4-64f +43 -0
- data/test/fixtures/multiplatform/centos5-32c-windowsvista-64-centos5-32d +43 -0
- data/test/fixtures/multiplatform/centos5-64d-windows81-64-centos5-64c +43 -0
- data/test/fixtures/multiplatform/centos6-32f-windows8-64-centos6-32l +43 -0
- data/test/fixtures/multiplatform/centos6-64m-windows7-64-centos6-64u +43 -0
- data/test/fixtures/multiplatform/centos7-64aulcdfm-windows2012r2-6432-centos7-64a +47 -0
- data/test/fixtures/multiplatform/cisconx-64a-windows2012r2-64-cisconx-64aulcdfm +53 -0
- data/test/fixtures/multiplatform/ciscoxr-64u-windows2012-6432-ciscoxr-64m +43 -0
- data/test/fixtures/multiplatform/cumulus25-64l-windows2012-64-cumulus25-64f +43 -0
- data/test/fixtures/multiplatform/debian6-32c-windows2008r2-6432-debian6-32d +43 -0
- data/test/fixtures/multiplatform/debian6-64d-windows2008r2-64-debian6-64c +43 -0
- data/test/fixtures/multiplatform/debian7-32f-windows2008-6432-debian7-32l +43 -0
- data/test/fixtures/multiplatform/debian7-64m-windows2008-64-debian7-64u +43 -0
- data/test/fixtures/multiplatform/debian8-32aulcdfm-windows2003r2-6432-debian8-32a +47 -0
- data/test/fixtures/multiplatform/debian8-64a-windows2003r2-64-debian8-64aulcdfm +47 -0
- data/test/fixtures/multiplatform/debian9-32u-windows2003r2-32-debian9-32m +43 -0
- data/test/fixtures/multiplatform/debian9-64l-windows2003-6432-debian9-64f +43 -0
- data/test/fixtures/multiplatform/fedora14-32l-solaris11-64-fedora14-32f +42 -0
- data/test/fixtures/multiplatform/fedora19-32c-solaris11-32-fedora19-32d +42 -0
- data/test/fixtures/multiplatform/fedora19-64d-solaris10-64-fedora19-64c +42 -0
- data/test/fixtures/multiplatform/fedora20-32f-solaris10-32-fedora20-32l +42 -0
- data/test/fixtures/multiplatform/fedora20-64m-sles12-64-fedora20-64u +42 -0
- data/test/fixtures/multiplatform/fedora21-32aulcdfm-sles11-64-fedora21-32a +46 -0
- data/test/fixtures/multiplatform/fedora21-64a-sles11-32-fedora21-64aulcdfm +46 -0
- data/test/fixtures/multiplatform/fedora22-32u-sles10-64-fedora22-32m +42 -0
- data/test/fixtures/multiplatform/fedora22-64l-sles10-32-fedora22-64f +42 -0
- data/test/fixtures/multiplatform/fedora23-32c-scientific7-64-fedora23-32d +42 -0
- data/test/fixtures/multiplatform/fedora23-64d-scientific6-64-fedora23-64c +42 -0
- data/test/fixtures/multiplatform/opensuse11-32f-scientific6-32-opensuse11-32l +42 -0
- data/test/fixtures/multiplatform/opensuse11-64m-scientific5-64-opensuse11-64u +42 -0
- data/test/fixtures/multiplatform/oracle5-32c-windows2003-64-oracle5-32d +43 -0
- data/test/fixtures/multiplatform/oracle5-64d-ubuntu1604-64-oracle5-64c +42 -0
- data/test/fixtures/multiplatform/oracle6-32f-ubuntu1604-32-oracle6-32l +42 -0
- data/test/fixtures/multiplatform/oracle6-64m-ubuntu1510-64-oracle6-64u +42 -0
- data/test/fixtures/multiplatform/oracle7-64aulcdfm-ubuntu1510-32-oracle7-64a +46 -0
- data/test/fixtures/multiplatform/osx1010-64u-ubuntu1504-32-osx1010-64m +42 -0
- data/test/fixtures/multiplatform/osx1011-64l-ubuntu1404-64-osx1011-64f +42 -0
- data/test/fixtures/multiplatform/osx109-64a-ubuntu1504-64-osx109-64aulcdfm +46 -0
- data/test/fixtures/multiplatform/redhat4-32c-ubuntu1404-32-redhat4-32d +42 -0
- data/test/fixtures/multiplatform/redhat4-64d-ubuntu1204-64-redhat4-64c +42 -0
- data/test/fixtures/multiplatform/redhat5-32f-ubuntu1204-32-redhat5-32l +42 -0
- data/test/fixtures/multiplatform/redhat5-64m-ubuntu1004-64-redhat5-64u +42 -0
- data/test/fixtures/multiplatform/redhat6-32aulcdfm-ubuntu1004-32-redhat6-32a +46 -0
- data/test/fixtures/multiplatform/redhat6-64a-solaris112-64-redhat6-64aulcdfm +46 -0
- data/test/fixtures/multiplatform/redhat7-64u-solaris112-32-redhat7-64m +42 -0
- data/test/fixtures/multiplatform/scientific5-32aulcdfm-scientific5-32-scientific5-32a +46 -0
- data/test/fixtures/multiplatform/scientific5-64a-opensuse11-64-scientific5-64aulcdfm +46 -0
- data/test/fixtures/multiplatform/scientific6-32u-opensuse11-32-scientific6-32m +42 -0
- data/test/fixtures/multiplatform/scientific6-64l-fedora23-64-scientific6-64f +42 -0
- data/test/fixtures/multiplatform/scientific7-64c-fedora23-32-scientific7-64d +42 -0
- data/test/fixtures/multiplatform/sles10-32d-fedora22-64-sles10-32c +42 -0
- data/test/fixtures/multiplatform/sles10-64f-fedora22-32-sles10-64l +42 -0
- data/test/fixtures/multiplatform/sles11-32m-fedora21-64-sles11-32u +42 -0
- data/test/fixtures/multiplatform/sles11-64aulcdfm-fedora21-32-sles11-64a +46 -0
- data/test/fixtures/multiplatform/sles12-64a-fedora20-64-sles12-64aulcdfm +46 -0
- data/test/fixtures/multiplatform/solaris10-32u-fedora20-32-solaris10-32m +42 -0
- data/test/fixtures/multiplatform/solaris10-64l-fedora19-64-solaris10-64f +42 -0
- data/test/fixtures/multiplatform/solaris11-32c-fedora19-32-solaris11-32d +42 -0
- data/test/fixtures/multiplatform/solaris11-64d-fedora14-32-solaris11-64c +42 -0
- data/test/fixtures/multiplatform/solaris112-32f-redhat7-64-solaris112-32l +42 -0
- data/test/fixtures/multiplatform/solaris112-64m-redhat6-64-solaris112-64u +42 -0
- data/test/fixtures/multiplatform/ubuntu1004-32aulcdfm-redhat6-32-ubuntu1004-32a +46 -0
- data/test/fixtures/multiplatform/ubuntu1004-64a-redhat5-64-ubuntu1004-64aulcdfm +46 -0
- data/test/fixtures/multiplatform/ubuntu1204-32u-redhat5-32-ubuntu1204-32m +42 -0
- data/test/fixtures/multiplatform/ubuntu1204-64l-redhat4-64-ubuntu1204-64f +42 -0
- data/test/fixtures/multiplatform/ubuntu1404-32c-redhat4-32-ubuntu1404-32d +42 -0
- data/test/fixtures/multiplatform/ubuntu1404-64d-osx1011-64-ubuntu1404-64c +42 -0
- data/test/fixtures/multiplatform/ubuntu1504-32f-osx1010-64-ubuntu1504-32l +42 -0
- data/test/fixtures/multiplatform/ubuntu1504-64m-osx109-64-ubuntu1504-64u +42 -0
- data/test/fixtures/multiplatform/ubuntu1510-32aulcdfm-oracle7-64-ubuntu1510-32a +46 -0
- data/test/fixtures/multiplatform/ubuntu1510-64a-oracle6-64-ubuntu1510-64aulcdfm +46 -0
- data/test/fixtures/multiplatform/ubuntu1604-32u-oracle6-32-ubuntu1604-32m +42 -0
- data/test/fixtures/multiplatform/ubuntu1604-64l-oracle5-64-ubuntu1604-64f +42 -0
- data/test/fixtures/multiplatform/windows10ent-32d-centos4-64-windows10ent-32c +44 -0
- data/test/fixtures/multiplatform/windows10ent-64f-centos4-32-windows10ent-64l +44 -0
- data/test/fixtures/multiplatform/windows10pro-64m-arista4-32-windows10pro-64u +44 -0
- data/test/fixtures/multiplatform/windows2003-6432d-debian9-64-windows2003-6432c +44 -0
- data/test/fixtures/multiplatform/windows2003-64c-oracle5-32-windows2003-64d +44 -0
- data/test/fixtures/multiplatform/windows2003r2-32f-debian9-32-windows2003r2-32l +44 -0
- data/test/fixtures/multiplatform/windows2003r2-6432aulcdfm-debian8-32-windows2003r2-6432a +48 -0
- data/test/fixtures/multiplatform/windows2003r2-64m-debian8-64-windows2003r2-64u +44 -0
- data/test/fixtures/multiplatform/windows2008-6432u-debian7-32-windows2008-6432m +44 -0
- data/test/fixtures/multiplatform/windows2008-64a-debian7-64-windows2008-64aulcdfm +48 -0
- data/test/fixtures/multiplatform/windows2008r2-6432c-debian6-32-windows2008r2-6432d +44 -0
- data/test/fixtures/multiplatform/windows2008r2-64l-debian6-64-windows2008r2-64f +44 -0
- data/test/fixtures/multiplatform/windows2012-6432f-ciscoxr-64-windows2012-6432l +44 -0
- data/test/fixtures/multiplatform/windows2012-64d-cumulus25-64-windows2012-64c +44 -0
- data/test/fixtures/multiplatform/windows2012r2-6432aulcdfm-centos7-64-windows2012r2-6432a +48 -0
- data/test/fixtures/multiplatform/windows2012r2-64m-cisconx-64-windows2012r2-64u +47 -0
- data/test/fixtures/multiplatform/windows7-64a-centos6-64-windows7-64aulcdfm +48 -0
- data/test/fixtures/multiplatform/windows8-64u-centos6-32-windows8-64m +44 -0
- data/test/fixtures/multiplatform/windows81-64l-centos5-64-windows81-64f +44 -0
- data/test/fixtures/multiplatform/windowsvista-64c-centos5-32-windowsvista-64d +44 -0
- data/test/fixtures/osinfo-version-0/cisconx-64a +1 -1
- data/test/fixtures/osinfo-version-0/windows10ent-32d +22 -0
- data/test/fixtures/osinfo-version-0/windows10ent-64f +22 -0
- data/test/fixtures/osinfo-version-0/windows10pro-64m +22 -0
- data/test/fixtures/osinfo-version-0/windows2003-6432d +22 -0
- data/test/fixtures/osinfo-version-0/windows2003-64c +22 -0
- data/test/fixtures/osinfo-version-0/windows2003r2-32f +22 -0
- data/test/fixtures/osinfo-version-0/windows2003r2-6432aulcdfm +27 -0
- data/test/fixtures/osinfo-version-0/windows2003r2-64m +22 -0
- data/test/fixtures/osinfo-version-0/windows2008-6432u +22 -0
- data/test/fixtures/osinfo-version-0/windows2008-64a +21 -0
- data/test/fixtures/osinfo-version-0/windows2008r2-6432c +22 -0
- data/test/fixtures/osinfo-version-0/windows2008r2-64l +22 -0
- data/test/fixtures/osinfo-version-0/windows2012-6432f +22 -0
- data/test/fixtures/osinfo-version-0/windows2012-64d +22 -0
- data/test/fixtures/osinfo-version-0/windows2012r2-6432aulcdfm +27 -0
- data/test/fixtures/osinfo-version-0/windows2012r2-64m +22 -0
- data/test/fixtures/osinfo-version-0/windows7-64a +21 -0
- data/test/fixtures/osinfo-version-0/windows8-64u +22 -0
- data/test/fixtures/osinfo-version-0/windows81-64l +22 -0
- data/test/fixtures/osinfo-version-0/windowsvista-64c +22 -0
- data/test/fixtures/osinfo-version-1/cisconx-64a +1 -1
- data/test/fixtures/osinfo-version-1/windows10ent-32d +22 -0
- data/test/fixtures/osinfo-version-1/windows10ent-64f +22 -0
- data/test/fixtures/osinfo-version-1/windows10pro-64m +22 -0
- data/test/fixtures/osinfo-version-1/windows2003-6432d +22 -0
- data/test/fixtures/osinfo-version-1/windows2003-64c +22 -0
- data/test/fixtures/osinfo-version-1/windows2003r2-32f +22 -0
- data/test/fixtures/osinfo-version-1/windows2003r2-6432aulcdfm +27 -0
- data/test/fixtures/osinfo-version-1/windows2003r2-64m +22 -0
- data/test/fixtures/osinfo-version-1/windows2008-6432u +22 -0
- data/test/fixtures/osinfo-version-1/windows2008-64a +21 -0
- data/test/fixtures/osinfo-version-1/windows2008r2-6432c +22 -0
- data/test/fixtures/osinfo-version-1/windows2008r2-64l +22 -0
- data/test/fixtures/osinfo-version-1/windows2012-6432f +22 -0
- data/test/fixtures/osinfo-version-1/windows2012-64d +22 -0
- data/test/fixtures/osinfo-version-1/windows2012r2-6432aulcdfm +27 -0
- data/test/fixtures/osinfo-version-1/windows2012r2-64m +22 -0
- data/test/fixtures/osinfo-version-1/windows7-64a +21 -0
- data/test/fixtures/osinfo-version-1/windows8-64u +22 -0
- data/test/fixtures/osinfo-version-1/windows81-64l +22 -0
- data/test/fixtures/osinfo-version-1/windowsvista-64c +22 -0
- data/test/fixtures/per-host-settings/arbitrary-settings.yaml +57 -0
- data/test/fixtures/per-host-settings/every-hypervisor.yaml +30 -0
- data/test/fixtures/per-host-settings/malformed-input.yaml +5 -0
- data/test/test_stdout.rb +2 -2
- data/test/util/generator_helpers.rb +12 -4
- metadata +167 -6
- data/lib/beaker-hostgenerator/data/vmpooler.rb +0 -467
- data/lib/beaker-hostgenerator/generator/vmpooler.rb +0 -59
- data/test/test_util.rb +0 -26
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
MmQ0NmI3NGFiYjQ2YjQxYzI3YTBhZTZhNzY5YzdhZjM5NjU0MmZjZQ==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
ZWExY2JjZTI3MTBlYzc5Nzk2NjdhYjZhZTg2YjE4ZTMwYmEzZGRjYw==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
ZjY5N2NiNDc2OGM3NGVmNDhmM2Q4N2YzY2JlOWM4MWZlMDQxZjVmODU5MmRj
|
|
10
|
+
Y2EwNmFlMjM3NmFkMzk4NTI5MjRkMGFiYjAyZTVlYTk0OWU3N2ExNmVlNjYx
|
|
11
|
+
MTNjZjcyOWI4ZmY2ZDc4NzFhYjliOGFhOTc5YTU2MTgxZmM3YzQ=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
ODNkYmRmY2RkNWIyNmRjZmE4ZDAwNjVhMTZhZmI0YzBkNDRmZTk4ZDE4NTE3
|
|
14
|
+
NWYxMmI4ODZlYzMxMWQ4ZWFhMjIzYmY0MmJkMmUxMDA4YTJiYTU0M2QxODc4
|
|
15
|
+
Mjc2YThkODhjMGRkYzEzZjQ1YTJiYTQwNmZiYjEwNDk5YTFkYmE=
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,10 @@ Versioning](http://semver.org).
|
|
|
7
7
|
## [Unreleased][unreleased]
|
|
8
8
|
### Changed
|
|
9
9
|
|
|
10
|
+
## [0.6.0] - 2016-05-11
|
|
11
|
+
- Add new 'none' hypervisor implementation to support static, non-provisioned hosts.
|
|
12
|
+
- Add support for arbitrary, per-host key=value settings.
|
|
13
|
+
|
|
10
14
|
## [0.5.0] - 2016-03-30
|
|
11
15
|
- Add platforms:
|
|
12
16
|
- Ubuntu 16.06 x86 and x86_64
|
data/HISTORY.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# default - History
|
|
2
2
|
## Tags
|
|
3
|
-
* [LATEST -
|
|
3
|
+
* [LATEST - 11 May, 2016 (4a8ee90e)](#LATEST)
|
|
4
|
+
* [0.5.0 - 31 Mar, 2016 (fa3ae0c8)](#0.5.0)
|
|
4
5
|
* [0.4.0 - 10 Feb, 2016 (dc333b1c)](#0.4.0)
|
|
5
6
|
* [0.3.3 - 3 Feb, 2016 (41051da9)](#0.3.3)
|
|
6
7
|
* [0.3.2 - 28 Jan, 2016 (299df8ec)](#0.3.2)
|
|
@@ -11,7 +12,237 @@
|
|
|
11
12
|
* [0.0.1 - 7 Oct, 2015 (d99251e6)](#0.0.1)
|
|
12
13
|
|
|
13
14
|
## Details
|
|
14
|
-
### <a name = "LATEST">LATEST -
|
|
15
|
+
### <a name = "LATEST">LATEST - 11 May, 2016 (4a8ee90e)
|
|
16
|
+
|
|
17
|
+
* (GEM) update beaker-hostgenerator version to 0.6.0 (4a8ee90e)
|
|
18
|
+
|
|
19
|
+
* Merge pull request #29 from nwolfe/maint/master/prepare-for-release (7e0decc0)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
Merge pull request #29 from nwolfe/maint/master/prepare-for-release
|
|
24
|
+
|
|
25
|
+
(maint) Prepare for 0.6.0 release
|
|
26
|
+
```
|
|
27
|
+
* (maint) Prepare for 0.6.0 release (c15c1bf6)
|
|
28
|
+
|
|
29
|
+
* Merge pull request #28 from nwolfe/qeng3276/none-hypervisor-and-host-settings (d105e4bd)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Merge pull request #28 from nwolfe/qeng3276/none-hypervisor-and-host-settings
|
|
34
|
+
|
|
35
|
+
(QENG-3276) Add None hypervisor and per-host settings support
|
|
36
|
+
```
|
|
37
|
+
* (QENG-3276) Minor refactorings; failing test fixture (b0926b22)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
(QENG-3276) Minor refactorings; failing test fixture
|
|
42
|
+
|
|
43
|
+
This commit includes the following minor refactorings based on feedback:
|
|
44
|
+
* Inline if block surrounding arbitrary_settings['hostname']
|
|
45
|
+
* Strip the `__` name prefix from `__generate_host_roles!` and make
|
|
46
|
+
private; adjust spec test accordingly
|
|
47
|
+
* Change test fixture `expected_exception` support to not use the
|
|
48
|
+
dangerous `eval`, and added `per-host-settings/malformed-input.yaml`
|
|
49
|
+
test fixture to exercise the support
|
|
50
|
+
```
|
|
51
|
+
* (QENG-3276) Update CHANGELOG (0a170d42)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
(QENG-3276) Update CHANGELOG
|
|
56
|
+
|
|
57
|
+
This commit adds notes for the next release regarding the 'none'
|
|
58
|
+
hypervisor and arbitrary key-value host settings support.
|
|
59
|
+
```
|
|
60
|
+
* (QENG-3276) Add more parser tests for failures (b80d94ab)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
(QENG-3276) Add more parser tests for failures
|
|
65
|
+
|
|
66
|
+
This commit adds tests that validate the proper exceptions are thrown
|
|
67
|
+
when invalid arbitrary host settings are provided.
|
|
68
|
+
|
|
69
|
+
This also expands host-setting support to include arbitrary whitespace
|
|
70
|
+
to allow for more human-readable input.
|
|
71
|
+
```
|
|
72
|
+
* (MAINT) Wire up expected_excpetion test fitxure support (78cccb14)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
(MAINT) Wire up expected_excpetion test fitxure support
|
|
77
|
+
|
|
78
|
+
This commits finishes the work necessary to support expected exceptions
|
|
79
|
+
defined in the test fixture YAML files.
|
|
80
|
+
```
|
|
81
|
+
* (QENG-3276) Move host role code into Roles module (78a2679e)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
(QENG-3276) Move host role code into Roles module
|
|
86
|
+
|
|
87
|
+
This commit moves the ROLES map and custom role config map out of the
|
|
88
|
+
Data and Generator classes and into the Roles class.
|
|
89
|
+
This also changes the implementation of custom role configuration from
|
|
90
|
+
being a meta-programming method call into a standard map index.
|
|
91
|
+
```
|
|
92
|
+
* (QENG-3276) Extract code into new Parser module (9764fd7e)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
(QENG-3276) Extract code into new Parser module
|
|
97
|
+
|
|
98
|
+
This commit moves the NODE_REGEX constant and handful of methods tightly
|
|
99
|
+
coupled to it into a new module called Parser. This module is
|
|
100
|
+
responsible for dealing with the raw user input string and turning it
|
|
101
|
+
into data structures that the Generator and hypervisors can operate on.
|
|
102
|
+
```
|
|
103
|
+
* (QENG-3276) Minor method refactoring (ce763dc0)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
(QENG-3276) Minor method refactoring
|
|
108
|
+
|
|
109
|
+
This commit renames a method, marks some methods as private, and
|
|
110
|
+
extracts some logic into its own method.
|
|
111
|
+
```
|
|
112
|
+
* (QENG-3276) Update README (fd99cc9f)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
(QENG-3276) Update README
|
|
117
|
+
|
|
118
|
+
This commit updates the README to include an example of the new 'none'
|
|
119
|
+
hypervisor and per-host settings.
|
|
120
|
+
|
|
121
|
+
Also rename "Puppet Labs" references to just "Puppet".
|
|
122
|
+
```
|
|
123
|
+
* (QENG-3276) Update CLI help/usage text (7d85dff4)
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
(QENG-3276) Update CLI help/usage text
|
|
128
|
+
|
|
129
|
+
This commit updates the CLI help text to mention the new arbitrary host
|
|
130
|
+
settings support, and include the list of valid hypervisors when the
|
|
131
|
+
`--list` option is given.
|
|
132
|
+
```
|
|
133
|
+
* (QENG-3276) Test fixtures for hypervisor and settings (34d4e649)
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
(QENG-3276) Test fixtures for hypervisor and settings
|
|
138
|
+
|
|
139
|
+
This commit adds a couple hand-made test fixtures that exercise the new
|
|
140
|
+
"none" hypervisor and arbitrary host settings support.
|
|
141
|
+
```
|
|
142
|
+
* Merge pull request #27 from nwolfe/maint/master/decouple-generator-and-hypervisors (52293374)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
Merge pull request #27 from nwolfe/maint/master/decouple-generator-and-hypervisors
|
|
147
|
+
|
|
148
|
+
(maint) Decouple hypervisors from generator
|
|
149
|
+
```
|
|
150
|
+
* (QENG-3276) Add None hypervisor and per-host settings support (ab38abef)
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
(QENG-3276) Add None hypervisor and per-host settings support
|
|
155
|
+
|
|
156
|
+
This commit adds a new "none" hypervisor to support non-provisioned
|
|
157
|
+
hosts. Non-provisioned hosts require a handful of other host settings to
|
|
158
|
+
be specified in order for Beaker to use it properly, so this commit also
|
|
159
|
+
adds support for arbitrary key-value host settings.
|
|
160
|
+
|
|
161
|
+
For example:
|
|
162
|
+
|
|
163
|
+
$ .. centos6-64m{hypervisor=none,hostname=my-host,vmhostname=othername}
|
|
164
|
+
---
|
|
165
|
+
HOSTS:
|
|
166
|
+
my-host:
|
|
167
|
+
pe_dir:
|
|
168
|
+
pe_ver:
|
|
169
|
+
pe_upgrade_dir:
|
|
170
|
+
pe_upgrade_ver:
|
|
171
|
+
platform: el-6-x86_64
|
|
172
|
+
hypervisor: none
|
|
173
|
+
vmhostname: othername
|
|
174
|
+
roles:
|
|
175
|
+
- agent
|
|
176
|
+
- master
|
|
177
|
+
CONFIG:
|
|
178
|
+
nfs_server: none
|
|
179
|
+
consoleport: 443
|
|
180
|
+
```
|
|
181
|
+
* (maint) Docstrings for new hypervisor architecture (9c35595f)
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
(maint) Docstrings for new hypervisor architecture
|
|
186
|
+
|
|
187
|
+
This commit adds docstrings to modules and methods, specifically the
|
|
188
|
+
BeakerHostGenerator::Hypervisor and BeakerHostGenerator::Data modules.
|
|
189
|
+
```
|
|
190
|
+
* (maint) Generate multi-platform test fixtures (996578cb)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
(maint) Generate multi-platform test fixtures
|
|
195
|
+
|
|
196
|
+
To help with test coverage, this adds a directory full of generated
|
|
197
|
+
test fixtures with multi-platform hosts in a form similar to
|
|
198
|
+
"centos6-64m-debian8-32-sles12-64a". Two of the three hosts have a
|
|
199
|
+
random role assigned.
|
|
200
|
+
```
|
|
201
|
+
* (maint) New generated windows test fixtures (2591347e)
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
```
|
|
205
|
+
(maint) New generated windows test fixtures
|
|
206
|
+
|
|
207
|
+
The rake task 'generate:fixtures' produced several new Windows fixtures.
|
|
208
|
+
Perhaps we had previously updated the code to add support for more
|
|
209
|
+
Windows platforms, but we forgot to re-generate the test fixtures?
|
|
210
|
+
```
|
|
211
|
+
* (maint) Decouple hypervisors from generator (aa39202e)
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
(maint) Decouple hypervisors from generator
|
|
216
|
+
|
|
217
|
+
This commit is a large refactor that teases apart the generate code from
|
|
218
|
+
the hypervisor code.
|
|
219
|
+
|
|
220
|
+
Previously the VMPooler hypervisor class was a subclass of the Generator
|
|
221
|
+
class, which was fine when there was only one hypervisor, but made it
|
|
222
|
+
difficult to add support for per-host/multiple hypervisors.
|
|
223
|
+
|
|
224
|
+
Now, there's a 1-to-many relationship between the Generator
|
|
225
|
+
(BeakerHostGenerator::Generator) and the
|
|
226
|
+
Hypervisors (BeakerHostGenerator::Hypervisor).
|
|
227
|
+
|
|
228
|
+
The giant map of OSINFO data that was previously in the
|
|
229
|
+
'data/vmpooler.rb' has been promoted and moved into data.rb as the
|
|
230
|
+
`osinfo` module function. The parts specific to the VMPooler hypervisor
|
|
231
|
+
have been nested under submaps keyed by the name of the hypervisor,
|
|
232
|
+
`:vmpooler`.
|
|
233
|
+
|
|
234
|
+
Adding support for a new hypervisor now requires implementing
|
|
235
|
+
BeakerHostGenerator::Hypervisor::Interface, and adding any appropriate
|
|
236
|
+
platform data as a submap to the OSINFO map in data.rb, keyed under a
|
|
237
|
+
symbol named after the new hypervisor (e.g. `:my_hypervisor`).
|
|
238
|
+
|
|
239
|
+
The module function `BeakerHostGenerator::Data.get_platform_info` can
|
|
240
|
+
then be used when implementing the hypervisor to extract the relevant
|
|
241
|
+
platform data under the key `:my_hypervisor`.
|
|
242
|
+
```
|
|
243
|
+
### <a name = "0.5.0">0.5.0 - 31 Mar, 2016 (fa3ae0c8)
|
|
244
|
+
|
|
245
|
+
* (HISTORY) update beaker-hostgenerator history for gem release 0.5.0 (fa3ae0c8)
|
|
15
246
|
|
|
16
247
|
* (GEM) update beaker-hostgenerator version to 0.5.0 (36291ea6)
|
|
17
248
|
|
data/README.md
CHANGED
|
@@ -3,18 +3,19 @@
|
|
|
3
3
|
`beaker-hostgenerator` is a command line utility designed to generate beaker
|
|
4
4
|
host config files using a compact command line SUT specification.
|
|
5
5
|
|
|
6
|
-
It currently
|
|
7
|
-
|
|
8
|
-
additional
|
|
9
|
-
[beaker][beaker]).
|
|
6
|
+
It currently supports Puppets' internal [vmpooler][vmpooler] hypervisor and
|
|
7
|
+
static (non-provisioned) nodes, and is designed in a way that makes it possible
|
|
8
|
+
to easily add support for additional hypervisors (any hypervisor type supported
|
|
9
|
+
by [beaker][beaker]).
|
|
10
10
|
|
|
11
11
|
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-generate-toc again -->
|
|
12
12
|
**Table of Contents**
|
|
13
13
|
|
|
14
14
|
- [Beaker Host Generator](#beaker-host-generator)
|
|
15
15
|
- [Usage](#usage)
|
|
16
|
-
- [Simple two-host
|
|
17
|
-
- [Single
|
|
16
|
+
- [Simple two-host layout](#simple-two-host-layout)
|
|
17
|
+
- [Single host with Arbitrary Roles](#single-host-with-arbitrary-roles)
|
|
18
|
+
- [Two hosts with multiple hypervisors and arbitrary host settings](#two-hosts-with-multiple-hypervisors-and-arbitrary-host-settings)
|
|
18
19
|
- [Testing](#testing)
|
|
19
20
|
- [Test Fixtures](#test-fixtures)
|
|
20
21
|
- [Generated Fixtures](#generated-fixtures)
|
|
@@ -22,12 +23,12 @@ additional hypervisor templates (any hypervisor type supported by
|
|
|
22
23
|
- [License](#license)
|
|
23
24
|
|
|
24
25
|
<!-- markdown-toc end -->
|
|
25
|
-
|
|
26
|
+
|
|
26
27
|
## Usage
|
|
27
28
|
|
|
28
29
|
Below are some example usages of `beaker-hostgenerator`.
|
|
29
30
|
|
|
30
|
-
### Simple two-host
|
|
31
|
+
### Simple two-host layout
|
|
31
32
|
|
|
32
33
|
```
|
|
33
34
|
$ beaker-hostgenerator centos6-64mdca-32a
|
|
@@ -67,7 +68,7 @@ CONFIG:
|
|
|
67
68
|
pooling_api: http://vmpooler.delivery.puppetlabs.net/
|
|
68
69
|
```
|
|
69
70
|
|
|
70
|
-
### Single
|
|
71
|
+
### Single host with Arbitrary Roles
|
|
71
72
|
|
|
72
73
|
```
|
|
73
74
|
$ beaker-hostgenerator centos6-32compile_master,another_role.ma
|
|
@@ -101,12 +102,50 @@ CONFIG:
|
|
|
101
102
|
pooling_api: http://vmpooler.delivery.puppetlabs.net/
|
|
102
103
|
```
|
|
103
104
|
|
|
105
|
+
### Two hosts with multiple hypervisors and arbitrary host settings
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
$ beaker-hostgenerator centos6-64m{hypervisor=none\,hostname=static-master}-redhat7-64a{somekey=some-value}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Will generate
|
|
112
|
+
|
|
113
|
+
```yaml
|
|
114
|
+
---
|
|
115
|
+
HOSTS:
|
|
116
|
+
static-master:
|
|
117
|
+
pe_dir:
|
|
118
|
+
pe_ver:
|
|
119
|
+
pe_upgrade_dir:
|
|
120
|
+
pe_upgrade_ver:
|
|
121
|
+
platform: el-6-x86_64
|
|
122
|
+
hypervisor: none
|
|
123
|
+
roles:
|
|
124
|
+
- agent
|
|
125
|
+
- master
|
|
126
|
+
redhat7-64-1:
|
|
127
|
+
pe_dir:
|
|
128
|
+
pe_ver:
|
|
129
|
+
pe_upgrade_dir:
|
|
130
|
+
pe_upgrade_ver:
|
|
131
|
+
hypervisor: vmpooler
|
|
132
|
+
platform: el-7-x86_64
|
|
133
|
+
template: redhat-7-x86_64
|
|
134
|
+
somekey: some-value
|
|
135
|
+
roles:
|
|
136
|
+
- agent
|
|
137
|
+
CONFIG:
|
|
138
|
+
nfs_server: none
|
|
139
|
+
consoleport: 443
|
|
140
|
+
pooling_api: http://vmpooler.delivery.puppetlabs.net/
|
|
141
|
+
```
|
|
142
|
+
|
|
104
143
|
## Testing
|
|
105
144
|
|
|
106
145
|
Beaker Host Generator currently uses both rspec and minitest tests. To run both
|
|
107
146
|
at the same time, run:
|
|
108
147
|
```bash
|
|
109
|
-
bundle exec rake
|
|
148
|
+
bundle exec rake test
|
|
110
149
|
```
|
|
111
150
|
|
|
112
151
|
### Test Fixtures
|
|
@@ -179,7 +218,7 @@ There are a few circumstances when you should expect to run the
|
|
|
179
218
|
|
|
180
219
|
## Support
|
|
181
220
|
|
|
182
|
-
Support offered by [Puppet
|
|
221
|
+
Support offered by [Puppet](https://puppet.com) may not always be timely
|
|
183
222
|
since it is maintained by a tooling support team that is primarily focused on
|
|
184
223
|
improving tools, infrastructure, and automation for our Enterprise products.
|
|
185
224
|
|
|
@@ -5,8 +5,8 @@ require 'beaker-hostgenerator/version'
|
|
|
5
5
|
Gem::Specification.new do |s|
|
|
6
6
|
s.name = "beaker-hostgenerator"
|
|
7
7
|
s.version = BeakerHostGenerator::Version::STRING
|
|
8
|
-
s.authors = ["Branan Purvine-Riley", "Wayne Warren"]
|
|
9
|
-
s.email = ["qe-team@
|
|
8
|
+
s.authors = ["Branan Purvine-Riley", "Wayne Warren", "Nate Wolfe"]
|
|
9
|
+
s.email = ["qe-team@puppet.com"]
|
|
10
10
|
s.homepage = "https://github.com/puppetlabs/beaker-hostgenerator"
|
|
11
11
|
s.summary = "Beaker Host Generator Utility"
|
|
12
12
|
s.description = <<-eos
|
data/lib/beaker-hostgenerator.rb
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
require 'beaker-hostgenerator/generator'
|
|
2
|
+
require 'beaker-hostgenerator/hypervisor'
|
|
3
|
+
require 'beaker-hostgenerator/roles'
|
|
2
4
|
require 'optparse'
|
|
3
5
|
|
|
4
6
|
module BeakerHostGenerator
|
|
@@ -23,7 +25,7 @@ module BeakerHostGenerator
|
|
|
23
25
|
Usage: beaker-hostgenerator [options] <layout>
|
|
24
26
|
|
|
25
27
|
where <layout> takes the following form:
|
|
26
|
-
<platform>-<arch
|
|
28
|
+
<platform>-<arch>[[<arbitrary-roles>,[...]].]<roles>[{<arbitrary-settings>,[...]}][-<arch>[[<arbitrary-roles>,[...]].]<roles>[{<arbitrary-settings>,[...]}]][-<layout>]
|
|
27
29
|
|
|
28
30
|
examples:
|
|
29
31
|
centos6-64mdca-32a
|
|
@@ -44,6 +46,11 @@ Usage: beaker-hostgenerator [options] <layout>
|
|
|
44
46
|
centos6-32compile_master,another_role.ma
|
|
45
47
|
1 CentOS 6 32 bit node with roles = master, agent, compile_master, another_role
|
|
46
48
|
|
|
49
|
+
example with arbitrary host settings:
|
|
50
|
+
centos6-64m{hypervisor=none\\,hostname=static1\\,my-key=my-value}-32a
|
|
51
|
+
1 CentOS 6 64 bit node with roles = master, hypervisor = none, node name = static1, and my-key = my-value
|
|
52
|
+
1 CentOS 6 32 bit node with roles = agent and the default hypervisor
|
|
53
|
+
|
|
47
54
|
Generally, it is expected that beaker-hostgenerator output will be redirected to a file, for example:
|
|
48
55
|
beaker-hostgenerator centos6-64ma > host.cfg
|
|
49
56
|
|
|
@@ -53,14 +60,14 @@ Usage: beaker-hostgenerator [options] <layout>
|
|
|
53
60
|
|
|
54
61
|
opts.on('-l',
|
|
55
62
|
'--list',
|
|
56
|
-
'List beaker-hostgenerator supported platforms and
|
|
63
|
+
'List beaker-hostgenerator supported platforms, roles, and hypervisors. ' <<
|
|
57
64
|
'Does not produce host config.') do
|
|
58
|
-
@options[:
|
|
65
|
+
@options[:list_supported_values] = true
|
|
59
66
|
end
|
|
60
67
|
|
|
61
68
|
opts.on('-t',
|
|
62
69
|
'--hypervisor HYPERVISOR',
|
|
63
|
-
'Set beaker-hostgenerator hypervisor. ') do |h|
|
|
70
|
+
'Set beaker-hostgenerator default hypervisor. ') do |h|
|
|
64
71
|
@options[:hypervisor] = h
|
|
65
72
|
end
|
|
66
73
|
|
|
@@ -90,7 +97,7 @@ Usage: beaker-hostgenerator [options] <layout>
|
|
|
90
97
|
end
|
|
91
98
|
|
|
92
99
|
opts.on('--disable-default-role',
|
|
93
|
-
"Do not include the default
|
|
100
|
+
"Do not include the default 'agent' role.") do
|
|
94
101
|
@options[:disable_default_role] = true
|
|
95
102
|
end
|
|
96
103
|
|
|
@@ -116,12 +123,11 @@ Usage: beaker-hostgenerator [options] <layout>
|
|
|
116
123
|
|
|
117
124
|
optparse.parse!(argv)
|
|
118
125
|
|
|
119
|
-
if @options[:
|
|
120
|
-
|
|
126
|
+
if @options[:list_supported_values]
|
|
127
|
+
print_supported_values
|
|
121
128
|
raise BeakerHostGenerator::Exceptions::SafeEarlyExit
|
|
122
129
|
else
|
|
123
|
-
|
|
124
|
-
@tokens = argv[0].split('-')
|
|
130
|
+
@layout = argv[0]
|
|
125
131
|
|
|
126
132
|
if @options[:osinfo_version] === 0
|
|
127
133
|
warning = <<-eow
|
|
@@ -137,14 +143,24 @@ eow
|
|
|
137
143
|
end
|
|
138
144
|
end
|
|
139
145
|
|
|
140
|
-
def
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
146
|
+
def execute
|
|
147
|
+
BeakerHostGenerator::Generator.new.generate(@layout, @options)
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def execute!
|
|
151
|
+
puts execute
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
private
|
|
155
|
+
|
|
156
|
+
# Prints to stdout a human-readable listing of all supported values for
|
|
157
|
+
# the following: platforms, architectures, roles, and hypervisors.
|
|
158
|
+
def print_supported_values
|
|
159
|
+
puts "valid beaker-hostgenerator platforms:"
|
|
160
|
+
platforms = get_platforms(@options[:osinfo_version])
|
|
161
|
+
platforms.each do |k|
|
|
145
162
|
puts " #{k}"
|
|
146
163
|
end
|
|
147
|
-
|
|
148
164
|
puts "\n"
|
|
149
165
|
|
|
150
166
|
puts "valid beaker-hostgenerator architectures:"
|
|
@@ -153,20 +169,16 @@ eow
|
|
|
153
169
|
puts " 6432 => 64-bit OS with 32-bit Puppet (Windows Only)"
|
|
154
170
|
puts "\n"
|
|
155
171
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
roles.each do |k,v|
|
|
172
|
+
puts "valid beaker-hostgenerator host roles:"
|
|
173
|
+
BeakerHostGenerator::Roles::ROLES.each do |k,v|
|
|
159
174
|
puts " #{k} => #{v}"
|
|
160
175
|
end
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
def execute
|
|
164
|
-
generator = BeakerHostGenerator::Generator.create @options
|
|
165
|
-
generator.generate @tokens
|
|
166
|
-
end
|
|
176
|
+
puts "\n"
|
|
167
177
|
|
|
168
|
-
|
|
169
|
-
|
|
178
|
+
puts "valid beaker-hostgenerator hypervisors:"
|
|
179
|
+
BeakerHostGenerator::Hypervisor.supported_hypervisors().keys.each do |k|
|
|
180
|
+
puts " #{k}"
|
|
181
|
+
end
|
|
170
182
|
end
|
|
171
183
|
end
|
|
172
184
|
end
|