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.
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
+ HOSTS:
2
+ ubuntu-server-1404-x64:
3
+ roles:
4
+ - master
5
+ platform: ubuntu-14.04-amd64
6
+ box: puppetlabs/ubuntu-14.04-64-nocm
7
+ box_url: https://vagrantcloud.com/puppetlabs/boxes/ubuntu-14.04-64-nocm
8
+ hypervisor: vagrant
@@ -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
+
@@ -0,0 +1,8 @@
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
+ BeakerHostGenerator::CLI.new.execute!
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,8 @@
1
+ # Load libraries.
2
+
3
+ module BeakerHostGenerator
4
+ require 'beaker-hostgenerator/cli'
5
+ require 'beaker-hostgenerator/data'
6
+ require 'beaker-hostgenerator/util'
7
+ require 'beaker-hostgenerator/generator'
8
+ end
@@ -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