/usr/lib/ruby/vendor_ruby/octocatalog-diff/api/v1/catalog-compile.rb is in octocatalog-diff 1.5.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | # frozen_string_literal: true
require_relative 'catalog'
require_relative 'common'
require_relative '../../util/catalogs'
module OctocatalogDiff
module API
module V1
# This class allows octocatalog-diff to be used to compile catalogs.
class CatalogCompile
# Public: Compile a catalog given the options provided.
#
# Parameters are to be passed in a hash.
# @param :logger [Logger] Logger object (be sure to configure log level)
# @param :node [String] Node name (FQDN)
# Other catalog building parameters are also accepted
# @return [OctocatalogDiff::Catalog] Compiled catalogs
def self.catalog(options = nil)
# Validate the required options.
unless options.is_a?(Hash)
raise ArgumentError, 'Usage: #catalog(options_hash)'
end
pass_opts, logger = OctocatalogDiff::API::V1::Common.logger_from_options(options)
logger.debug "Compiling catalog for #{options[:node]}"
# Compile catalog
catalog_opts = pass_opts.merge(
from_catalog: '-', # Prevents a compile
to_catalog: nil, # Forces a compile
)
cat_obj = OctocatalogDiff::Util::Catalogs.new(catalog_opts, logger)
OctocatalogDiff::API::V1::Catalog.new(cat_obj.catalogs[:to])
end
end
end
end
end
|