vagrant-hiera 0.3.5 → 0.4.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.
@@ -8,10 +8,10 @@ module VagrantHiera
8
8
  attr_accessor :guest_data_path
9
9
 
10
10
  attr_accessor :puppet_apt_source
11
+ attr_accessor :apt_opts
11
12
  attr_accessor :puppet_version
12
13
  attr_accessor :hiera_puppet_version
13
14
  attr_accessor :hiera_version
14
- attr_accessor :apt_opts
15
15
 
16
16
  def guest_config_path
17
17
  @guest_config_path.nil? ? (@guest_config_path = '/tmp/vagrant-hiera/config') : @guest_config_path
@@ -22,23 +22,23 @@ module VagrantHiera
22
22
  end
23
23
 
24
24
  def puppet_apt_source
25
- @puppet_apt_source.nil? ? (@puppet_apt_source = 'deb http://apt.puppetlabs.com/ lucid devel main') : @puppet_apt_source
25
+ @puppet_apt_source.nil? ? (@puppet_apt_source = 'deb http://apt.puppetlabs.com/ stable main') : @puppet_apt_source
26
+ end
27
+
28
+ def apt_opts
29
+ @apt_opts.nil? ? (@apt_opts = '-y --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"') : @apt_opts
26
30
  end
27
31
 
28
32
  def puppet_version
29
- @puppet_version.nil? ? (@puppet_version = '3.0.0-0.1rc5puppetlabs1') : @puppet_version
33
+ @puppet_version.nil? ? (@puppet_version = '3.0.0-1puppetlabs1') : @puppet_version
30
34
  end
31
35
 
32
36
  def hiera_puppet_version
33
- @hiera_puppet_version.nil? ? (@hiera_puppet_version = '1.0.0-0.1rc3') : @hiera_puppet_version
37
+ @hiera_puppet_version
34
38
  end
35
39
 
36
40
  def hiera_version
37
- @hiera_version.nil? ? (@hiera_version = '1.0.0-0.1rc4') : @hiera_version
38
- end
39
-
40
- def apt_opts
41
- @apt_opts.nil? ? (@apt_opts = '-y --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold"') : @apt_opts
41
+ @hiera_version.nil? ? (@hiera_version = '1.0.0-1puppetlabs2') : @hiera_version
42
42
  end
43
43
 
44
44
  def config_path
@@ -53,15 +53,20 @@ module VagrantHiera
53
53
  config_path || config_file || data_path
54
54
  end
55
55
 
56
+ def install_puppet_heira?
57
+ puppet_version.to_i < 3
58
+ end
59
+
56
60
  def validate(env, errors)
61
+ return unless set?
62
+
57
63
  errors.add("Config path can not be empty.") if config_path.nil?
58
64
  errors.add("Config file can not be empty.") if config_file.nil?
59
65
  errors.add("Data path can not be empty.") if data_path.nil?
60
- errors.add("Puppet apt source can not be empty.") if puppet_apt_source.nil?
61
66
  errors.add("Puppet version path can not be empty.") if puppet_version.nil?
62
- errors.add("Hiera puppet version path can not be empty.") if hiera_puppet_version.nil?
63
- errors.add("Hiera version path can not be empty.") if hiera_version.nil?
64
- errors.add("Apt opts path can not be empty.") if apt_opts.nil?
67
+ errors.add("Puppet apt source can not be empty.") if puppet_apt_source.nil?
68
+ errors.add("Hiera puppet version can not be empty if puppet_version < 3.0.") if install_puppet_heira? && hiera_puppet_version.nil?
69
+ errors.add("Hiera version can not be empty.") if hiera_version.nil?
65
70
  config = File.join("#{config_path}", "#{config_file}")
66
71
  errors.add("Config file not found at '#{config}'.") unless File.exists?(config)
67
72
  errors.add("Data directory not found at '#{data_path}'.") unless File.exists?("#{data_path}")
@@ -2,6 +2,8 @@ module VagrantHiera
2
2
  module Middleware
3
3
 
4
4
  class Setup
5
+ APT_SOURCE_FILE = '/etc/apt/sources.list.d/puppetlabs.list'
6
+
5
7
  def initialize(app, env)
6
8
  @app = app
7
9
  @env = env
@@ -11,11 +13,11 @@ module VagrantHiera
11
13
  @config_path = @env[:vm].config.hiera.config_path
12
14
  @data_path = @env[:vm].config.hiera.data_path
13
15
  @config_file = @env[:vm].config.hiera.config_file
14
- @puppet_apt_source = @env[:vm].config.hiera.puppet_apt_source
15
16
  @puppet_version = @env[:vm].config.hiera.puppet_version
17
+ @puppet_apt_source = @env[:vm].config.hiera.puppet_apt_source
18
+ @apt_opts = @env[:vm].config.hiera.apt_opts
16
19
  @hiera_puppet_version = @env[:vm].config.hiera.hiera_puppet_version
17
20
  @hiera_version = @env[:vm].config.hiera.hiera_version
18
- @apt_opts = @env[:vm].config.hiera.apt_opts
19
21
  end
20
22
 
21
23
  def call(env)
@@ -24,26 +26,18 @@ module VagrantHiera
24
26
  add_apt_repo unless apt_repo_set?
25
27
  install_puppet unless puppet_installed?
26
28
  install_hiera unless hiera_installed?
27
- install_hiera_puppet unless hiera_puppet_installed?
29
+ if @env[:vm].config.hiera.install_puppet_heira?
30
+ install_hiera_puppet unless hiera_puppet_installed?
31
+ end
28
32
  create_shared_folders
29
33
  create_symlink_to_hiera_config
30
34
  end
31
35
  @app.call(env)
32
36
  end
33
37
 
34
- def hiera_installed?
35
- installed = ( @env[:vm].channel.execute("dpkg -l | grep puppet | grep #{@puppet_version}", :error_check => false) == 0 )
36
- @env[:ui].success I18n.t('vagrant.plugins.hiera.middleware.setup.hiera_installed') if installed
37
- installed
38
- end
39
-
40
- def install_hiera
41
- @env[:ui].warn I18n.t('vagrant.plugins.hiera.middleware.setup.install_hiera')
42
- @env[:vm].channel.sudo("apt-get #{@apt_opts} install hiera=#{@hiera_version}")
43
- end
44
-
45
38
  def apt_repo_set?
46
- setup = ( @env[:vm].channel.execute("grep '#{@puppet_apt_source}' /etc/apt/sources.list", :error_check => false) == 0 )
39
+ cmd = "test -f #{APT_SOURCE_FILE} && grep '#{@puppet_apt_source}' #{APT_SOURCE_FILE}"
40
+ setup = ( @env[:vm].channel.execute(cmd, :error_check => false) == 0 )
47
41
  @env[:ui].success I18n.t('vagrant.plugins.hiera.middleware.setup.apt_repo_set') if setup
48
42
  setup
49
43
  end
@@ -52,10 +46,21 @@ module VagrantHiera
52
46
  @env[:ui].warn I18n.t('vagrant.plugins.hiera.middleware.setup.add_apt_repo')
53
47
  @env[:vm].channel.sudo("wget http://apt.puppetlabs.com/puppetlabs-release-stable.deb")
54
48
  @env[:vm].channel.sudo("dpkg -i puppetlabs-release-stable.deb")
55
- @env[:vm].channel.sudo("echo '#{@puppet_apt_source}' >> /etc/apt/sources.list.d/puppet.list")
49
+ @env[:vm].channel.sudo("echo '#{@puppet_apt_source}' >> #{APT_SOURCE_FILE}")
56
50
  @env[:vm].channel.sudo("apt-get update")
57
51
  end
58
52
 
53
+ def hiera_installed?
54
+ installed = ( @env[:vm].channel.execute("dpkg -l | grep puppet | grep #{@puppet_version}", :error_check => false) == 0 )
55
+ @env[:ui].success I18n.t('vagrant.plugins.hiera.middleware.setup.hiera_installed') if installed
56
+ installed
57
+ end
58
+
59
+ def install_hiera
60
+ @env[:ui].warn I18n.t('vagrant.plugins.hiera.middleware.setup.install_hiera')
61
+ @env[:vm].channel.sudo("apt-get #{@apt_opts} install hiera=#{@hiera_version}")
62
+ end
63
+
59
64
  def puppet_installed?
60
65
  installed = ( @env[:vm].channel.execute("dpkg -l | grep puppet | grep #{@puppet_version}", :error_check => false) == 0 )
61
66
  @env[:ui].success I18n.t('vagrant.plugins.hiera.middleware.setup.puppet_installed') if installed
@@ -1,5 +1,5 @@
1
1
  module Vagrant
2
2
  module Hiera
3
- VERSION = "0.3.5"
3
+ VERSION = "0.4.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-hiera
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-05 00:00:00.000000000 Z
12
+ date: 2012-10-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: vagrant