beaker-hostgenerator 0.1.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 +15 -0
- data/.gitignore +25 -0
- data/.rspec +3 -0
- data/.simplecov +9 -0
- data/CHANGELOG.md +33 -0
- data/CONTRIBUTING.md +54 -0
- data/Gemfile +27 -0
- data/HISTORY.md +211 -0
- data/LICENSE +202 -0
- data/README.md +112 -0
- data/Rakefile +48 -0
- data/acceptance/config/nodes/vagrant-ubuntu-1404.yml +8 -0
- data/acceptance/tests/first.rb +8 -0
- data/beaker-hostgenerator.gemspec +44 -0
- data/bin/beaker-hostgenerator +8 -0
- data/bin/genconfig2 +10 -0
- data/lib/beaker-hostgenerator.rb +8 -0
- data/lib/beaker-hostgenerator/cli.rb +126 -0
- data/lib/beaker-hostgenerator/data.rb +55 -0
- data/lib/beaker-hostgenerator/data/vmpooler.rb +397 -0
- data/lib/beaker-hostgenerator/error.rb +6 -0
- data/lib/beaker-hostgenerator/generator.rb +143 -0
- data/lib/beaker-hostgenerator/generator/vmpooler.rb +57 -0
- data/lib/beaker-hostgenerator/roles.rb +22 -0
- data/lib/beaker-hostgenerator/util.rb +64 -0
- data/lib/beaker-hostgenerator/version.rb +5 -0
- data/spec/beaker-hostgenerator/generator_spec.rb +98 -0
- data/spec/helpers.rb +109 -0
- data/spec/spec_helper.rb +10 -0
- metadata +230 -0
data/README.md
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
# Beaker Host Generator
|
2
|
+
|
3
|
+
`beaker-hostgenerator` is a command line utility designed to generate beaker
|
4
|
+
host config files using a compact command line SUT specification.
|
5
|
+
|
6
|
+
It currently only supports puppetlabs' internal [vmpooler][vmpooler] templates,
|
7
|
+
but is designed in a way that makes it possible to easily add support for
|
8
|
+
additional hypervisor templates (any hypervisor type supported by
|
9
|
+
[beaker][beaker]).
|
10
|
+
|
11
|
+
## Usage
|
12
|
+
|
13
|
+
Below are some example usages of `beaker-hostgenerator`.
|
14
|
+
|
15
|
+
### Simple two-host SUT layout
|
16
|
+
|
17
|
+
```
|
18
|
+
$ beaker-hostgenerator centos6-64mdca-32a
|
19
|
+
```
|
20
|
+
|
21
|
+
Will generate
|
22
|
+
|
23
|
+
```yaml
|
24
|
+
---
|
25
|
+
HOSTS:
|
26
|
+
centos6-64-1:
|
27
|
+
pe_dir:
|
28
|
+
pe_ver:
|
29
|
+
pe_upgrade_dir:
|
30
|
+
pe_upgrade_ver:
|
31
|
+
hypervisor: vmpooler
|
32
|
+
platform: el-6-x86_64
|
33
|
+
template: centos-6-x86_64
|
34
|
+
roles:
|
35
|
+
- agent
|
36
|
+
- master
|
37
|
+
- database
|
38
|
+
- dashboard
|
39
|
+
centos6-32-2:
|
40
|
+
pe_dir:
|
41
|
+
pe_ver:
|
42
|
+
pe_upgrade_dir:
|
43
|
+
pe_upgrade_ver:
|
44
|
+
hypervisor: vmpooler
|
45
|
+
platform: el-6-i386
|
46
|
+
template: centos-6-i386
|
47
|
+
roles:
|
48
|
+
- agent
|
49
|
+
CONFIG:
|
50
|
+
nfs_server: none
|
51
|
+
consoleport: 443
|
52
|
+
pooling_api: http://vmpooler.delivery.puppetlabs.net/
|
53
|
+
```
|
54
|
+
|
55
|
+
### Single-host SUT layout with Arbitrary Roles
|
56
|
+
|
57
|
+
```
|
58
|
+
$ beaker-hostgenerator centos6-32compile_master,another_role.ma
|
59
|
+
```
|
60
|
+
|
61
|
+
Will generate
|
62
|
+
|
63
|
+
```yaml
|
64
|
+
---
|
65
|
+
HOSTS:
|
66
|
+
centos6-32-1:
|
67
|
+
pe_dir:
|
68
|
+
pe_ver:
|
69
|
+
pe_upgrade_dir:
|
70
|
+
pe_upgrade_ver:
|
71
|
+
hypervisor: vmpooler
|
72
|
+
platform: el-6-i386
|
73
|
+
template: centos-6-i386
|
74
|
+
roles:
|
75
|
+
- agent
|
76
|
+
- master
|
77
|
+
- compile_master
|
78
|
+
- another_role
|
79
|
+
frictionless_options:
|
80
|
+
main:
|
81
|
+
dns_alt_names: puppet
|
82
|
+
environmentpath: "/etc/puppetlabs/puppet/environments"
|
83
|
+
CONFIG:
|
84
|
+
nfs_server: none
|
85
|
+
consoleport: 443
|
86
|
+
pooling_api: http://vmpooler.delivery.puppetlabs.net/
|
87
|
+
```
|
88
|
+
|
89
|
+
## Support
|
90
|
+
|
91
|
+
Support offered by [Puppet Labs](https://puppetlabs.com) may not always be timely
|
92
|
+
since it is maintained by a tooling support team that is primarily focused on
|
93
|
+
improving tools, infrastructure, and automation for our Enterprise products.
|
94
|
+
|
95
|
+
That being said, we will happily accept and review PRs from community members
|
96
|
+
interested in extending and using `beaker-hostgenerator` for their own purposes.
|
97
|
+
See the [contributing][contributing] doc for more information about how to
|
98
|
+
contribute.
|
99
|
+
|
100
|
+
If you have questions or comments, please contact the Beaker team at the
|
101
|
+
`#puppet-dev` IRC channel on chat.freenode.org
|
102
|
+
|
103
|
+
## License
|
104
|
+
|
105
|
+
`beaker-hostgenerator` is distributed under the
|
106
|
+
[Apache License, Version 2.0][apache-v2]. See the [LICENSE][license] file for more details.
|
107
|
+
|
108
|
+
[vmpooler]: https://github.com/puppetlabs/vmpooler
|
109
|
+
[beaker]: https://github.com/puppetlabs/beaker
|
110
|
+
[license]: LICENSE
|
111
|
+
[contributing]: CONTRIBUTING.md
|
112
|
+
[apache-v2]: http://www.apache.org/licenses/LICENSE-2.0.html
|
data/Rakefile
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'rspec/core/rake_task'
|
2
|
+
|
3
|
+
namespace :test do
|
4
|
+
|
5
|
+
namespace :spec do
|
6
|
+
|
7
|
+
desc "Run spec tests"
|
8
|
+
RSpec::Core::RakeTask.new(:run) do |t|
|
9
|
+
t.rspec_opts = ['--color']
|
10
|
+
t.pattern = 'spec/'
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Run spec tests with coverage"
|
14
|
+
RSpec::Core::RakeTask.new(:coverage) do |t|
|
15
|
+
ENV['BEAKER_TEMPLATE_COVERAGE'] = 'y'
|
16
|
+
t.rspec_opts = ['--color']
|
17
|
+
t.pattern = 'spec/'
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
namespace :acceptance do
|
23
|
+
|
24
|
+
desc <<-EOS
|
25
|
+
A quick acceptance test, named because it has no pre-suites to run
|
26
|
+
EOS
|
27
|
+
task :quick do
|
28
|
+
|
29
|
+
sh("beaker",
|
30
|
+
"--hosts", ENV['CONFIG'] || "acceptance/config/nodes/vagrant-ubuntu-1404.yml",
|
31
|
+
"--tests", "acceptance/tests",
|
32
|
+
"--log-level", "debug",
|
33
|
+
"--keyfile", ENV['KEY'] || "#{ENV['HOME']}/.ssh/id_rsa")
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
# namespace-named default tasks.
|
41
|
+
# these are the default tasks invoked when only the namespace is referenced.
|
42
|
+
# they're needed because `task :default` in those blocks doesn't work as expected.
|
43
|
+
task 'test:spec' => 'test:spec:run'
|
44
|
+
task 'test:acceptance' => 'test:acceptance:quick'
|
45
|
+
|
46
|
+
# global defaults
|
47
|
+
task :test => 'test:spec'
|
48
|
+
task :default => :test
|
@@ -0,0 +1,8 @@
|
|
1
|
+
|
2
|
+
# Acceptance level testing goes into files in the tests directory like this one,
|
3
|
+
# Each file corresponding to a new test made up of individual testing steps
|
4
|
+
test_name "Template Acceptance Test Example"
|
5
|
+
|
6
|
+
step "Fail fast!"
|
7
|
+
|
8
|
+
fail_test("There are no acceptance tests yet!")
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
|
3
|
+
require 'beaker-hostgenerator/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "beaker-hostgenerator"
|
7
|
+
s.version = BeakerHostGenerator::Version::STRING
|
8
|
+
s.date = "2015-10-07"
|
9
|
+
s.authors = ["Branan Purvine-Riley", "Wayne Warren"]
|
10
|
+
s.email = ["qe-team@puppetlabs.com"]
|
11
|
+
s.homepage = "https://github.com/puppetlabs/beaker-hostgenerator"
|
12
|
+
s.summary = "Beaker Host Generator Utility"
|
13
|
+
s.description = <<-eos
|
14
|
+
The beaker-hostgenerator tool will take a Beaker SUT (System Under Test) spec as
|
15
|
+
its first positional argument and use that to generate a Beaker host
|
16
|
+
configuration file.
|
17
|
+
eos
|
18
|
+
s.description = %q{For use for the Beaker acceptance testing tool}
|
19
|
+
s.license = 'Apache2'
|
20
|
+
|
21
|
+
s.files = `git ls-files`.split("\n")
|
22
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
23
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
24
|
+
s.require_paths = ["lib"]
|
25
|
+
|
26
|
+
# Testing dependencies
|
27
|
+
s.add_development_dependency 'rspec', '~> 3.0'
|
28
|
+
s.add_development_dependency 'rspec-its'
|
29
|
+
s.add_development_dependency 'fakefs', '~> 0.6'
|
30
|
+
s.add_development_dependency 'rake', '~> 10.1'
|
31
|
+
s.add_development_dependency 'simplecov'
|
32
|
+
s.add_development_dependency 'pry', '~> 0.10'
|
33
|
+
|
34
|
+
# Documentation dependencies
|
35
|
+
s.add_development_dependency 'yard'
|
36
|
+
s.add_development_dependency 'markdown'
|
37
|
+
s.add_development_dependency 'thin'
|
38
|
+
|
39
|
+
# Run time dependencies
|
40
|
+
s.add_runtime_dependency 'deep_merge', '~> 1.0'
|
41
|
+
s.add_runtime_dependency 'stringify-hash', '~> 0.0.0'
|
42
|
+
|
43
|
+
end
|
44
|
+
|
data/bin/genconfig2
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
lib_dir = File.expand_path(File.dirname(File.dirname(__FILE__)), 'lib')
|
4
|
+
$LOAD_PATH.unshift(lib_dir)
|
5
|
+
|
6
|
+
require 'beaker-hostgenerator'
|
7
|
+
|
8
|
+
STDERR.puts("Warning: 'genconfig2' is deprecated and will be removed in beaker-hostgenerator 1.x\n\n")
|
9
|
+
|
10
|
+
BeakerHostGenerator::CLI.new.execute!
|
@@ -0,0 +1,126 @@
|
|
1
|
+
require 'beaker-hostgenerator/generator'
|
2
|
+
require 'optparse'
|
3
|
+
|
4
|
+
module BeakerHostGenerator
|
5
|
+
class CLI
|
6
|
+
include BeakerHostGenerator::Data
|
7
|
+
|
8
|
+
attr_reader :options
|
9
|
+
|
10
|
+
def initialize(argv = ARGV.dup)
|
11
|
+
@options = {
|
12
|
+
list_platforms_and_roles: false,
|
13
|
+
disable_default_role: false,
|
14
|
+
disable_role_config: false,
|
15
|
+
hypervisor: 'vmpooler',
|
16
|
+
}
|
17
|
+
|
18
|
+
argv.push('--help') if argv.empty?
|
19
|
+
|
20
|
+
optparse = OptionParser.new do |opts|
|
21
|
+
opts.banner = <<-eos
|
22
|
+
Usage: beaker-hostgenerator [options] <layout>
|
23
|
+
|
24
|
+
where <layout> takes the following form:
|
25
|
+
<platform>-<arch><roles>[[-<platform>]-<arch>[[<arbitrary-roles>,[...]].]<roles>[...]]
|
26
|
+
|
27
|
+
examples:
|
28
|
+
centos6-64mdca-32a
|
29
|
+
1 CentOS 6 64 bit node with roles = master, database, agent, dashboard
|
30
|
+
1 CentOS 6 32 bit node with roles = agent
|
31
|
+
|
32
|
+
debian8-64m-32ad-32ac-centos6-64a
|
33
|
+
1 Debian 8 64 bit node with roles = master
|
34
|
+
1 Debian 8 32 bit node with roles = agent, database
|
35
|
+
1 Debian 8 32 bit node with roles = agent, dashboard
|
36
|
+
1 CentOS 6 64 bit node with roles = agent
|
37
|
+
|
38
|
+
debian8-64m-windows8-64a
|
39
|
+
1 Debian 8 64 bit node with roles = master
|
40
|
+
1 Windows 8 64 bit node with roles = agent
|
41
|
+
|
42
|
+
example with arbitrary roles:
|
43
|
+
centos6-32compile_master,another_role.ma
|
44
|
+
1 CentOS 6 32 bit node with roles = master, agent, compile_master, another_role
|
45
|
+
|
46
|
+
Generally, it is expected that beaker-hostgenerator output will be redirected to a file, for example:
|
47
|
+
beaker-hostgenerator centos6-64ma > host.cfg
|
48
|
+
|
49
|
+
This can then be used in a Beaker call instead of a static Beaker config.
|
50
|
+
|
51
|
+
eos
|
52
|
+
|
53
|
+
opts.on('-l',
|
54
|
+
'--list',
|
55
|
+
'List beaker-hostgenerator supported platforms and roles. ' <<
|
56
|
+
'Does not produce host config.') do
|
57
|
+
@options[:list_platforms_and_roles] = true
|
58
|
+
end
|
59
|
+
|
60
|
+
opts.on('-t',
|
61
|
+
'--hypervisor HYPERVISOR',
|
62
|
+
'Set beaker-hostgenerator hypervisor. ') do |h|
|
63
|
+
@options[:hypervisor] = h
|
64
|
+
end
|
65
|
+
|
66
|
+
opts.on('--disable-role-config',
|
67
|
+
"Do not include role-specific configuration.") do
|
68
|
+
@options[:disable_role_config] = true
|
69
|
+
end
|
70
|
+
|
71
|
+
opts.on('--disable-default-role',
|
72
|
+
"Do not include the default /'agent/' role.") do
|
73
|
+
@options[:disable_default_role] = true
|
74
|
+
end
|
75
|
+
|
76
|
+
opts.on('-h',
|
77
|
+
'--help',
|
78
|
+
'Display command help.') do
|
79
|
+
puts opts
|
80
|
+
exit
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
optparse.parse!(argv)
|
85
|
+
|
86
|
+
if @options[:list_platforms_and_roles]
|
87
|
+
print_platforms_and_roles
|
88
|
+
exit
|
89
|
+
end
|
90
|
+
|
91
|
+
# Tokenizing the config definition for great justice
|
92
|
+
@tokens = argv[0].split('-')
|
93
|
+
end
|
94
|
+
|
95
|
+
def print_platforms_and_roles
|
96
|
+
puts "valid beaker-hostgenerator platforms: "
|
97
|
+
osinfo = BeakerHostGenerator::Utils.get_platforms
|
98
|
+
osinfo.each do |k,v|
|
99
|
+
puts " #{k}"
|
100
|
+
end
|
101
|
+
|
102
|
+
puts "\n"
|
103
|
+
|
104
|
+
puts "valid beaker-hostgenerator architectures:"
|
105
|
+
puts " 32 => 32-bit OS"
|
106
|
+
puts " 64 => 64-bit OS"
|
107
|
+
puts " 6432 => 64-bit OS with 32-bit Puppet (Windows Only)"
|
108
|
+
puts "\n"
|
109
|
+
|
110
|
+
roles = BeakerHostGenerator::Utils.get_roles
|
111
|
+
puts "valid beaker-hostgenerator host roles: "
|
112
|
+
roles.each do |k,v|
|
113
|
+
puts " #{k} => #{v}"
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def execute
|
118
|
+
generator = BeakerHostGenerator::Generator.create @options
|
119
|
+
generator.generate @tokens
|
120
|
+
end
|
121
|
+
|
122
|
+
def execute!
|
123
|
+
puts execute
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module BeakerHostGenerator
|
2
|
+
module Data
|
3
|
+
|
4
|
+
# Pull various informations out of the environment.
|
5
|
+
PE_VERSION=ENV['pe_version']
|
6
|
+
PE_FAMILY=ENV['pe_family']
|
7
|
+
PE_UPGRADE_VERSION=ENV['pe_upgrade_version']
|
8
|
+
PE_UPGRADE_FAMILY=ENV['pe_upgrade_family']
|
9
|
+
|
10
|
+
PE_USE_WIN32=ENV['pe_use_win32']
|
11
|
+
|
12
|
+
ROLES = {
|
13
|
+
'a' => 'agent',
|
14
|
+
'u' => 'ca',
|
15
|
+
'l' => 'classifier',
|
16
|
+
'c' => 'dashboard',
|
17
|
+
'd' => 'database',
|
18
|
+
'f' => 'frictionless',
|
19
|
+
'm' => 'master',
|
20
|
+
}
|
21
|
+
|
22
|
+
# Capture role and bit width information about the node.
|
23
|
+
#
|
24
|
+
# Examples node specs and their resulting roles
|
25
|
+
#
|
26
|
+
# 64compile_master,zuul,meow.a
|
27
|
+
# * compile_master
|
28
|
+
# * zuul
|
29
|
+
# * meow
|
30
|
+
# * agent
|
31
|
+
#
|
32
|
+
# 32herp.cdma
|
33
|
+
# * herp
|
34
|
+
# * dashboard
|
35
|
+
# * database
|
36
|
+
# * master
|
37
|
+
# * agent
|
38
|
+
#
|
39
|
+
# 64dashboard,master,agent,database.
|
40
|
+
# * dashboard
|
41
|
+
# * master
|
42
|
+
# * agent
|
43
|
+
# * database
|
44
|
+
#
|
45
|
+
NODE_REGEX=/\A(?<bits>\d+)((?<arbitrary_roles>([[:lower:]_]*|\,)*)\.)?(?<roles>[uacldfm]*)\Z/
|
46
|
+
|
47
|
+
BASE_CONFIG = {
|
48
|
+
'HOSTS' => {},
|
49
|
+
'CONFIG' => {
|
50
|
+
'nfs_server' => 'none',
|
51
|
+
'consoleport' => 443,
|
52
|
+
}
|
53
|
+
}
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,397 @@
|
|
1
|
+
module BeakerHostGenerator
|
2
|
+
module Data
|
3
|
+
module Vmpooler
|
4
|
+
|
5
|
+
OSINFO = {
|
6
|
+
'arista-32' => {
|
7
|
+
'platform' => 'eos-4-i386',
|
8
|
+
'template' => 'arista-4-i386'
|
9
|
+
},
|
10
|
+
'centos4-32' => {
|
11
|
+
'platform' => 'el-4-i386',
|
12
|
+
'template' => 'centos-4-i386'
|
13
|
+
},
|
14
|
+
'centos4-64' => {
|
15
|
+
'platform' => 'el-4-x86_64',
|
16
|
+
'template' => 'centos-4-x86_64'
|
17
|
+
},
|
18
|
+
'centos5-32' => {
|
19
|
+
'platform' => 'el-5-i386',
|
20
|
+
'template' => 'centos-5-i386'
|
21
|
+
},
|
22
|
+
'centos5-64' => {
|
23
|
+
'platform' => 'el-5-x86_64',
|
24
|
+
'template' => 'centos-5-x86_64'
|
25
|
+
},
|
26
|
+
'centos6-32' => {
|
27
|
+
'platform' => 'el-6-i386',
|
28
|
+
'template' => 'centos-6-i386'
|
29
|
+
},
|
30
|
+
'centos6-64' => {
|
31
|
+
'platform' => 'el-6-x86_64',
|
32
|
+
'template' => 'centos-6-x86_64'
|
33
|
+
},
|
34
|
+
'centos7-64' => {
|
35
|
+
'platform' => 'el-7-x86_64',
|
36
|
+
'template' => 'centos-7-x86_64'
|
37
|
+
},
|
38
|
+
'debian6-32' => {
|
39
|
+
'platform' => 'debian-6-i386',
|
40
|
+
'template' => 'debian-6-i386'
|
41
|
+
},
|
42
|
+
'debian6-64' => {
|
43
|
+
'platform' => 'debian-6-amd64',
|
44
|
+
'template' => 'debian-6-x86_64'
|
45
|
+
},
|
46
|
+
'debian7-32' => {
|
47
|
+
'platform' => 'debian-7-i386',
|
48
|
+
'template' => 'debian-7-i386'
|
49
|
+
},
|
50
|
+
'debian7-64' => {
|
51
|
+
'platform' => 'debian-7-amd64',
|
52
|
+
'template' => 'debian-7-x86_64'
|
53
|
+
},
|
54
|
+
'debian8-32' => {
|
55
|
+
'platform' => 'debian-8-i386',
|
56
|
+
'template' => 'debian-8-i386'
|
57
|
+
},
|
58
|
+
'debian8-64' => {
|
59
|
+
'platform' => 'debian-8-amd64',
|
60
|
+
'template' => 'debian-8-x86_64'
|
61
|
+
},
|
62
|
+
'debian9-32' => {
|
63
|
+
'platform' => 'debian-9-i386',
|
64
|
+
'template' => 'debian-9-i386'
|
65
|
+
},
|
66
|
+
'debian9-64' => {
|
67
|
+
'platform' => 'debian-9-amd64',
|
68
|
+
'template' => 'debian-9-x86_64'
|
69
|
+
},
|
70
|
+
'oracle5-32' => {
|
71
|
+
'platform' => 'el-5-i386',
|
72
|
+
'template' => 'oracle-5-i386'
|
73
|
+
},
|
74
|
+
'oracle5-64' => {
|
75
|
+
'platform' => 'el-5-x86_64',
|
76
|
+
'template' => 'oracle-5-x86_64'
|
77
|
+
},
|
78
|
+
'oracle6-32' => {
|
79
|
+
'platform' => 'el-6-i386',
|
80
|
+
'template' => 'oracle-6-i386'
|
81
|
+
},
|
82
|
+
'oracle6-64' => {
|
83
|
+
'platform' => 'el-6-x86_64',
|
84
|
+
'template' => 'oracle-6-x86_64'
|
85
|
+
},
|
86
|
+
'oracle7-64' => {
|
87
|
+
'platform' => 'el-7-x86_64',
|
88
|
+
'template' => 'oracle-7-x86_64'
|
89
|
+
},
|
90
|
+
'osx109-64' => {
|
91
|
+
'platform' => 'osx-10.9-x86_64',
|
92
|
+
'template' => 'osx-109-x86_64'
|
93
|
+
},
|
94
|
+
'osx1010-64' => {
|
95
|
+
'platform' => 'osx-10.10-x86_64',
|
96
|
+
'template' => 'osx-1010-x86_64'
|
97
|
+
},
|
98
|
+
'osx1011-64' => {
|
99
|
+
'platform' => 'osx-10.11-x86_64',
|
100
|
+
'template' => 'osx-1011-x86_64'
|
101
|
+
},
|
102
|
+
'redhat4-32' => {
|
103
|
+
'platform' => 'el-4-i386',
|
104
|
+
'template' => 'redhat-4-i386'
|
105
|
+
},
|
106
|
+
'redhat4-64' => {
|
107
|
+
'platform' => 'el-4-x86_64',
|
108
|
+
'template' => 'redhat-4-x86_64'
|
109
|
+
},
|
110
|
+
'redhat5-32' => {
|
111
|
+
'platform' => 'el-5-i386',
|
112
|
+
'template' => 'redhat-5-i386'
|
113
|
+
},
|
114
|
+
'redhat5-64' => {
|
115
|
+
'platform' => 'el-5-x86_64',
|
116
|
+
'template' => 'redhat-5-x86_64'
|
117
|
+
},
|
118
|
+
'redhat6-32' => {
|
119
|
+
'platform' => 'el-6-i386',
|
120
|
+
'template' => 'redhat-6-i386'
|
121
|
+
},
|
122
|
+
'redhat6-64' => {
|
123
|
+
'platform' => 'el-6-x86_64',
|
124
|
+
'template' => 'redhat-6-x86_64'
|
125
|
+
},
|
126
|
+
'redhat7-64' => {
|
127
|
+
'platform' => 'el-7-x86_64',
|
128
|
+
'template' => 'redhat-7-x86_64'
|
129
|
+
},
|
130
|
+
'fedora14-32' => {
|
131
|
+
'platform' => 'fedora-14-i386',
|
132
|
+
'template' => 'fedora-14-i386'
|
133
|
+
},
|
134
|
+
'fedora19-32' => {
|
135
|
+
'platform' => 'fedora-19-i386',
|
136
|
+
'template' => 'fedora-19-i386'
|
137
|
+
},
|
138
|
+
'fedora19-64' => {
|
139
|
+
'platform' => 'fedora-19-x86_64',
|
140
|
+
'template' => 'fedora-19-x86_64'
|
141
|
+
},
|
142
|
+
'fedora20-32' => {
|
143
|
+
'platform' => 'fedora-20-i386',
|
144
|
+
'template' => 'fedora-20-i386'
|
145
|
+
},
|
146
|
+
'fedora20-64' => {
|
147
|
+
'platform' => 'fedora-20-x86_64',
|
148
|
+
'template' => 'fedora-20-x86_64'
|
149
|
+
},
|
150
|
+
'fedora21-32' => {
|
151
|
+
'platform' => 'fedora-21-i386',
|
152
|
+
'template' => 'fedora-21-i386'
|
153
|
+
},
|
154
|
+
'fedora21-64' => {
|
155
|
+
'platform' => 'fedora-21-x86_64',
|
156
|
+
'template' => 'fedora-21-x86_64'
|
157
|
+
},
|
158
|
+
'fedora22-32' => {
|
159
|
+
'platform' => 'fedora-22-i386',
|
160
|
+
'template' => 'fedora-22-i386'
|
161
|
+
},
|
162
|
+
'fedora22-64' => {
|
163
|
+
'platform' => 'fedora-22-x86_64',
|
164
|
+
'template' => 'fedora-22-x86_64'
|
165
|
+
},
|
166
|
+
'fedora23-32' => {
|
167
|
+
'platform' => 'fedora-23-i386',
|
168
|
+
'template' => 'fedora-23-i386'
|
169
|
+
},
|
170
|
+
'fedora23-64' => {
|
171
|
+
'platform' => 'fedora-23-x86_64',
|
172
|
+
'template' => 'fedora-23-x86_64'
|
173
|
+
},
|
174
|
+
'opensuse11-32' => {
|
175
|
+
'platform' => 'opensuse-11-i386',
|
176
|
+
'template' => 'opensuse-11-i386'
|
177
|
+
},
|
178
|
+
'opensuse11-64' => {
|
179
|
+
'platform' => 'opensuse-11-x86_64',
|
180
|
+
'template' => 'opensuse-11-x86_64'
|
181
|
+
},
|
182
|
+
'scientific5-32' => {
|
183
|
+
'platform' => 'el-5-i386',
|
184
|
+
'template' => 'scientific-5-i386'
|
185
|
+
},
|
186
|
+
'scientific5-64' => {
|
187
|
+
'platform' => 'el-5-x86_64',
|
188
|
+
'template' => 'scientific-5-x86_64'
|
189
|
+
},
|
190
|
+
'scientific6-32' => {
|
191
|
+
'platform' => 'el-6-i386',
|
192
|
+
'template' => 'scientific-6-i386'
|
193
|
+
},
|
194
|
+
'scientific6-64' => {
|
195
|
+
'platform' => 'el-6-x86_64',
|
196
|
+
'template' => 'scientific-6-x86_64'
|
197
|
+
},
|
198
|
+
'scientific7-64' => {
|
199
|
+
'platform' => 'el-7-x86_64',
|
200
|
+
'template' => 'scientific-7-x86_64'
|
201
|
+
},
|
202
|
+
'sles10-32' => {
|
203
|
+
'platform' => 'sles-10-i386',
|
204
|
+
'template' => 'sles-10-i386'
|
205
|
+
},
|
206
|
+
'sles10-64' => {
|
207
|
+
'platform' => 'sles-10-x86_64',
|
208
|
+
'template' => 'sles-10-x86_64'
|
209
|
+
},
|
210
|
+
'sles11-32' => {
|
211
|
+
'platform' => 'sles-11-i386',
|
212
|
+
'template' => 'sles-11-i386'
|
213
|
+
},
|
214
|
+
'sles11-64' => {
|
215
|
+
'platform' => 'sles-11-x86_64',
|
216
|
+
'template' => 'sles-11-x86_64'
|
217
|
+
},
|
218
|
+
'sles12-64' => {
|
219
|
+
'platform' => 'sles-12-x86_64',
|
220
|
+
'template' => 'sles-12-x86_64'
|
221
|
+
},
|
222
|
+
'solaris10-32' => {
|
223
|
+
'platform' => 'solaris-10-i386',
|
224
|
+
'template' => 'solaris-10-x86_64'
|
225
|
+
},
|
226
|
+
'solaris10-64' => {
|
227
|
+
'platform' => 'solaris-10-i386',
|
228
|
+
'template' => 'solaris-10-x86_64'
|
229
|
+
},
|
230
|
+
'solaris11-32' => {
|
231
|
+
'platform' => 'solaris-11-i386',
|
232
|
+
'template' => 'solaris-11-x86_64'
|
233
|
+
},
|
234
|
+
'solaris11-64' => {
|
235
|
+
'platform' => 'solaris-11-i386',
|
236
|
+
'template' => 'solaris-11-x86_64'
|
237
|
+
},
|
238
|
+
'solaris112-32' => {
|
239
|
+
'platform' => 'solaris-11.2-i386',
|
240
|
+
'template' => 'solaris-112-x86_64'
|
241
|
+
},
|
242
|
+
'solaris112-64' => {
|
243
|
+
'platform' => 'solaris-11.2-i386',
|
244
|
+
'template' => 'solaris-112-x86_64'
|
245
|
+
},
|
246
|
+
'ubuntu1004-32' => {
|
247
|
+
'platform' => 'ubuntu-10.04-i386',
|
248
|
+
'template' => 'ubuntu-1004-i386'
|
249
|
+
},
|
250
|
+
'ubuntu1004-64' => {
|
251
|
+
'platform' => 'ubuntu-10.04-amd64',
|
252
|
+
'template' => 'ubuntu-1004-x86_64'
|
253
|
+
},
|
254
|
+
'ubuntu1204-32' => {
|
255
|
+
'platform' => 'ubuntu-12.04-i386',
|
256
|
+
'template' => 'ubuntu-1204-i386'
|
257
|
+
},
|
258
|
+
'ubuntu1204-64' => {
|
259
|
+
'platform' => 'ubuntu-12.04-amd64',
|
260
|
+
'template' => 'ubuntu-1204-x86_64'
|
261
|
+
},
|
262
|
+
'ubuntu1404-32' => {
|
263
|
+
'platform' => 'ubuntu-14.04-i386',
|
264
|
+
'template' => 'ubuntu-1404-i386'
|
265
|
+
},
|
266
|
+
'ubuntu1404-64' => {
|
267
|
+
'platform' => 'ubuntu-14.04-amd64',
|
268
|
+
'template' => 'ubuntu-1404-x86_64'
|
269
|
+
},
|
270
|
+
'ubuntu1504-32' => {
|
271
|
+
'platform' => 'ubuntu-15.04-i386',
|
272
|
+
'template' => 'ubuntu-1504-i386'
|
273
|
+
},
|
274
|
+
'ubuntu1504-64' => {
|
275
|
+
'platform' => 'ubuntu-15.04-amd64',
|
276
|
+
'template' => 'ubuntu-1504-x86_64'
|
277
|
+
},
|
278
|
+
'ubuntu1510-32' => {
|
279
|
+
'platform' => 'ubuntu-15.10-i386',
|
280
|
+
'template' => 'ubuntu-1510-i386'
|
281
|
+
},
|
282
|
+
'ubuntu1510-64' => {
|
283
|
+
'platform' => 'ubuntu-15.10-amd64',
|
284
|
+
'template' => 'ubuntu-1510-x86_64'
|
285
|
+
},
|
286
|
+
'windows2003-64' => {
|
287
|
+
'platform' => 'windows-2003-64',
|
288
|
+
'template' => 'win-2003-x86_64',
|
289
|
+
'ruby_arch' => 'x64'
|
290
|
+
},
|
291
|
+
'windows2003-6432' => {
|
292
|
+
'platform' => 'windows-2003-64',
|
293
|
+
'template' => 'win-2003-x86_64',
|
294
|
+
'ruby_arch' => 'x86'
|
295
|
+
},
|
296
|
+
'windows2003r2-32' => {
|
297
|
+
'platform' => 'windows-2003r2-32',
|
298
|
+
'template' => 'win-2003r2-i386',
|
299
|
+
'ruby_arch' => 'x86'
|
300
|
+
},
|
301
|
+
'windows2003r2-64' => {
|
302
|
+
'platform' => 'windows-2003r2-64',
|
303
|
+
'template' => 'win-2003r2-x86_64',
|
304
|
+
'ruby_arch' => 'x64'
|
305
|
+
},
|
306
|
+
'windows2003r2-6432' => {
|
307
|
+
'platform' => 'windows-2003r2-64',
|
308
|
+
'template' => 'win-2003r2-x86_64',
|
309
|
+
'ruby_arch' => 'x86'
|
310
|
+
},
|
311
|
+
'windows2008-64' => {
|
312
|
+
'platform' => 'windows-2008-64',
|
313
|
+
'template' => 'win-2008-x86_64',
|
314
|
+
'ruby_arch' => 'x64'
|
315
|
+
},
|
316
|
+
'windows2008-6432' => {
|
317
|
+
'platform' => 'windows-2008-64',
|
318
|
+
'template' => 'win-2008-x86_64',
|
319
|
+
'ruby_arch' => 'x86'
|
320
|
+
},
|
321
|
+
'windows2008r2-64' => {
|
322
|
+
'platform' => 'windows-2008r2-64',
|
323
|
+
'template' => 'win-2008r2-x86_64',
|
324
|
+
'ruby_arch' => 'x64'
|
325
|
+
},
|
326
|
+
'windows2008r2-6432' => {
|
327
|
+
'platform' => 'windows-2008r2-64',
|
328
|
+
'template' => 'win-2008r2-x86_64',
|
329
|
+
'ruby_arch' => 'x86'
|
330
|
+
},
|
331
|
+
'windows2012-64' => {
|
332
|
+
'platform' => 'windows-2012-64',
|
333
|
+
'template' => 'win-2012-x86_64',
|
334
|
+
'ruby_arch' => 'x64'
|
335
|
+
},
|
336
|
+
'windows2012-6432' => {
|
337
|
+
'platform' => 'windows-2012-64',
|
338
|
+
'template' => 'win-2012-x86_64',
|
339
|
+
'ruby_arch' => 'x86'
|
340
|
+
},
|
341
|
+
'windows2012r2-64' => {
|
342
|
+
'platform' => 'windows-2012r2-64',
|
343
|
+
'template' => 'win-2012r2-x86_64',
|
344
|
+
'ruby_arch' => 'x64'
|
345
|
+
},
|
346
|
+
'windows2012r2-6432' => {
|
347
|
+
'platform' => 'windows-2012r2-64',
|
348
|
+
'template' => 'win-2012r2-x86_64',
|
349
|
+
'ruby_arch' => 'x86'
|
350
|
+
},
|
351
|
+
'windows7-64' => {
|
352
|
+
'platform' => 'windows-7-64',
|
353
|
+
'template' => 'win-7-x86_64',
|
354
|
+
'ruby_arch' => 'x64'
|
355
|
+
},
|
356
|
+
'windows8-64' => {
|
357
|
+
'platform' => 'windows-8-64',
|
358
|
+
'template' => 'win-8-x86_64',
|
359
|
+
'ruby_arch' => 'x64'
|
360
|
+
},
|
361
|
+
'windows81-64' => {
|
362
|
+
'platform' => 'windows-8.1-64',
|
363
|
+
'template' => 'win-81-x86_64',
|
364
|
+
'ruby_arch' => 'x64'
|
365
|
+
},
|
366
|
+
'windowsvista-64' => {
|
367
|
+
'platform' => 'windows-vista-64',
|
368
|
+
'template' => 'win-vista-x86_64',
|
369
|
+
'ruby_arch' => 'x64'
|
370
|
+
},
|
371
|
+
'windows10ent-32' => {
|
372
|
+
'platform' => 'windows-10ent-32',
|
373
|
+
'template' => 'win-10-ent-i386',
|
374
|
+
'ruby_arch' => 'x86'
|
375
|
+
},
|
376
|
+
'windows10ent-64' => {
|
377
|
+
'platform' => 'windows-10ent-x86_64',
|
378
|
+
'template' => 'win-10-ent-x86_64',
|
379
|
+
'ruby_arch' => 'x64'
|
380
|
+
},
|
381
|
+
'windows10pro-64' => {
|
382
|
+
'platform' => 'windows-10pro-x86_64',
|
383
|
+
'template' => 'win-10-pro-x86_64',
|
384
|
+
'ruby_arch' => 'x64'
|
385
|
+
},
|
386
|
+
}
|
387
|
+
|
388
|
+
VMPOOLER_CONFIG = {
|
389
|
+
'HOSTS' => {},
|
390
|
+
'CONFIG' => {
|
391
|
+
'pooling_api' => 'http://vmpooler.delivery.puppetlabs.net/'
|
392
|
+
}
|
393
|
+
}
|
394
|
+
|
395
|
+
end
|
396
|
+
end
|
397
|
+
end
|