beaker-hostgenerator 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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