Class: HammerCLIKatello::IdResolver

Inherits:
HammerCLIForeman::IdResolver
  • Object
show all
Includes:
SearchOptionsCreators
Defined in:
lib/hammer_cli_katello/id_resolver.rb

Instance Method Summary collapse

Methods included from SearchOptionsCreators

#create_content_view_filter_rules_search_options, #create_content_view_versions_search_options, #create_content_views_search_options, #create_file_units_search_options, #create_host_collections_search_options, #create_lifecycle_environments_search_options, #create_module_streams_search_options, #create_repositories_search_options, #create_repository_sets_search_options, #create_search_options_with_katello_api

Methods included from ForemanSearchOptionsCreators

#create_architectures_search_options, #create_capsules_search_options, #create_compute_profiles_search_options, #create_compute_resources_search_options, #create_domains_search_options, #create_environments_search_options, #create_hostgroups_search_options, #create_hosts_search_options, #create_http_proxies_search_options, #create_images_search_options, #create_locations_search_options, #create_media_search_options, #create_operatingsystems_search_options, #create_organizations_search_options, #create_packages_search_options, #create_ptables_search_options, #create_realms_search_options, #create_smart_proxies_search_options, #create_subnets_search_options, #create_usergroups_search_options, #create_users_search_options

Instance Method Details

#capsule_content_id(options) ⇒ Object



60
61
62
# File 'lib/hammer_cli_katello/id_resolver.rb', line 60

def capsule_content_id(options)
  smart_proxy_id(options)
end

#content_view_version_id(options) ⇒ Object

rubocop:disable Style/EmptyElse



121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# File 'lib/hammer_cli_katello/id_resolver.rb', line 121

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)

  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) ⇒ Object



64
65
66
# File 'lib/hammer_cli_katello/id_resolver.rb', line 64

def environment_id(options)
  lifecycle_environment_id(options)
end

#environment_ids(options) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/hammer_cli_katello/id_resolver.rb', line 72

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) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/hammer_cli_katello/id_resolver.rb', line 52

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) ⇒ Object



68
69
70
# File 'lib/hammer_cli_katello/id_resolver.rb', line 68

def lifecycle_environment_ids(options)
  environment_ids(options)
end

#repository_id(options) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/hammer_cli_katello/id_resolver.rb', line 88

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) ⇒ Object



102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/hammer_cli_katello/id_resolver.rb', line 102

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