vagrant-puppet-install 2.7.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 Version](
|
4
|
-
[![Build Status](
|
5
|
-
[![Dependency Status](
|
6
|
-
[![Code Climate](
|
3
|
+
[![Gem Version](http://img.shields.io/gem/v/vagrant-puppet-install.svg)][gem]
|
4
|
+
[![Build Status](http://img.shields.io/travis/petems/vagrant-puppet-install.svg)][travis]
|
5
|
+
[![Dependency Status](http://img.shields.io/gemnasium/petems/vagrant-puppet-install.svg)][gemnasium]
|
6
|
+
[![Code Climate](http://img.shields.io/codeclimate/github/petems/vagrant-puppet-install.svg)][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:
|