class HammerCLIKatello::IdResolver
Public Instance Methods
capsule_content_id(options)
click to toggle source
# File lib/hammer_cli_katello/id_resolver.rb, line 61 def capsule_content_id(options) smart_proxy_id(options) end
content_view_version_id(options)
click to toggle source
rubocop:disable Style/EmptyElse rubocop:disable Metrics/AbcSize rubocop:disable Metrics/CyclomaticComplexity rubocop:disable Metrics/PerceivedComplexity
# File lib/hammer_cli_katello/id_resolver.rb, line 125 def content_view_version_id(options) key_id = HammerCLI.option_accessor_name("id") key_content_view_id = HammerCLI.option_accessor_name("content_view_id") from_environment_id = HammerCLI.option_accessor_name("from_environment_id") return options[key_id] if options[key_id] options[key_content_view_id] ||= search_and_rescue(:content_view_id, "content_view", options) if options[key_content_view_id] && options['option_environment_name'] && options['option_environment_id'].nil? lifecycle_environment_resource_name = (HammerCLIForeman.param_to_resource('environment') || HammerCLIForeman.param_to_resource('lifecycle_environment')).singular_name options['option_environment_id'] = lifecycle_environment_id( scoped_options(lifecycle_environment_resource_name, options, :single)) end results = find_resources(:content_view_versions, options) options[from_environment_id] ||= from_lifecycle_environment_id(options) return pick_result(results, @api.resource(:content_view_versions))['id'] if results.size == 1 if results.size > 1 && options[from_environment_id] results_in_from_environment = results.select do |version| member_of_environment_ids = version['environments'].map { |env| env['id'].to_s } member_of_environment_ids.include? options[from_environment_id].to_s end results_in_from_environment .sort { |a, b| a['version'].to_f <=> b['version'].to_f }.last['id'] else nil end end
environment_id(options)
click to toggle source
# File lib/hammer_cli_katello/id_resolver.rb, line 65 def environment_id(options) lifecycle_environment_id(options) end
environment_ids(options)
click to toggle source
# File lib/hammer_cli_katello/id_resolver.rb, line 73 def environment_ids(options) unless options['option_lifecycle_environment_ids'].nil? return options['option_lifecycle_environment_ids'] end names = options[HammerCLI.option_accessor_name('lifecycle_environment_names')] || options[HammerCLI.option_accessor_name('environment_names')] || options[HammerCLI.option_accessor_name('names')] key_organization_id = HammerCLI.option_accessor_name 'organization_id' options[key_organization_id] ||= organization_id(scoped_options('organization', options)) options['option_lifecycle_environment_names'] = names find_resources(:lifecycle_environments, options) .select { |repo| names.include? repo['name'] }.map { |repo| repo['id'] } end
file_unit_id(options)
click to toggle source
# File lib/hammer_cli_katello/id_resolver.rb, line 53 def file_unit_id(options) if options['option_content_view_version_version'] options['option_content_view_version_id'] ||= content_view_version_id(scoped_options('content_view_version', options)) end get_id(:file_units, options) end
lifecycle_environment_ids(options)
click to toggle source
# File lib/hammer_cli_katello/id_resolver.rb, line 69 def lifecycle_environment_ids(options) environment_ids(options) end
repository_id(options)
click to toggle source
# File lib/hammer_cli_katello/id_resolver.rb, line 89 def repository_id(options) key_id = HammerCLI.option_accessor_name("id") key_product_id = HammerCLI.option_accessor_name("product_id") key_product_name = HammerCLI.option_accessor_name("product_name") return options[key_id] if options[key_id] unless options[key_product_name].nil? options[key_product_id] ||= product_id(scoped_options("product", options)) end find_resource(:repositories, options)['id'] end
repository_ids(options)
click to toggle source
# File lib/hammer_cli_katello/id_resolver.rb, line 103 def repository_ids(options) return options['option_repository_ids'] unless options['option_repository_ids'].nil? key_names = HammerCLI.option_accessor_name 'names' key_product_id = HammerCLI.option_accessor_name 'product_id' options[key_names] ||= [] unless options['option_product_name'].nil? options[key_product_id] ||= product_id(scoped_options('product', options)) end if options[key_names].any? find_resources(:repositories, options) .select { |repo| options[key_names].include? repo['name'] }.map { |repo| repo['id'] } end end
Private Instance Methods
from_lifecycle_environment_id(options)
click to toggle source
rubocop:enable Style/EmptyElse rubocop:enable Metrics/AbcSize rubocop:enable Metrics/CyclomaticComplexity rubocop:enable Metrics/PerceivedComplexity
# File lib/hammer_cli_katello/id_resolver.rb, line 166 def from_lifecycle_environment_id(options) environment_id = HammerCLI.option_accessor_name("environment_id") environment_name = HammerCLI.option_accessor_name("environment_name") from_environment_id = HammerCLI.option_accessor_name("from_environment_id") from_environment_name = HammerCLI.option_accessor_name("from_environment_name") return nil if options[from_environment_id].nil? && options[from_environment_name].nil? search_options = options.dup.tap do |opts| opts[environment_name] = opts[from_environment_name] opts[environment_id] = opts[from_environment_id] end lifecycle_environment_id(scoped_options("environment", search_options)) end
search_and_rescue(search_function, resource, options)
click to toggle source
# File lib/hammer_cli_katello/id_resolver.rb, line 179 def search_and_rescue(search_function, resource, options) self.send(search_function, scoped_options(resource, options)) rescue HammerCLIForeman::MissingSearchOptions # rubocop:disable HandleExceptions # Intentionally suppressing the exception, # These are not always required. end