class Kitchen::Provisioner::Puppet::R10K
Puppet
module resolver that uses R10K
and a Puppetfile to calculate # dependencies.
Attributes
logger[R]
path[R]
puppetfile[R]
Public Class Methods
load!(logger = Kitchen.logger)
click to toggle source
# File lib/kitchen/provisioner/puppet/r10k.rb, line 37 def self.load!(logger = Kitchen.logger) load_r10k!(logger) end
load_r10k!(logger)
click to toggle source
# File lib/kitchen/provisioner/puppet/r10k.rb, line 56 def self.load_r10k!(logger) require 'r10k/puppetfile' version = ::R10K::VERSION logger.debug("R10K #{version} library loaded") rescue LoadError => e logger.fatal("The `r10k' gem is missing and must be installed" \ ' or cannot be properly activated. Run' \ ' `gem install r10k` or add the following to your' \ " Gemfile if you are using Bundler: `gem 'r10k'`.") raise UserError, "Could not load or activate R10K (#{e.message})" end
new(puppetfile, path, logger = Kitchen.logger)
click to toggle source
# File lib/kitchen/provisioner/puppet/r10k.rb, line 31 def initialize(puppetfile, path, logger = Kitchen.logger) @puppetfile = puppetfile @path = path @logger = logger end
Public Instance Methods
resolve()
click to toggle source
# File lib/kitchen/provisioner/puppet/r10k.rb, line 41 def resolve version = ::R10K::VERSION info("Resolving module dependencies with R10K-Puppet #{version}...") debug("Using Puppetfile from #{puppetfile}") ::R10K::Git::Cache.settings[:cache_root] = '.r10k/git' ::R10K::Forge::ModuleRelease.settings[:cache_root] = '.r10k/cache' pf = ::R10K::Puppetfile.new("", path, puppetfile) pf.load pf.modules.map(&:sync) end