Class: HammerCLIForeman::IdResolver
- Inherits:
-
Object
- Object
- HammerCLIForeman::IdResolver
- Defined in:
- lib/hammer_cli_foreman/id_resolver.rb
Constant Summary collapse
- ALL_PER_PAGE =
1000
Instance Attribute Summary collapse
-
#api ⇒ Object
readonly
Returns the value of attribute api.
Instance Method Summary collapse
- #environment_id(options) ⇒ Object
- #environment_ids(options) ⇒ Object
-
#initialize(api, searchables) ⇒ IdResolver
constructor
A new instance of IdResolver.
- #puppet_environment_id(options) ⇒ Object
- #puppet_environment_ids(options) ⇒ Object
- #puppetclass_ids(options) ⇒ Object
- #scoped_options(scope, options, mode = nil) ⇒ Object
- #searchables(resource) ⇒ Object
Constructor Details
#initialize(api, searchables) ⇒ IdResolver
96 97 98 99 100 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 96 def initialize(api, searchables) @api = api @searchables = searchables define_id_finders end |
Instance Attribute Details
#api ⇒ Object (readonly)
Returns the value of attribute api.
94 95 96 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 94 def api @api end |
Instance Method Details
#environment_id(options) ⇒ Object
154 155 156 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 154 def environment_id() puppet_environment_id() end |
#environment_ids(options) ⇒ Object
162 163 164 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 162 def environment_ids() puppet_environment_ids() end |
#puppet_environment_id(options) ⇒ Object
158 159 160 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 158 def puppet_environment_id() get_id(:environments, ) end |
#puppet_environment_ids(options) ⇒ Object
166 167 168 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 166 def puppet_environment_ids() get_ids(:environments, ) end |
#puppetclass_ids(options) ⇒ Object
132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 132 def puppetclass_ids() resource_name = :puppetclasses resource = @api.resource(resource_name) results = if (ids = [HammerCLI.option_accessor_name("ids")]) ids elsif (ids = nil_from_searchables(resource_name, , :plural => true)) ids elsif (resource, ) raise MissingSearchOptions.new(_("Missing options to search %s") % resource.name, resource) elsif (resource, ) [] else require('hammer_cli_foreman/puppet_class') results = HammerCLIForeman::PuppetClass::ListCommand.unhash_classes( resolved_call(resource_name, :index, , :multi) ) raise ResolverError.new(_("one of %s not found.") % resource.name, resource) if results.count < expected_record_count(, resource, :multi) results.map { |r| r['id'] } end end |
#scoped_options(scope, options, mode = nil) ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 103 def (scope, , mode = nil) = .dup resource = HammerCLIForeman.param_to_resource(scope) return unless resource option_names = [] if (mode.nil? || mode == :single) option_names += searchables(resource).map { |s| s.name } option_names << "id" unless option_names.include?("id") end if (mode.nil? || mode == :multi) option_names << "ids" option_names += searchables(resource).map { |s| s.plural_name } end option_names.each do |name| option = HammerCLI.option_accessor_name(name) scoped_option = HammerCLI.option_accessor_name("#{scope}_#{name}") # remove the scope # e.g. option_architecture_id -> option_id if [scoped_option] [option] = .delete(scoped_option) else .delete(option) end end end |
#searchables(resource) ⇒ Object
170 171 172 173 |
# File 'lib/hammer_cli_foreman/id_resolver.rb', line 170 def searchables(resource) resource = @api.resource(resource) if resource.is_a? Symbol @searchables.for(resource) end |