vagrant-puppetfile 0.4.2 → 0.4.3
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/lib/vagrant/puppetfile/version.rb +1 -1
 - data/lib/vagrant/puppetfile.rb +45 -40
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: bbff97cdeedbea9bc71c7460ee98e8d921d671a7
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: ec287ee9e5ffb598b8e60f0b3c42b0ddd7a2aac2
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 9137331c54d4c2266c215fb906cfbe599c1c09e59fa3c3089fcfaf656b4968e6fa31044de38353fbf3957e28b2df19f032a6821c40a8b22556a6d32106695efb
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 017386ab77bb35275814eee91a9e4b51f784afadcc628f93a325fff3ece3c1bff7971694e9b8b6f395c46bd0dc4a3645e166ebe0fcefc527b33e5918b61166f4
         
     | 
    
        data/lib/vagrant/puppetfile.rb
    CHANGED
    
    | 
         @@ -35,7 +35,7 @@ module Vagrant 
     | 
|
| 
       35 
35 
     | 
    
         
             
                  end
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
37 
     | 
    
         
             
                  def provision
         
     | 
| 
       38 
     | 
    
         
            -
                     
     | 
| 
      
 38 
     | 
    
         
            +
                    Evaluator.create(@config.evaluator, @logger).install(@config.path)
         
     | 
| 
       39 
39 
     | 
    
         
             
                  rescue Exception => e
         
     | 
| 
       40 
40 
     | 
    
         
             
                    @logger.error("Failed to evaluate Puppetfile: #{e.message}")
         
     | 
| 
       41 
41 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -63,7 +63,7 @@ module Vagrant 
     | 
|
| 
       63 
63 
     | 
    
         | 
| 
       64 
64 
     | 
    
         
             
                    case parse_options(options)
         
     | 
| 
       65 
65 
     | 
    
         
             
                    when ['install']
         
     | 
| 
       66 
     | 
    
         
            -
                       
     | 
| 
      
 66 
     | 
    
         
            +
                      Evaluator.create(evaluator, @env.ui).install(puppetfile)
         
     | 
| 
       67 
67 
     | 
    
         
             
                    else
         
     | 
| 
       68 
68 
     | 
    
         
             
                      @env.ui.warn(options.help)
         
     | 
| 
       69 
69 
     | 
    
         
             
                      exit 1
         
     | 
| 
         @@ -104,32 +104,9 @@ module Vagrant 
     | 
|
| 
       104 
104 
     | 
    
         
             
                  provisioner(:puppetfile) { Provisioner }
         
     | 
| 
       105 
105 
     | 
    
         
             
                end
         
     | 
| 
       106 
106 
     | 
    
         | 
| 
       107 
     | 
    
         
            -
                 
     | 
| 
       108 
     | 
    
         
            -
                   
     | 
| 
      
 107 
     | 
    
         
            +
                module Evaluator
         
     | 
| 
      
 108 
     | 
    
         
            +
                  EVALUATORS = %w(librarian-puppet r10k puppet)
         
     | 
| 
       109 
109 
     | 
    
         | 
| 
       110 
     | 
    
         
            -
                  def initialize(path)
         
     | 
| 
       111 
     | 
    
         
            -
                    @path = path
         
     | 
| 
       112 
     | 
    
         
            -
                  end
         
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
     | 
    
         
            -
                  def evaluator(type, logger)
         
     | 
| 
       115 
     | 
    
         
            -
                    case File.basename(type)
         
     | 
| 
       116 
     | 
    
         
            -
                    when 'librarian-puppet'
         
     | 
| 
       117 
     | 
    
         
            -
                      Evaluators::Librarian.new(type, path, logger)
         
     | 
| 
       118 
     | 
    
         
            -
                    when 'r10k'
         
     | 
| 
       119 
     | 
    
         
            -
                      Evaluators::R10k.new(type, path, logger)
         
     | 
| 
       120 
     | 
    
         
            -
                    when 'puppet'
         
     | 
| 
       121 
     | 
    
         
            -
                      Evaluators::Puppet.new(type, path, logger)
         
     | 
| 
       122 
     | 
    
         
            -
                    when 'autodetect'
         
     | 
| 
       123 
     | 
    
         
            -
                      evaluator('librarian-puppet', logger) rescue
         
     | 
| 
       124 
     | 
    
         
            -
                      evaluator('r10k', logger) rescue
         
     | 
| 
       125 
     | 
    
         
            -
                      evaluator('puppet', logger)
         
     | 
| 
       126 
     | 
    
         
            -
                    else
         
     | 
| 
       127 
     | 
    
         
            -
                      fail Evaluators::ConfigurationError, type
         
     | 
| 
       128 
     | 
    
         
            -
                    end
         
     | 
| 
       129 
     | 
    
         
            -
                  end
         
     | 
| 
       130 
     | 
    
         
            -
                end
         
     | 
| 
       131 
     | 
    
         
            -
             
     | 
| 
       132 
     | 
    
         
            -
                module Evaluators
         
     | 
| 
       133 
110 
     | 
    
         
             
                  class InstallationError < Vagrant::Errors::VagrantError
         
     | 
| 
       134 
111 
     | 
    
         
             
                    def error_message
         
     | 
| 
       135 
112 
     | 
    
         
             
                      'Puppetfile module installation failed'
         
     | 
| 
         @@ -142,33 +119,58 @@ module Vagrant 
     | 
|
| 
       142 
119 
     | 
    
         
             
                    end
         
     | 
| 
       143 
120 
     | 
    
         
             
                  end
         
     | 
| 
       144 
121 
     | 
    
         | 
| 
       145 
     | 
    
         
            -
                  class  
     | 
| 
      
 122 
     | 
    
         
            +
                  class EvaluatorError < Vagrant::Errors::VagrantError
         
     | 
| 
       146 
123 
     | 
    
         
             
                    def error_message
         
     | 
| 
       147 
124 
     | 
    
         
             
                      'No Puppetfile evaluator was found'
         
     | 
| 
       148 
125 
     | 
    
         
             
                    end
         
     | 
| 
       149 
126 
     | 
    
         
             
                  end
         
     | 
| 
       150 
127 
     | 
    
         | 
| 
      
 128 
     | 
    
         
            +
                  def Evaluator.create(type, logger)
         
     | 
| 
      
 129 
     | 
    
         
            +
                    case File.basename(type)
         
     | 
| 
      
 130 
     | 
    
         
            +
                    when 'librarian-puppet'
         
     | 
| 
      
 131 
     | 
    
         
            +
                      Librarian.new(type, logger)
         
     | 
| 
      
 132 
     | 
    
         
            +
                    when 'r10k'
         
     | 
| 
      
 133 
     | 
    
         
            +
                      R10k.new(type, logger)
         
     | 
| 
      
 134 
     | 
    
         
            +
                    when 'puppet'
         
     | 
| 
      
 135 
     | 
    
         
            +
                      Puppet.new(type, logger)
         
     | 
| 
      
 136 
     | 
    
         
            +
                    when 'autodetect'
         
     | 
| 
      
 137 
     | 
    
         
            +
                      autodetect(logger) or fail ConfigurationError
         
     | 
| 
      
 138 
     | 
    
         
            +
                    else
         
     | 
| 
      
 139 
     | 
    
         
            +
                      logger.warn("Invalid evaluator: #{type}")
         
     | 
| 
      
 140 
     | 
    
         
            +
                      fail ConfigurationError, type
         
     | 
| 
      
 141 
     | 
    
         
            +
                    end
         
     | 
| 
      
 142 
     | 
    
         
            +
                  end
         
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
      
 144 
     | 
    
         
            +
                  def Evaluator.autodetect(logger)
         
     | 
| 
      
 145 
     | 
    
         
            +
                    EVALUATORS.detect do |type|
         
     | 
| 
      
 146 
     | 
    
         
            +
                      begin
         
     | 
| 
      
 147 
     | 
    
         
            +
                        return create(type, logger)
         
     | 
| 
      
 148 
     | 
    
         
            +
                      rescue EvaluatorError => e
         
     | 
| 
      
 149 
     | 
    
         
            +
                        nil
         
     | 
| 
      
 150 
     | 
    
         
            +
                      end
         
     | 
| 
      
 151 
     | 
    
         
            +
                    end
         
     | 
| 
      
 152 
     | 
    
         
            +
                  end
         
     | 
| 
      
 153 
     | 
    
         
            +
             
     | 
| 
       151 
154 
     | 
    
         
             
                  class Base
         
     | 
| 
       152 
155 
     | 
    
         
             
                    attr_reader :logger
         
     | 
| 
       153 
156 
     | 
    
         
             
                    attr_reader :path
         
     | 
| 
       154 
     | 
    
         
            -
                    attr_reader :puppetfile
         
     | 
| 
       155 
157 
     | 
    
         | 
| 
       156 
158 
     | 
    
         
             
                    ENV_CLEAN_KEYS = %w(GEM_HOME GEM_PATH)
         
     | 
| 
       157 
159 
     | 
    
         | 
| 
       158 
     | 
    
         
            -
                    def initialize(path,  
     | 
| 
      
 160 
     | 
    
         
            +
                    def initialize(path, logger)
         
     | 
| 
       159 
161 
     | 
    
         
             
                      @logger = logger
         
     | 
| 
       160 
162 
     | 
    
         
             
                      @path = path
         
     | 
| 
       161 
     | 
    
         
            -
                      @puppetfile = puppetfile
         
     | 
| 
       162 
     | 
    
         
            -
             
     | 
| 
       163 
163 
     | 
    
         
             
                      # Make sure the evaluator actually exists and can be called.
         
     | 
| 
       164 
164 
     | 
    
         
             
                      unless available?
         
     | 
| 
       165 
     | 
    
         
            -
                        logger. 
     | 
| 
       166 
     | 
    
         
            -
                        fail  
     | 
| 
      
 165 
     | 
    
         
            +
                        logger.warn("Unable to find command: #{path}")
         
     | 
| 
      
 166 
     | 
    
         
            +
                        fail EvaluatorError, path
         
     | 
| 
       167 
167 
     | 
    
         
             
                      end
         
     | 
| 
      
 168 
     | 
    
         
            +
                    end
         
     | 
| 
       168 
169 
     | 
    
         | 
| 
      
 170 
     | 
    
         
            +
                    def validate(puppetfile)
         
     | 
| 
       169 
171 
     | 
    
         
             
                      # Check for the puppetfile and bomb if it doesn't exist.
         
     | 
| 
       170 
172 
     | 
    
         
             
                      unless File.readable?(puppetfile)
         
     | 
| 
       171 
     | 
    
         
            -
                        logger. 
     | 
| 
      
 173 
     | 
    
         
            +
                        logger.warn("Unable to read puppetfile: #{puppetfile}")
         
     | 
| 
       172 
174 
     | 
    
         
             
                        fail ConfigurationError, puppetfile
         
     | 
| 
       173 
175 
     | 
    
         
             
                      end
         
     | 
| 
       174 
176 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -208,7 +210,8 @@ module Vagrant 
     | 
|
| 
       208 
210 
     | 
    
         
             
                      false
         
     | 
| 
       209 
211 
     | 
    
         
             
                    end
         
     | 
| 
       210 
212 
     | 
    
         | 
| 
       211 
     | 
    
         
            -
                    def install 
     | 
| 
      
 213 
     | 
    
         
            +
                    def install(puppetfile)
         
     | 
| 
      
 214 
     | 
    
         
            +
                      validate(puppetfile)
         
     | 
| 
       212 
215 
     | 
    
         
             
                      run('puppetfile', 'install', '--verbose')
         
     | 
| 
       213 
216 
     | 
    
         
             
                    end
         
     | 
| 
       214 
217 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -216,7 +219,7 @@ module Vagrant 
     | 
|
| 
       216 
219 
     | 
    
         
             
                  class Librarian < Base
         
     | 
| 
       217 
220 
     | 
    
         
             
                    SUPPORTED_PUPPETFILE_NAMES = %w{Puppetfile Modulefile metadata.json}
         
     | 
| 
       218 
221 
     | 
    
         | 
| 
       219 
     | 
    
         
            -
                    def  
     | 
| 
      
 222 
     | 
    
         
            +
                    def validate(puppetfile)
         
     | 
| 
       220 
223 
     | 
    
         
             
                      super
         
     | 
| 
       221 
224 
     | 
    
         
             
                      unless SUPPORTED_PUPPETFILE_NAMES.include? File.basename(puppetfile)
         
     | 
| 
       222 
225 
     | 
    
         
             
                        logger.error("The 'librarian-puppet' evaluator cannot install from a file named #{puppetfile.inspect}")
         
     | 
| 
         @@ -231,7 +234,8 @@ module Vagrant 
     | 
|
| 
       231 
234 
     | 
    
         
             
                      false
         
     | 
| 
       232 
235 
     | 
    
         
             
                    end
         
     | 
| 
       233 
236 
     | 
    
         | 
| 
       234 
     | 
    
         
            -
                    def install 
     | 
| 
      
 237 
     | 
    
         
            +
                    def install(puppetfile)
         
     | 
| 
      
 238 
     | 
    
         
            +
                      validate(puppetfile)
         
     | 
| 
       235 
239 
     | 
    
         
             
                      dir = File.dirname(puppetfile)
         
     | 
| 
       236 
240 
     | 
    
         
             
                      Dir.chdir(dir) do
         
     | 
| 
       237 
241 
     | 
    
         
             
                        run('install', '--verbose')
         
     | 
| 
         @@ -240,7 +244,7 @@ module Vagrant 
     | 
|
| 
       240 
244 
     | 
    
         
             
                  end
         
     | 
| 
       241 
245 
     | 
    
         | 
| 
       242 
246 
     | 
    
         
             
                  class Puppet < Base
         
     | 
| 
       243 
     | 
    
         
            -
                    def initialize(path,  
     | 
| 
      
 247 
     | 
    
         
            +
                    def initialize(path, logger)
         
     | 
| 
       244 
248 
     | 
    
         
             
                      super
         
     | 
| 
       245 
249 
     | 
    
         
             
                      @moduledir = 'modules'
         
     | 
| 
       246 
250 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -251,7 +255,8 @@ module Vagrant 
     | 
|
| 
       251 
255 
     | 
    
         
             
                      false
         
     | 
| 
       252 
256 
     | 
    
         
             
                    end
         
     | 
| 
       253 
257 
     | 
    
         | 
| 
       254 
     | 
    
         
            -
                    def install 
     | 
| 
      
 258 
     | 
    
         
            +
                    def install(puppetfile)
         
     | 
| 
      
 259 
     | 
    
         
            +
                      validate(puppetfile)
         
     | 
| 
       255 
260 
     | 
    
         
             
                      logger.detail("Notice: Evaluating #{puppetfile} ...")
         
     | 
| 
       256 
261 
     | 
    
         
             
                      instance_eval(File.read(puppetfile))
         
     | 
| 
       257 
262 
     | 
    
         
             
                    end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: vagrant-puppetfile
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.4. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.4.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Evan Hanson
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2017-05- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2017-05-24 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       13 
13 
     | 
    
         
             
            description: Automatically installs puppet modules from a Puppetfile during Vagrant
         
     | 
| 
       14 
14 
     | 
    
         
             
              provisioning
         
     |