module HammerCLIForemanPuppet::PuppetIdResolver
Public Instance Methods
create_puppetclasses_search_options(options, mode = nil)
click to toggle source
# File lib/hammer_cli_foreman_puppet/id_resolver.rb, line 44 def create_puppetclasses_search_options(options, mode = nil) searchables(@api.resource(:puppetclasses)).each do |s| value = options[HammerCLI.option_accessor_name(s.name.to_s)] values = options[HammerCLI.option_accessor_name(s.plural_name.to_s)] if value && (mode.nil? || mode == :single) return { search: "#{s.name} = \"#{value}\"" } elsif values && (mode.nil? || mode == :multi) query = values.map { |v| "#{s.name} = \"#{v}\"" }.join(' or ') return { search: query } end end {} end
create_smart_class_parameters_search_options(options, _mode = nil)
click to toggle source
# File lib/hammer_cli_foreman_puppet/id_resolver.rb, line 58 def create_smart_class_parameters_search_options(options, _mode = nil) search_options = {} value = options[HammerCLI.option_accessor_name('name')] search_options[:search] = "key = \"#{value}\"" search_options[:puppetclass_id] = puppetclass_id(scoped_options('puppetclass', options)) search_options end
puppet_environment_id(options)
click to toggle source
# File lib/hammer_cli_foreman_puppet/id_resolver.rb, line 36 def puppet_environment_id(options) get_id(:environments, options) end
puppet_environment_ids(options)
click to toggle source
# File lib/hammer_cli_foreman_puppet/id_resolver.rb, line 40 def puppet_environment_ids(options) get_ids(:environments, options) end
puppetclass_id(options)
click to toggle source
puppet class search results are in non-standard format and needs to be un-hashed first
# File lib/hammer_cli_foreman_puppet/id_resolver.rb, line 5 def puppetclass_id(options) return options[HammerCLI.option_accessor_name('id')] if options[HammerCLI.option_accessor_name('id')] resource = @api.resource(:puppetclasses) results = find_resource_raw(:puppetclasses, options) require('hammer_cli_foreman_puppet/class') results = HammerCLIForemanPuppet::PuppetClass::ListCommand.unhash_classes(results) pick_result(results, resource)['id'] end
puppetclass_ids(options)
click to toggle source
# File lib/hammer_cli_foreman_puppet/id_resolver.rb, line 15 def puppetclass_ids(options) resource_name = :puppetclasses resource = @api.resource(resource_name) if (ids = options[HammerCLI.option_accessor_name("ids")]) ids elsif (ids = nil_from_searchables(resource_name, options, :plural => true)) ids elsif options_not_set?(resource, options) raise HammerCLIForeman::MissingSearchOptions.new(_("Missing options to search %s") % resource.name, resource) elsif options_empty?(resource, options) [] else require('hammer_cli_foreman_puppet/class') results = HammerCLIForemanPuppet::PuppetClass::ListCommand.unhash_classes( resolved_call(resource_name, :index, options, :multi) ) raise HammerCLIForeman::ResolverError.new(_("one of %s not found.") % resource.name, resource) if results.count < expected_record_count(options, resource, :multi) results.map { |r| r['id'] } end end