vagrant-puppet-install 2.7.0 → 3.0.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 +4 -4
- data/.travis.yml +1 -2
- data/Gemfile +4 -4
- data/README.md +13 -5
- data/lib/vagrant-puppet-install/action/install_puppet.rb +5 -1
- data/lib/vagrant-puppet-install/config.rb +5 -2
- data/lib/vagrant-puppet-install/plugin.rb +25 -4
- data/lib/vagrant-puppet-install/version.rb +2 -2
- data/locales/en.yml +3 -0
- data/test/acceptance/virtualbox/Vagrantfile +19 -4
- data/test/unit/vagrant-puppet-install/config_spec.rb +4 -0
- data/test/unit/vagrant-puppet-install/plugin_spec.rb +82 -0
- metadata +20 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6f07f33f3b11dddced68140c3699678635861ce
|
4
|
+
data.tar.gz: 2cc0a91c05b3a58b85c5bef1ddb8f61746db77c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73810232072cc4e09263f8960391b647b55da24aa985c69a58392811efa1a4d9a77d46fd0d9df9f9bab3ba89c4ecd35c2aa90864e76b89ec79b20aaa1f34d94a
|
7
|
+
data.tar.gz: 23b663ff0a03b9b1fddce08498c0c0177c75fabecbb7557c1994cc65aea417ff734bda8af0e8c7643bafb942fd8b826d988eb1b1b5b6cca12dd08b22c3b6a26f
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -6,7 +6,7 @@ group :development do
|
|
6
6
|
# We depend on Vagrant for development, but we don't add it as a
|
7
7
|
# gem dependency because we expect to be installed within the
|
8
8
|
# Vagrant environment itself using `vagrant plugin`.
|
9
|
-
gem 'vagrant', git: 'git://github.com/mitchellh/vagrant.git',
|
9
|
+
gem 'vagrant', git: 'git://github.com/mitchellh/vagrant.git', tag: 'v1.7.4'
|
10
10
|
end
|
11
11
|
|
12
12
|
group :acceptance do
|
@@ -16,7 +16,7 @@ group :acceptance do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
group :docs do
|
19
|
-
gem
|
20
|
-
gem
|
21
|
-
gem
|
19
|
+
gem 'yard', '~> 0.8.5'
|
20
|
+
gem 'redcarpet', '~> 2.2.2'
|
21
|
+
gem 'github-markup', '~> 0.7.5'
|
22
22
|
end
|
data/README.md
CHANGED
@@ -1,9 +1,15 @@
|
|
1
1
|
# vagrant-puppet-install
|
2
2
|
|
3
|
-
[][gem]
|
4
|
+
[][travis]
|
5
|
+
[][gemnasium]
|
6
|
+
[][codeclimate]
|
7
|
+
|
8
|
+
[gem]: https://rubygems.org/gems/vagrant-puppet-install
|
9
|
+
[travis]: http://travis-ci.org/petems/vagrant-puppet-install
|
10
|
+
[gemnasium]: https://gemnasium.com/petems/vagrant-puppet-install
|
11
|
+
[codeclimate]: https://codeclimate.com/github/petems/vagrant-puppet-install
|
12
|
+
|
7
13
|
|
8
14
|
A Vagrant plugin that ensures the desired version of Puppet is installed via the
|
9
15
|
Puppet Labs package repo. This proves very useful when using Vagrant
|
@@ -35,7 +41,9 @@ $ vagrant plugin install vagrant-puppet-install
|
|
35
41
|
The Puppet Install Vagrant plugin automatically hooks into the Vagrant provisioning
|
36
42
|
middleware. You specify the version of the `puppet-common` package you want
|
37
43
|
installed using the `puppet_install.puppet_version` config key. The version string
|
38
|
-
should be a valid Puppet release (ie. `2.7.11`, `3.
|
44
|
+
should be a valid Puppet release (ie. `2.7.11`, `3.7.4`, etc.).
|
45
|
+
|
46
|
+
The Puppet version is validated against the RubyGems API, so you can use gem syntax to give a [pessimistic version constraint](http://guides.rubygems.org/patterns/#pessimistic-version-constraint) such as `~> 2.7` which will return the latest version of the 2.7.*.
|
39
47
|
|
40
48
|
Install the latest version of Puppet:
|
41
49
|
|
@@ -62,7 +62,11 @@ module VagrantPlugins
|
|
62
62
|
if windows_guest?
|
63
63
|
# No Windows Version yet
|
64
64
|
else
|
65
|
-
'
|
65
|
+
if ( @machine.config.puppet_install.puppet_version == 'latest' || @machine.config.puppet_install.puppet_version.match(/^4\..+/) )
|
66
|
+
'https://raw.githubusercontent.com/petems/puppet-install-shell/master/install_puppet_agent.sh'
|
67
|
+
else
|
68
|
+
'https://raw.githubusercontent.com/petems/puppet-install-shell/master/install_puppet.sh'
|
69
|
+
end
|
66
70
|
end
|
67
71
|
end
|
68
72
|
|
@@ -19,6 +19,9 @@ module VagrantPlugins
|
|
19
19
|
elsif @puppet_version.to_s == 'latest'
|
20
20
|
# resolve `latest` to a real version
|
21
21
|
@puppet_version = retrieve_latest_puppet_version
|
22
|
+
elsif valid_puppet_version?(puppet_version)
|
23
|
+
# allows for pessimistic version constraint
|
24
|
+
@puppet_version = retrieve_latest_puppet_version(puppet_version)
|
22
25
|
end
|
23
26
|
@install_url = nil if @install_url == UNSET_VALUE
|
24
27
|
end
|
@@ -48,9 +51,9 @@ A list of valid versions can be found at: http://docs.puppetlabs.com/release_not
|
|
48
51
|
private
|
49
52
|
|
50
53
|
# Query RubyGems.org's Ruby API and retrive the latest version of Puppet.
|
51
|
-
def retrieve_latest_puppet_version
|
54
|
+
def retrieve_latest_puppet_version(version = nil)
|
52
55
|
available_gems =
|
53
|
-
dependency_installer.find_gems_with_sources(puppet_gem_dependency)
|
56
|
+
dependency_installer.find_gems_with_sources(puppet_gem_dependency(version))
|
54
57
|
spec, _source =
|
55
58
|
if available_gems.respond_to?(:last)
|
56
59
|
# DependencyInstaller sorts the results such that the last one is
|
@@ -1,7 +1,3 @@
|
|
1
|
-
if Vagrant::VERSION < '1.1.0'
|
2
|
-
fail 'The Vagrant Puppet Install plugin is only compatible with Vagrant 1.1+'
|
3
|
-
end
|
4
|
-
|
5
1
|
module VagrantPlugins
|
6
2
|
module PuppetInstall
|
7
3
|
class Plugin < Vagrant.plugin('2')
|
@@ -11,6 +7,31 @@ module VagrantPlugins
|
|
11
7
|
via the Puppet Labs package repos.
|
12
8
|
DESC
|
13
9
|
|
10
|
+
VAGRANT_VERSION_REQUIREMENT = '>= 1.1.0'
|
11
|
+
|
12
|
+
# Returns true if the Vagrant version fulfills the requirements
|
13
|
+
#
|
14
|
+
# @param requirements [String, Array<String>] the version requirement
|
15
|
+
# @return [Boolean]
|
16
|
+
def self.check_vagrant_version(*requirements)
|
17
|
+
Gem::Requirement.new(*requirements).satisfied_by?(
|
18
|
+
Gem::Version.new(Vagrant::VERSION))
|
19
|
+
end
|
20
|
+
|
21
|
+
# Verifies that the Vagrant version fulfills the requirements
|
22
|
+
#
|
23
|
+
# @raise [VagrantPlugins::ProxyConf::VagrantVersionError] if this plugin
|
24
|
+
# is incompatible with the Vagrant version
|
25
|
+
def self.check_vagrant_version!
|
26
|
+
unless check_vagrant_version(VAGRANT_VERSION_REQUIREMENT)
|
27
|
+
msg = I18n.t(
|
28
|
+
'vagrant-puppet_install.errors.vagrant_version',
|
29
|
+
requirement: VAGRANT_VERSION_REQUIREMENT.inspect)
|
30
|
+
$stderr.puts msg
|
31
|
+
fail msg
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
14
35
|
action_hook(:install_puppet, Plugin::ALL_ACTIONS) do |hook|
|
15
36
|
require_relative 'action/install_puppet'
|
16
37
|
hook.after(Vagrant::Action::Builtin::Provision, Action::InstallPuppet)
|
data/locales/en.yml
CHANGED
@@ -9,7 +9,7 @@ Vagrant.configure("2") do |config|
|
|
9
9
|
config.vm.define :ubuntu do |ubuntu|
|
10
10
|
ubuntu.puppet_install.puppet_version = '3.6.1'
|
11
11
|
|
12
|
-
ubuntu.vm.box = "
|
12
|
+
ubuntu.vm.box = "puppetlabs/ubuntu-12.04-64-nocm"
|
13
13
|
|
14
14
|
ubuntu.vm.provision :puppet do |puppet|
|
15
15
|
puppet.manifests_path = File.expand_path('../../../support/manifests', __FILE__)
|
@@ -20,9 +20,24 @@ Vagrant.configure("2") do |config|
|
|
20
20
|
|
21
21
|
end
|
22
22
|
|
23
|
+
config.vm.define :gh6 do |gh6|
|
24
|
+
gh6.puppet_install.puppet_version = '2.7.23'
|
25
|
+
|
26
|
+
gh6.vm.box = "puppetlabs/ubuntu-12.04-64-nocm"
|
27
|
+
gh6.vm.provision "shell", inline: "puppet --version"
|
28
|
+
|
29
|
+
gh6.vm.provision :puppet do |puppet|
|
30
|
+
puppet.manifests_path = File.expand_path('../../../support/manifests', __FILE__)
|
31
|
+
puppet.manifest_file = "base.pp"
|
32
|
+
end
|
33
|
+
|
34
|
+
gh6.vm.provision "shell", inline: "puppet --version"
|
35
|
+
|
36
|
+
end
|
37
|
+
|
23
38
|
config.vm.define :centos do |centos|
|
24
39
|
centos.puppet_install.puppet_version = :latest
|
25
|
-
centos.vm.box = "
|
40
|
+
centos.vm.box = "puppetlabs/centos-6.6-64-nocm"
|
26
41
|
|
27
42
|
centos.vm.provision :puppet do |puppet|
|
28
43
|
puppet.manifests_path = File.expand_path('../../../support/manifests', __FILE__)
|
@@ -36,7 +51,7 @@ Vagrant.configure("2") do |config|
|
|
36
51
|
config.vm.define :new_install_url do |new_install_url|
|
37
52
|
new_install_url.puppet_install.puppet_version = :latest
|
38
53
|
new_install_url.puppet_install.install_url = 'https://raw.githubusercontent.com/hashicorp/puppet-bootstrap/master/centos_6_x.sh'
|
39
|
-
new_install_url.vm.box = "
|
54
|
+
new_install_url.vm.box = "puppetlabs/centos-6.6-64-nocm"
|
40
55
|
|
41
56
|
new_install_url.vm.provision :puppet do |puppet|
|
42
57
|
puppet.manifests_path = File.expand_path('../../../support/manifests', __FILE__)
|
@@ -50,7 +65,7 @@ Vagrant.configure("2") do |config|
|
|
50
65
|
config.vm.define :new_install_path do |new_install_path|
|
51
66
|
new_install_path.puppet_install.puppet_version = :latest
|
52
67
|
new_install_path.puppet_install.install_url = File.expand_path('../../support/puppet_install_script/shell_install.sh')
|
53
|
-
new_install_path.vm.box = "
|
68
|
+
new_install_path.vm.box = "puppetlabs/centos-6.6-64-nocm"
|
54
69
|
|
55
70
|
new_install_path.vm.provision :puppet do |puppet|
|
56
71
|
puppet.manifests_path = File.expand_path('../../../support/manifests', __FILE__)
|
@@ -36,6 +36,10 @@ describe VagrantPlugins::PuppetInstall::Config do
|
|
36
36
|
description: 'valid puppet version string',
|
37
37
|
valid: true
|
38
38
|
},
|
39
|
+
'~> 2.7' => {
|
40
|
+
description: 'valid puppet version string',
|
41
|
+
valid: true
|
42
|
+
},
|
39
43
|
'9.9.9' => {
|
40
44
|
description: 'invalid puppet version string',
|
41
45
|
valid: false
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
describe VagrantPlugins::PuppetInstall::Plugin do
|
4
|
+
|
5
|
+
context 'action hooks' do
|
6
|
+
let(:hook) { double(append: true, prepend: true) }
|
7
|
+
let(:fake_class) { Class.new }
|
8
|
+
|
9
|
+
it 'should hook InstallPuppet before Provision' do
|
10
|
+
stub_const('VagrantPlugins::PuppetInstall::Action::InstallPuppet', fake_class)
|
11
|
+
hook_proc = described_class.components.action_hooks[:__all_actions__][0]
|
12
|
+
hook = double
|
13
|
+
expect(hook).to receive(:after).with(Vagrant::Action::Builtin::Provision, VagrantPlugins::PuppetInstall::Action::InstallPuppet)
|
14
|
+
hook_proc.call(hook)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should define a config of type :puppet' do
|
19
|
+
default_config = described_class.components.configs[:top].to_hash[:"puppet_install"]
|
20
|
+
expect(default_config).to be(VagrantPlugins::PuppetInstall::Config)
|
21
|
+
end
|
22
|
+
|
23
|
+
describe '.check_vagrant_version' do
|
24
|
+
before :each do
|
25
|
+
stub_const('Vagrant::VERSION', '1.2.3')
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'accepts single String argument' do
|
29
|
+
expect(described_class.check_vagrant_version('~> 1.1')).to be_true
|
30
|
+
expect(described_class.check_vagrant_version('1.2')).to be_false
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'accepts an Array argument' do
|
34
|
+
expect(described_class.check_vagrant_version(['>= 1.1', '< 1.3.0.beta'])).to be_true
|
35
|
+
expect(described_class.check_vagrant_version(['>= 1.3'])).to be_false
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'accepts multiple arguments' do
|
39
|
+
expect(described_class.check_vagrant_version('>= 1.0', '<= 1.3')).to be_true
|
40
|
+
expect(described_class.check_vagrant_version('~> 1.2', '>= 1.2.5')).to be_false
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe '.check_vagrant_version!' do
|
45
|
+
subject { described_class.check_vagrant_version! }
|
46
|
+
let(:requirement) { '>= 1.1.0' }
|
47
|
+
let(:err_msg) { /requires Vagrant version #{Regexp.escape(requirement.inspect)}/ }
|
48
|
+
|
49
|
+
before :each do
|
50
|
+
stub_const(
|
51
|
+
'VagrantPlugins::ProxyConf::Plugin::VAGRANT_VERSION_REQUIREMENT',
|
52
|
+
requirement)
|
53
|
+
stub_const('Vagrant::VERSION', vagrant_version)
|
54
|
+
$stderr.stub(:puts)
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'on too old Vagrant version' do
|
58
|
+
let(:vagrant_version) { '1.0.9' }
|
59
|
+
it 'raises error' do
|
60
|
+
expect { subject }.to raise_error(err_msg)
|
61
|
+
end
|
62
|
+
it 'warns as stderr' do
|
63
|
+
$stderr.should_receive(:puts).with(err_msg)
|
64
|
+
expect { subject }.to raise_error(err_msg)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context 'on exact required Vagrant version' do
|
69
|
+
let(:vagrant_version) { '1.1.0' }
|
70
|
+
it 'does not raise' do
|
71
|
+
expect { subject }.not_to raise_error
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context 'on newer Vagrant version' do
|
76
|
+
let(:vagrant_version) { '1.3.5' }
|
77
|
+
it 'does not raise' do
|
78
|
+
expect { subject }.not_to raise_error
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-puppet-install
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seth Chisamore
|
@@ -10,62 +10,62 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2015-12-15 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- - ~>
|
19
|
+
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '1.3'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- - ~>
|
26
|
+
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: '1.3'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: rake
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- - ~>
|
33
|
+
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
35
|
version: 10.1.1
|
36
36
|
type: :development
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
|
-
- - ~>
|
40
|
+
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: 10.1.1
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: rspec
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - ~>
|
47
|
+
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: 2.14.1
|
50
50
|
type: :development
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
|
-
- - ~>
|
54
|
+
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: 2.14.1
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: rubocop
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- - ~>
|
61
|
+
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: 0.17.0
|
64
64
|
type: :development
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- - ~>
|
68
|
+
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: 0.17.0
|
71
71
|
description: A Vagrant plugin that ensures the desired version of Puppet is installed
|
@@ -78,11 +78,11 @@ executables: []
|
|
78
78
|
extensions: []
|
79
79
|
extra_rdoc_files: []
|
80
80
|
files:
|
81
|
-
- .gitignore
|
82
|
-
- .rspec
|
83
|
-
- .rubocop.yml
|
84
|
-
- .travis.yml
|
85
|
-
- .yardopts
|
81
|
+
- ".gitignore"
|
82
|
+
- ".rspec"
|
83
|
+
- ".rubocop.yml"
|
84
|
+
- ".travis.yml"
|
85
|
+
- ".yardopts"
|
86
86
|
- CHANGELOG.md
|
87
87
|
- Gemfile
|
88
88
|
- LICENSE
|
@@ -102,6 +102,7 @@ files:
|
|
102
102
|
- test/support/puppet_install_script/shell_install.sh
|
103
103
|
- test/unit/spec_helper.rb
|
104
104
|
- test/unit/vagrant-puppet-install/config_spec.rb
|
105
|
+
- test/unit/vagrant-puppet-install/plugin_spec.rb
|
105
106
|
- vagrant-puppet-install.gemspec
|
106
107
|
homepage: https://github.com/patcon/vagrant-puppet-install
|
107
108
|
licenses:
|
@@ -113,17 +114,17 @@ require_paths:
|
|
113
114
|
- lib
|
114
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
115
116
|
requirements:
|
116
|
-
- -
|
117
|
+
- - ">="
|
117
118
|
- !ruby/object:Gem::Version
|
118
119
|
version: '0'
|
119
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
121
|
requirements:
|
121
|
-
- -
|
122
|
+
- - ">="
|
122
123
|
- !ruby/object:Gem::Version
|
123
124
|
version: '0'
|
124
125
|
requirements: []
|
125
126
|
rubyforge_project:
|
126
|
-
rubygems_version: 2.
|
127
|
+
rubygems_version: 2.5.1
|
127
128
|
signing_key:
|
128
129
|
specification_version: 4
|
129
130
|
summary: A Vagrant plugin that ensures the desired version of Puppet is installed
|
@@ -137,4 +138,5 @@ test_files:
|
|
137
138
|
- test/support/puppet_install_script/shell_install.sh
|
138
139
|
- test/unit/spec_helper.rb
|
139
140
|
- test/unit/vagrant-puppet-install/config_spec.rb
|
141
|
+
- test/unit/vagrant-puppet-install/plugin_spec.rb
|
140
142
|
has_rdoc:
|