Method: Unix::Pkg#puppet_agent_dev_package_info

Defined in:
lib/beaker/host/unix/pkg.rb

#puppet_agent_dev_package_info(puppet_collection = nil, puppet_agent_version = nil, opts = {}) ⇒ String

Note:

Solaris & OSX do require some options to be set. See #solaris_puppet_agent_dev_package_info & Mac::Pkg#puppet_agent_dev_package_info for more details

Gets the path & file name for the puppet agent dev package on Unix

Parameters:

  • puppet_collection (String) (defaults to: nil)

    Name of the puppet collection to use

  • puppet_agent_version (String) (defaults to: nil)

    Version of puppet agent to get

  • opts (Hash{Symbol=>String}) (defaults to: {})

    Options hash to provide extra values

Returns:

  • (String, String)

    Path to the directory and filename of the package, respectively

Raises:

  • (ArgumentError)

    If one of the two required parameters (puppet_collection, puppet_agent_version) is either not passed or set to nil



408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
# File 'lib/beaker/host/unix/pkg.rb', line 408

def puppet_agent_dev_package_info( puppet_collection = nil, puppet_agent_version = nil, opts = {} )
  error_message = "Must provide %s argument to get puppet agent dev package information"
  raise ArgumentError, error_message % "puppet_collection" unless puppet_collection
  raise ArgumentError, error_message % "puppet_agent_version" unless puppet_agent_version

  variant, version, arch, codename = self['platform'].to_array
  case variant
  when /^(solaris)$/
    release_path_end, release_file = solaris_puppet_agent_dev_package_info(
      puppet_collection, puppet_agent_version, opts )
  when /^(sles|aix|el|centos|oracle|redhat|scientific)$/
    variant = 'el' if variant.match(/(?:el|centos|oracle|redhat|scientific)/)
    if variant == 'aix'
      arch = 'ppc' if arch == 'power'
      version_x, version_y = /^(\d+)\.(\d+)/.match(puppet_agent_version).captures.map(&:to_i)
      if version_x < 5 || version_x == 5 && version_y < 99 # 5.99.z indicates pre-release puppet6
        version = '7.1' if version == '7.2'
      else
        version = '6.1'
      end
    end
    release_path_end = "#{variant}/#{version}/#{puppet_collection}/#{arch}"
    release_file = "puppet-agent-#{puppet_agent_version}-1.#{variant}#{version}.#{arch}.rpm"
  else
    msg = "puppet_agent dev package info unknown for platform '#{self['platform']}'"
    raise ArgumentError, msg
  end
  return release_path_end, release_file
end