class R10K::Puppetfile

Deprecated, use R10K::ModuleLoader::Puppetfile#load to load content, provide the `:modules` key of the returned Hash to R10K::ContentSynchronizer (either the `serial_sync` or `concurrent_sync`) and the remaining keys (`:managed_directories`, `:desired_contents`, and `:purge_exclusions`) to R10K::Util::Cleaner.

Constants

DSL

Attributes

basedir[R]

@!attribute [r] basedir

@return [String] The base directory that contains the Puppetfile
environment[R]

@!attribute [r] environment

@return [R10K::Environment] Optional R10K::Environment that this Puppetfile belongs to.
force[RW]

@!attribute [rw] force

@return [Boolean] Overwrite any locally made changes
forge[R]

@!attribute [r] forge

@return [String] The URL to use for the Puppet Forge
loader[R]

@!attribute [r] loader

@return [R10K::ModuleLoader::Puppetfile] The internal module loader
overrides[R]

@!attribute [r] overrides

@return [Hash] Various settings overridden from normal configs

Public Class Methods

new(basedir, options_or_moduledir = nil, deprecated_path_arg = nil, deprecated_name_arg = nil, deprecated_force_arg = nil) click to toggle source

@param [String] basedir @param [Hash, String, nil] options_or_moduledir The directory to install the modules or a Hash of options.

Usage as moduledir is deprecated. Only use as options, defaults to nil

@param [String, nil] puppetfile_path Deprecated - The path to the Puppetfile, defaults to nil @param [String, nil] puppetfile_name Deprecated - The name of the Puppetfile, defaults to nil @param [Boolean, nil] force Deprecated - Shall we overwrite locally made changes?

# File lib/r10k/puppetfile.rb, line 55
def initialize(basedir, options_or_moduledir = nil, deprecated_path_arg = nil, deprecated_name_arg = nil, deprecated_force_arg = nil)
  @basedir         = basedir
  if options_or_moduledir.is_a? Hash
    options = options_or_moduledir
    deprecated_moduledir_arg = nil
  else
    options = {}
    deprecated_moduledir_arg = options_or_moduledir
  end

  @force           = deprecated_force_arg     || options.delete(:force)           || false
  @moduledir       = deprecated_moduledir_arg || options.delete(:moduledir)       || File.join(basedir, 'modules')
  puppetfile_name = deprecated_name_arg      || options.delete(:puppetfile_name) || 'Puppetfile'
  puppetfile_path = deprecated_path_arg      || options.delete(:puppetfile_path)
  @puppetfile = puppetfile_path || puppetfile_name
  @environment     = options.delete(:environment)

  @overrides       = options.delete(:overrides) || {}
  @default_branch_override = @overrides.dig(:environments, :default_branch_override)

  @forge   = 'forgeapi.puppet.com'

  @loader = ::R10K::ModuleLoader::Puppetfile.new(
    basedir: @basedir,
    moduledir: @moduledir,
    puppetfile: @puppetfile,
    overrides: @overrides,
    environment: @environment
  )

  @loaded_content = {
    modules: [],
    managed_directories: [],
    desired_contents: [],
    purge_exclusions: []
  }

  @loaded = false
end

Public Instance Methods

accept(visitor) click to toggle source
# File lib/r10k/puppetfile.rb, line 185
def accept(visitor)
  pool_size = self.settings[:pool_size]
  if pool_size > 1
    R10K::ContentSynchronizer.concurrent_accept(modules, visitor, self, pool_size, logger)
  else
    R10K::ContentSynchronizer.serial_accept(modules, visitor, self)
  end
end
add_module(name, args) click to toggle source

@see R10K::ModuleLoader::Puppetfile#add_module for upcoming signature changes

# File lib/r10k/puppetfile.rb, line 137
def add_module(name, args)
  @loader.add_module(name, args)
end
desired_contents() click to toggle source

Returns an array of the full paths to all the content being managed. @note This implements a required method for the Purgeable mixin @return [Array<String>]

# File lib/r10k/puppetfile.rb, line 173
def desired_contents
  self.load

  @loaded_content[:desired_contents]
end
environment=(env) click to toggle source
# File lib/r10k/puppetfile.rb, line 157
def environment=(env)
  @loader.environment = env
  @environment = env
end
load(default_branch_override = nil) click to toggle source

@param [String] default_branch_override The default branch to use

instead of one specified in the module declaration, if applicable.
Deprecated, use R10K::ModuleLoader::Puppetfile directly and pass
the default_branch_override as an option on initialization.
# File lib/r10k/puppetfile.rb, line 99
def load(default_branch_override = nil)
  if self.loaded?
    return @loaded_content
  else
    if !File.readable?(puppetfile_path)
      logger.debug _("Puppetfile %{path} missing or unreadable") % {path: puppetfile_path.inspect}
    else
      self.load!(default_branch_override)
    end
  end
end
load!(default_branch_override = nil) click to toggle source

@param [String] default_branch_override The default branch to use

instead of one specified in the module declaration, if applicable.
Deprecated, use R10K::ModuleLoader::Puppetfile directly and pass
the default_branch_override as an option on initialization.
# File lib/r10k/puppetfile.rb, line 115
def load!(default_branch_override = nil)

  if default_branch_override && (default_branch_override != @default_branch_override)
    logger.warn("Mismatch between passed and initialized default branch overrides, preferring passed value.")
    @loader.default_branch_override = default_branch_override
  end

  @loaded_content = @loader.load!
  @loaded = true

  @loaded_content
end
loaded?() click to toggle source
# File lib/r10k/puppetfile.rb, line 128
def loaded?
  @loaded
end
managed_directories() click to toggle source
# File lib/r10k/puppetfile.rb, line 164
def managed_directories
  self.load

  @loaded_content[:managed_directories]
end
moduledir() click to toggle source
# File lib/r10k/puppetfile.rb, line 149
def moduledir
  @loader.moduledir
end
modules() click to toggle source
# File lib/r10k/puppetfile.rb, line 132
def modules
  @loaded_content[:modules]
end
puppetfile_path() click to toggle source
# File lib/r10k/puppetfile.rb, line 153
def puppetfile_path
  @loader.puppetfile_path
end
purge_exclusions() click to toggle source
# File lib/r10k/puppetfile.rb, line 179
def purge_exclusions
  self.load

  @loaded_content[:purge_exclusions]
end
set_forge(forge) click to toggle source
# File lib/r10k/puppetfile.rb, line 145
def set_forge(forge)
  @loader.set_forge(forge)
end
set_moduledir(dir) click to toggle source
# File lib/r10k/puppetfile.rb, line 141
def set_moduledir(dir)
  @loader.set_moduledir(dir)
end
sync() click to toggle source
# File lib/r10k/puppetfile.rb, line 194
def sync
  pool_size = self.settings[:pool_size]
  if pool_size > 1
    R10K::ContentSynchronizer.concurrent_sync(modules, pool_size, logger)
  else
    R10K::ContentSynchronizer.serial_sync(modules)
  end
end

Private Instance Methods

real_basedir() click to toggle source
# File lib/r10k/puppetfile.rb, line 205
def real_basedir
  Pathname.new(basedir).cleanpath.to_s
end