vagrant-pe_build 0.10.4 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/.travis.yml +3 -2
- data/CHANGELOG +18 -0
- data/Gemfile +1 -1
- data/README.markdown +6 -1
- data/acceptance/pe_build/pe_build_cli_spec.rb +46 -0
- data/acceptance/skeletons/pe_build/Vagrantfile +1 -1
- data/lib/pe_build/command.rb +0 -1
- data/lib/pe_build/command/base.rb +4 -1
- data/lib/pe_build/command/copy.rb +1 -1
- data/lib/pe_build/config/pe_bootstrap.rb +18 -0
- data/lib/pe_build/config_builder/pe_bootstrap.rb +7 -0
- data/lib/pe_build/provisioner/pe_bootstrap/answers_file.rb +18 -3
- data/lib/pe_build/provisioner/pe_bootstrap/post_install.rb +6 -0
- data/lib/pe_build/release.rb +1 -1
- data/lib/pe_build/release/3_8.rb +1 -0
- data/lib/pe_build/version.rb +1 -1
- data/spec/unit/config/pe_bootstrap_spec.rb +19 -0
- data/spec/unit/provisioner/pe_bootstrap_answers_spec.rb +66 -0
- data/templates/locales/en.yml +2 -0
- data/vagrant-spec.config.example.rb +1 -0
- metadata +13 -14
- data/acceptance/skeletons/pe_build/agent-3.x.txt.erb +0 -17
- data/lib/pe_build/command/download.rb +0 -10
- data/spec/unit/provisioner/pe_bootstrap_spec.rb +0 -47
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YmM1YTYyZDMyOWYwZGZiYzQyYWM5NGQ2ZWZiODU5NzcxNzRmYjM3Nw==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 60203f10382b8165bd7ed0cb6719bfa64e26f72d
|
4
|
+
data.tar.gz: 523aae2be9317ea18ab6169ba68a098be1f17c65
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
MGM2YzA3YjVhZTM4Yjc3Y2I4OTNkYWI3NDc4ZGMzNzljNjIwN2QxMmQ1ODY3
|
11
|
-
OGVkZmRhMTI2MWM2MDI5OWQwYTc1MDFkZDg2Mzk1YjhkM2U1YmY=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MjZmZmZlNTdmMzA1ZDg1NzQwZTY0Y2NjM2ZjOWRlNWM1ZjM4NDRkNzVjZDhi
|
14
|
-
NTJlZmUyYWVhOGMwNDQ4NDQ3NTBhY2NkODA3MWI3NDdlM2MxZWY4YWNjMWE5
|
15
|
-
ZjY3ZTMzNTdkYWQ0NGIwODRhOTEzZDJjNzc1MzYzYWZlYmRjN2E=
|
6
|
+
metadata.gz: 4b695d95bde3f22905e42215aff2b049c258adbfbd0d42fe5c5fa7e2dea13cb18bef4da860dcf165f301b1794c0537ba1587ef5331c0bc32755d5d004bb5d06e
|
7
|
+
data.tar.gz: 190db868e4a29c6e438fcdc3d8977f44e49b458a4499942451e8375936850ea6d3c4e6c6eea7c26ef4d8dbae4ddeb72b8463c9ea2647d8bc9a31e1f5f13ee9c8
|
data/.travis.yml
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
---
|
2
2
|
language: ruby
|
3
|
+
sudo: false
|
3
4
|
before_install:
|
4
5
|
- gem install bundler --version $BUNDLER_VERSION
|
5
6
|
install: bundle _${BUNDLER_VERSION}_ install --without development
|
@@ -14,5 +15,5 @@ env:
|
|
14
15
|
matrix:
|
15
16
|
- TEST_VAGRANT_VERSION=v1.5.4 BUNDLER_VERSION=1.5.3
|
16
17
|
- TEST_VAGRANT_VERSION=v1.6.5 BUNDLER_VERSION=1.6.9
|
17
|
-
- TEST_VAGRANT_VERSION=v1.7.
|
18
|
-
- TEST_VAGRANT_VERSION=HEAD BUNDLER_VERSION=1.
|
18
|
+
- TEST_VAGRANT_VERSION=v1.7.4 BUNDLER_VERSION=1.10.5
|
19
|
+
- TEST_VAGRANT_VERSION=HEAD BUNDLER_VERSION=1.10.5
|
data/CHANGELOG
CHANGED
@@ -1,6 +1,24 @@
|
|
1
1
|
vagrant-pe_build
|
2
2
|
================
|
3
3
|
|
4
|
+
0.11.0
|
5
|
+
------
|
6
|
+
|
7
|
+
2015-09-08
|
8
|
+
|
9
|
+
This is a feature release that also removes one deprecated command.
|
10
|
+
|
11
|
+
* (GH-66) The `pe_bootstrap` provisioner now has a `answers_extra`
|
12
|
+
configuration option. This option can be set to a list of strings which
|
13
|
+
will be appended to the answer file, one entry per line.
|
14
|
+
|
15
|
+
* (GH-44) Vagrant 1.3.0 prevented any plugin from declaring a command that
|
16
|
+
uses a `--version` flag. The `vagrant pe-build copy` command now uses a
|
17
|
+
flag called `--release` to specify which PE version to download.
|
18
|
+
|
19
|
+
* (GH-35) The deprecated `vagrant pe-build download` command has been
|
20
|
+
removed. Use `vagrant pe-build copy` instead.
|
21
|
+
|
4
22
|
0.10.4
|
5
23
|
------
|
6
24
|
|
data/Gemfile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
ruby '2.0.0' # Required by Vagrant 1.4 and newer.
|
3
3
|
|
4
|
-
ENV['TEST_VAGRANT_VERSION'] ||= 'v1.7.
|
4
|
+
ENV['TEST_VAGRANT_VERSION'] ||= 'v1.7.4'
|
5
5
|
|
6
6
|
# Wrapping gemspec in the :plugins group causes Vagrant 1.5 and newer to
|
7
7
|
# automagically load this plugin during acceptance tests.
|
data/README.markdown
CHANGED
@@ -3,7 +3,7 @@ Vagrant PE build
|
|
3
3
|
|
4
4
|
Download and install Puppet Enterprise with Vagrant.
|
5
5
|
|
6
|
-
[![Build Status](https://travis-ci.org/
|
6
|
+
[![Build Status](https://travis-ci.org/oscar-stack/vagrant-pe_build.svg?branch=master)](https://travis-ci.org/oscar-stack/vagrant-pe_build)
|
7
7
|
|
8
8
|
Synopsis
|
9
9
|
--------
|
@@ -65,6 +65,11 @@ overridden at this point.
|
|
65
65
|
Values can be paths relative to the Vagrantfile's project directory.
|
66
66
|
* Default: The default answer file for the Puppet Enterprise version and
|
67
67
|
role.
|
68
|
+
* `answer_extras`
|
69
|
+
* Description: An array of strings that will be appended to the answer file
|
70
|
+
template, one string per line. This can be used to supply additional
|
71
|
+
answers and override default answers.
|
72
|
+
* Default: An empty array.
|
68
73
|
* `relocate_manifests`
|
69
74
|
* Description: Whether or not to change the PE master to use a config of
|
70
75
|
`manifestdir=/manifests` and `modulepath=/modules`. This is meant to be
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'vagrant-spec/acceptance/output'
|
2
|
+
|
3
|
+
module Vagrant
|
4
|
+
module Spec
|
5
|
+
OutputTester[:no_archives] = lambda do |text|
|
6
|
+
text =~ /No PE versions available/
|
7
|
+
end
|
8
|
+
|
9
|
+
OutputTester[:pe_available] = lambda do |text|
|
10
|
+
text =~ /puppet-enterprise-\d+\.\d\.\d-el-6-x86_64\.tar\.gz/
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
describe 'vagrant CLI: pe-build', component: 'cli/pe-build' do
|
17
|
+
include_context 'acceptance'
|
18
|
+
|
19
|
+
let(:options) { config.providers.values.first }
|
20
|
+
|
21
|
+
let(:webserver_port) { 3838 }
|
22
|
+
let(:webserver_path) { options[:archive_path] }
|
23
|
+
let(:download_url) { "http://localhost:#{webserver_port}" }
|
24
|
+
|
25
|
+
include_context 'webserver'
|
26
|
+
|
27
|
+
before(:each) do
|
28
|
+
environment.skeleton('pe_build')
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'can download archives from remote servers' do
|
32
|
+
result = execute('vagrant', 'pe-build', 'list')
|
33
|
+
expect(result).to exit_with(0)
|
34
|
+
expect(result.stdout).to match_output(:no_archives)
|
35
|
+
|
36
|
+
result = execute('vagrant', 'pe-build', 'copy',
|
37
|
+
"--release=#{options[:pe_latest]}",
|
38
|
+
"#{download_url}/puppet-enterprise-:version-el-6-x86_64.tar.gz")
|
39
|
+
expect(result).to exit_with(0)
|
40
|
+
|
41
|
+
result = execute('vagrant', 'pe-build', 'list')
|
42
|
+
expect(result).to exit_with(0)
|
43
|
+
expect(result.stdout).to match_output(:pe_available)
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
data/lib/pe_build/command.rb
CHANGED
@@ -2,13 +2,16 @@ require 'vagrant'
|
|
2
2
|
|
3
3
|
class PEBuild::Command::Base < Vagrant.plugin(2, :command)
|
4
4
|
|
5
|
+
def self.synopsis
|
6
|
+
'list and download PE installers'
|
7
|
+
end
|
8
|
+
|
5
9
|
def initialize(argv, env)
|
6
10
|
super
|
7
11
|
split_argv
|
8
12
|
|
9
13
|
@subcommands = {
|
10
14
|
'list' => PEBuild::Command::List,
|
11
|
-
'download' => PEBuild::Command::Download,
|
12
15
|
'copy' => PEBuild::Command::Copy,
|
13
16
|
}
|
14
17
|
end
|
@@ -39,7 +39,7 @@ class PEBuild::Command::Copy < Vagrant.plugin(2, :command)
|
|
39
39
|
|
40
40
|
o.separator ''
|
41
41
|
|
42
|
-
o.on('-
|
42
|
+
o.on('-r', '--release=val', String, "The release of PE to fetch") do |val|
|
43
43
|
@options[:version] = val
|
44
44
|
end
|
45
45
|
|
@@ -12,6 +12,12 @@ class PEBuild::Config::PEBootstrap < PEBuild::Config::Global
|
|
12
12
|
# @since 0.1.0
|
13
13
|
attr_accessor :answer_file
|
14
14
|
|
15
|
+
# @!attribute answer_extras
|
16
|
+
# @return [Array<String>] An array of additional answer strings that will
|
17
|
+
# be appended to the answer file. (Optional)
|
18
|
+
# @since 0.11.0
|
19
|
+
attr_accessor :answer_extras
|
20
|
+
|
15
21
|
# @!attribute verbose
|
16
22
|
# @return [TrueClass, FalseClass] if stdout will be displayed when installing
|
17
23
|
# @since 0.1.0
|
@@ -53,6 +59,7 @@ class PEBuild::Config::PEBootstrap < PEBuild::Config::Global
|
|
53
59
|
@verbose = UNSET_VALUE
|
54
60
|
@master = UNSET_VALUE
|
55
61
|
@answer_file = UNSET_VALUE
|
62
|
+
@answer_extras = UNSET_VALUE
|
56
63
|
|
57
64
|
@relocate_manifests = UNSET_VALUE
|
58
65
|
|
@@ -71,6 +78,7 @@ class PEBuild::Config::PEBootstrap < PEBuild::Config::Global
|
|
71
78
|
set_default :@verbose, true
|
72
79
|
set_default :@master, 'master'
|
73
80
|
set_default :@answer_file, nil
|
81
|
+
set_default :@answer_extras, []
|
74
82
|
set_default :@autosign, (@role == :master)
|
75
83
|
|
76
84
|
set_default :@relocate_manifests, false
|
@@ -94,6 +102,7 @@ class PEBuild::Config::PEBootstrap < PEBuild::Config::Global
|
|
94
102
|
validate_verbose(errors, machine)
|
95
103
|
validate_master(errors, machine)
|
96
104
|
validate_answer_file(errors, machine)
|
105
|
+
validate_answer_extras(errors, machine)
|
97
106
|
validate_relocate_manifests(errors, machine)
|
98
107
|
validate_autosign(errors, machine)
|
99
108
|
|
@@ -134,6 +143,15 @@ class PEBuild::Config::PEBootstrap < PEBuild::Config::Global
|
|
134
143
|
end
|
135
144
|
end
|
136
145
|
|
146
|
+
def validate_answer_extras(errors, machine)
|
147
|
+
unless @answer_extras.is_a? Array
|
148
|
+
errors << I18n.t(
|
149
|
+
'pebuild.config.pe_bootstrap.errors.invalid_answer_extras',
|
150
|
+
:class => @answer_extras.class
|
151
|
+
)
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
137
155
|
def validate_relocate_manifests(errors, machine)
|
138
156
|
if @relocate_manifests and not @role == :master
|
139
157
|
errors << "'relocate_manifests' can only be applied to a master"
|
@@ -21,6 +21,12 @@ class PEBuild::ConfigBuilder::PEBootstrap < ::PEBuild::ConfigBuilder::Global
|
|
21
21
|
# directory.
|
22
22
|
def_model_attribute :answer_file
|
23
23
|
|
24
|
+
# @!attribute answer_extras
|
25
|
+
# @return [Array<String>] An array of additional answer strings that will
|
26
|
+
# be appended to the answer file. (Optional)
|
27
|
+
# @since 0.11.0
|
28
|
+
def_model_attribute :answer_extras
|
29
|
+
|
24
30
|
# @!attribute [rw] relocate_manifests
|
25
31
|
# @return [Boolean] Whether or not to change the PE master to use a config
|
26
32
|
# of manifestdir=/manifests and modulepath=/modules. This is meant to be
|
@@ -55,6 +61,7 @@ class PEBuild::ConfigBuilder::PEBootstrap < ::PEBuild::ConfigBuilder::Global
|
|
55
61
|
with_attr(:verbose) { |val| pe.verbose = val }
|
56
62
|
with_attr(:master) { |val| pe.master = val }
|
57
63
|
with_attr(:answer_file) { |val| pe.answer_file = val }
|
64
|
+
with_attr(:answer_extras) { |val| pe.answer_extras = val }
|
58
65
|
with_attr(:relocate_manifests) { |val| pe.relocate_manifests = val }
|
59
66
|
with_attr(:autosign) { |val| pe.autosign = val }
|
60
67
|
end
|
@@ -2,6 +2,12 @@ require 'pe_build/release'
|
|
2
2
|
|
3
3
|
require 'erb'
|
4
4
|
|
5
|
+
# A sub-provisioner which generates answer file content.
|
6
|
+
#
|
7
|
+
# This is an internal provisioner which is invoked by
|
8
|
+
# `PEBuild::Provisioner::PEBootstrap`.
|
9
|
+
#
|
10
|
+
# @api private
|
5
11
|
class PEBuild::Provisioner::PEBootstrap::AnswersFile
|
6
12
|
|
7
13
|
# @param machine [Vagrant::Machine]
|
@@ -26,6 +32,15 @@ class PEBuild::Provisioner::PEBootstrap::AnswersFile
|
|
26
32
|
@output_file.open('w') { |fh| fh.write(render_answers) }
|
27
33
|
end
|
28
34
|
|
35
|
+
def render_answers
|
36
|
+
answer_template = template_data
|
37
|
+
unless @config.answer_extras.empty?
|
38
|
+
answer_template += ("\n" + @config.answer_extras.map {|e| e.to_s}.join("\n") + "\n")
|
39
|
+
end
|
40
|
+
|
41
|
+
ERB.new(answer_template).result(binding)
|
42
|
+
end
|
43
|
+
|
29
44
|
private
|
30
45
|
|
31
46
|
def set_template_path
|
@@ -42,9 +57,9 @@ class PEBuild::Provisioner::PEBootstrap::AnswersFile
|
|
42
57
|
@logger.info "Using #{mode} answers file template #{@template} for #{@machine.inspect}"
|
43
58
|
end
|
44
59
|
|
45
|
-
|
46
|
-
|
47
|
-
|
60
|
+
# Separated for easy stubbing in spec tests.
|
61
|
+
def template_data
|
62
|
+
File.read(@template)
|
48
63
|
end
|
49
64
|
|
50
65
|
def machine_hostname
|
@@ -1,6 +1,12 @@
|
|
1
1
|
require 'pe_build/on_machine'
|
2
2
|
require 'pe_build/util/version_string'
|
3
3
|
|
4
|
+
# A sub-provisioner which applies post-install configuration.
|
5
|
+
#
|
6
|
+
# This is an internal provisioner which is invoked by
|
7
|
+
# `PEBuild::Provisioner::PEBootstrap`.
|
8
|
+
#
|
9
|
+
# @api private
|
4
10
|
class PEBuild::Provisioner::PEBootstrap::PostInstall
|
5
11
|
|
6
12
|
def initialize(machine, config, work_dir)
|
data/lib/pe_build/release.rb
CHANGED
data/lib/pe_build/release/3_8.rb
CHANGED
data/lib/pe_build/version.rb
CHANGED
@@ -15,6 +15,25 @@ describe PEBuild::Config::PEBootstrap do
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
+
describe 'answer_extras' do
|
19
|
+
it 'defaults to an empty Array' do
|
20
|
+
subject.finalize!
|
21
|
+
|
22
|
+
expect(subject.answer_extras).to be_a(Array)
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'when validated with a non-array value' do
|
26
|
+
it 'records an error' do
|
27
|
+
subject.answer_extras = {'' => ''}
|
28
|
+
|
29
|
+
subject.finalize!
|
30
|
+
errors = subject.validate(machine)
|
31
|
+
|
32
|
+
expect(errors['PE Bootstrap'].to_s).to match(/Answer_extras.*got a Hash/)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
18
37
|
# TODO: Spec test the validation functions. Not critical right now since it
|
19
38
|
# is pretty much testing tests. But, having specs is a good way for people to
|
20
39
|
# see precisely _what_ is allowed.
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
require 'pe_build/provisioner/pe_bootstrap'
|
4
|
+
|
5
|
+
describe PEBuild::Provisioner::PEBootstrap::AnswersFile do
|
6
|
+
include_context 'vagrant-unit'
|
7
|
+
|
8
|
+
let(:test_env) do
|
9
|
+
test_env = isolated_environment
|
10
|
+
test_env.vagrantfile <<-EOF
|
11
|
+
Vagrant.configure('2') do |config|
|
12
|
+
config.vm.define :test
|
13
|
+
end
|
14
|
+
EOF
|
15
|
+
|
16
|
+
test_env
|
17
|
+
end
|
18
|
+
let(:env) { test_env.create_vagrant_env }
|
19
|
+
let(:machine) { env.machine(:test, :dummy) }
|
20
|
+
let(:bootstrap_config) { PEBuild::Config::PEBootstrap.new }
|
21
|
+
|
22
|
+
# Mock the communicator to prevent SSH commands from being executed.
|
23
|
+
let(:communicator) { double('communicator') }
|
24
|
+
# Mock the guest operating system.
|
25
|
+
let(:guest) { double('guest') }
|
26
|
+
|
27
|
+
before (:each) do
|
28
|
+
machine.stub(:guest => guest)
|
29
|
+
machine.stub(:communicator => communicator)
|
30
|
+
end
|
31
|
+
|
32
|
+
after(:each) { test_env.close }
|
33
|
+
|
34
|
+
subject do
|
35
|
+
provisioner = described_class.new(machine, bootstrap_config, env.root_path.join(PEBuild::WORK_DIR))
|
36
|
+
provisioner.stub(:template_data) { "original template" }
|
37
|
+
|
38
|
+
provisioner
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
context 'when answer_extras is not configured' do
|
43
|
+
before(:each) do
|
44
|
+
bootstrap_config.version = '3.8.2'
|
45
|
+
|
46
|
+
bootstrap_config.finalize!
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'does not modify the template' do
|
50
|
+
expect(subject.render_answers).to eq("original template")
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context 'when answer_extras is configured' do
|
55
|
+
before(:each) do
|
56
|
+
bootstrap_config.version = '3.8.2'
|
57
|
+
bootstrap_config.answer_extras = ['q_foo=bar', 'q_baz=bim']
|
58
|
+
|
59
|
+
bootstrap_config.finalize!
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'appends answers to the template' do
|
63
|
+
expect(subject.render_answers.lines.last).to eq("q_baz=bim\n")
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
data/templates/locales/en.yml
CHANGED
@@ -58,6 +58,8 @@ en:
|
|
58
58
|
Autosign can only be specified if the pe_bootstrap role is 'master', not %{role}.
|
59
59
|
invalid_autosign_class: |-
|
60
60
|
Autosign must be one of %{autosign_classes}, but was of type %{autosign}.
|
61
|
+
invalid_answer_extras: |-
|
62
|
+
Answer_extras must be an Array, got a %{class}.
|
61
63
|
cap:
|
62
64
|
run_install:
|
63
65
|
already_installed: |-
|
@@ -13,6 +13,7 @@ Vagrant::Spec::Acceptance.configure do |c|
|
|
13
13
|
box: (acceptance_dir + 'artifacts' + 'virtualbox.box').to_s,
|
14
14
|
# This folder should be filled with PE tarballs for CentOS.
|
15
15
|
archive_path: (acceptance_dir + 'artifacts' + 'pe_archives').to_s,
|
16
|
+
pe_latest: '2015.2.0',
|
16
17
|
env_vars: {
|
17
18
|
'VBOX_USER_HOME' => '{{homedir}}',
|
18
19
|
}
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-pe_build
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrien Thebo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: progressbar
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: minitar
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
@@ -83,8 +83,8 @@ files:
|
|
83
83
|
- Rakefile
|
84
84
|
- acceptance/pe_build/pe_bootstrap_3x_spec.rb
|
85
85
|
- acceptance/pe_build/pe_bootstrap_latest_spec.rb
|
86
|
+
- acceptance/pe_build/pe_build_cli_spec.rb
|
86
87
|
- acceptance/skeletons/pe_build/Vagrantfile
|
87
|
-
- acceptance/skeletons/pe_build/agent-3.x.txt.erb
|
88
88
|
- doc/answers/README.markdown
|
89
89
|
- doc/answers/agent.txt
|
90
90
|
- doc/answers/master-1.1.txt
|
@@ -110,7 +110,6 @@ files:
|
|
110
110
|
- lib/pe_build/command.rb
|
111
111
|
- lib/pe_build/command/base.rb
|
112
112
|
- lib/pe_build/command/copy.rb
|
113
|
-
- lib/pe_build/command/download.rb
|
114
113
|
- lib/pe_build/command/list.rb
|
115
114
|
- lib/pe_build/config.rb
|
116
115
|
- lib/pe_build/config/global.rb
|
@@ -155,7 +154,7 @@ files:
|
|
155
154
|
- spec/spec_helper.rb
|
156
155
|
- spec/unit/config/global_spec.rb
|
157
156
|
- spec/unit/config/pe_bootstrap_spec.rb
|
158
|
-
- spec/unit/provisioner/
|
157
|
+
- spec/unit/provisioner/pe_bootstrap_answers_spec.rb
|
159
158
|
- spec/unit/util/config_spec.rb
|
160
159
|
- tasks/acceptance.rake
|
161
160
|
- tasks/spec.rake
|
@@ -180,17 +179,17 @@ require_paths:
|
|
180
179
|
- lib
|
181
180
|
required_ruby_version: !ruby/object:Gem::Requirement
|
182
181
|
requirements:
|
183
|
-
- -
|
182
|
+
- - '>='
|
184
183
|
- !ruby/object:Gem::Version
|
185
184
|
version: '0'
|
186
185
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
186
|
requirements:
|
188
|
-
- -
|
187
|
+
- - '>='
|
189
188
|
- !ruby/object:Gem::Version
|
190
189
|
version: '0'
|
191
190
|
requirements: []
|
192
191
|
rubyforge_project:
|
193
|
-
rubygems_version: 2.
|
192
|
+
rubygems_version: 2.0.14
|
194
193
|
signing_key:
|
195
194
|
specification_version: 4
|
196
195
|
summary: Vagrant provisioner for installing Puppet Enterprise
|
@@ -1,17 +0,0 @@
|
|
1
|
-
q_fail_on_unsuccessful_master_lookup=y
|
2
|
-
q_install=y
|
3
|
-
q_puppet_cloud_install=n
|
4
|
-
q_puppet_enterpriseconsole_install=n
|
5
|
-
q_puppet_symlinks_install=y
|
6
|
-
q_puppetagent_certname=<%= machine_hostname %>
|
7
|
-
q_puppetagent_install=y
|
8
|
-
q_puppetagent_server=<%= @config.master %>
|
9
|
-
q_puppetca_install=n
|
10
|
-
q_puppetdb_hostname=
|
11
|
-
q_puppetdb_install=n
|
12
|
-
q_puppetdb_port=
|
13
|
-
q_puppetmaster_install=n
|
14
|
-
q_vendor_packages_install=y
|
15
|
-
q_continue_or_reenter_master_hostname=c
|
16
|
-
q_verify_packages=y
|
17
|
-
q_fail_on_unsuccessful_master_lookup=n
|
@@ -1,10 +0,0 @@
|
|
1
|
-
require 'pe_build/archive'
|
2
|
-
require 'pe_build/command/copy'
|
3
|
-
|
4
|
-
class PEBuild::Command::Download < Vagrant.plugin(2, :command)
|
5
|
-
|
6
|
-
def execute
|
7
|
-
@env.ui.warn "vagrant pe-build download is deprecated, use vagrant pe-build copy", :prefix => true
|
8
|
-
PEBuild::Command::Copy.new(@argv, @env).execute
|
9
|
-
end
|
10
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
require 'pe_build/provisioner/pe_bootstrap'
|
4
|
-
|
5
|
-
describe PEBuild::Provisioner::PEBootstrap do
|
6
|
-
include_context 'vagrant-unit'
|
7
|
-
|
8
|
-
let(:test_env) do
|
9
|
-
test_env = isolated_environment
|
10
|
-
test_env.vagrantfile <<-EOF
|
11
|
-
Vagrant.configure('2') do |config|
|
12
|
-
config.vm.define :test
|
13
|
-
end
|
14
|
-
EOF
|
15
|
-
|
16
|
-
test_env
|
17
|
-
end
|
18
|
-
let(:env) { test_env.create_vagrant_env }
|
19
|
-
let(:machine) { env.machine(:test, :dummy) }
|
20
|
-
let(:bootstrap_config) { PEBuild::Config::PEBootstrap.new }
|
21
|
-
|
22
|
-
# Mock the communicator to prevent SSH commands for being executed.
|
23
|
-
let(:communicator) { double('communicator') }
|
24
|
-
# Mock the guest operating system.
|
25
|
-
let(:guest) { double('guest') }
|
26
|
-
|
27
|
-
before (:each) do
|
28
|
-
machine.stub(:guest => guest)
|
29
|
-
machine.stub(:communicator => communicator)
|
30
|
-
end
|
31
|
-
|
32
|
-
after(:each) { test_env.close }
|
33
|
-
|
34
|
-
subject(:provisioner) { described_class.new(machine, bootstrap_config) }
|
35
|
-
|
36
|
-
|
37
|
-
describe 'when configured' do
|
38
|
-
context 'and no version is set' do
|
39
|
-
it 'raises an error' do
|
40
|
-
pending 'This is now done in the `provision` method which is difficult to isolate for a test'
|
41
|
-
expect { subject.configure(machine.config) }.to raise_error(
|
42
|
-
PEBuild::Provisioner::PEBootstrap::UnsetVersionError,
|
43
|
-
/version must be set/ )
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|