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_host_collections_search_options, #create_lifecycle_environments_search_options, #create_repositories_search_options, #create_search_options_with_katello_api

Methods included from ForemanSearchOptionsCreators

#create_architectures_search_options, #create_capsules_search_options, #create_domains_search_options, #create_environments_search_options, #create_hostgroups_search_options, #create_hosts_search_options, #create_locations_search_options, #create_media_search_options, #create_operatingsystems_search_options, #create_organizations_search_options, #create_ptables_search_options, #create_puppet_ca_proxies_search_options, #create_puppet_proxies_search_options, #create_puppetclasses_search_options, #create_realms_search_options, #create_smart_proxies_search_options, #create_subnets_search_options

Instance Method Details

#capsule_content_id(options) ⇒ Object



49
50
51
# File 'lib/hammer_cli_katello/id_resolver.rb', line 49

def capsule_content_id(options)
  smart_proxy_id(options)
end

#content_view_version_id(options) ⇒ Object



118
119
120
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
146
# File 'lib/hammer_cli_katello/id_resolver.rb', line 118

def content_view_version_id(options)
  key_id = HammerCLI.option_accessor_name("id")
  key_environment_id = HammerCLI.option_accessor_name("environment_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]

  if options[key_environment_id]
    options[key_environment_id] ||= search_and_rescue(
      :lifecycle_environment_id, "environment", options)
  end

  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)

  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
    pick_result(results, @api.resource(:content_view_versions))['id']
  end
end

#content_view_version_ids(options) ⇒ Object



106
107
108
109
110
111
112
113
114
115
116
# File 'lib/hammer_cli_katello/id_resolver.rb', line 106

def content_view_version_ids(options)
  key_content_view_id = HammerCLI.option_accessor_name("content_view_id")
  if options['option_versions'] && options[key_content_view_id]
    options[key_content_view_id] ||= search_and_rescue(:content_view_id,
                                                       "content_view", options)
    id_strings = options['option_versions'].map do |version|
      content_view_version_id(options.merge('option_version' => version))
    end
    id_strings.join(',')
  end
end

#environment_id(options) ⇒ Object



57
58
59
# File 'lib/hammer_cli_katello/id_resolver.rb', line 57

def environment_id(options)
  lifecycle_environment_id(options)
end

#environment_ids(options) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/hammer_cli_katello/id_resolver.rb', line 61

def environment_ids(options)
  unless options['option_lifecycle_environment_ids'].nil?
    return options['option_lifecycle_environment_ids']
  end

  key_names = HammerCLI.option_accessor_name 'lifecycle_environment_names'
  key_organization_id = HammerCLI.option_accessor_name 'organization_id'
  options[key_organization_id] ||= organization_id(scoped_options('organization', options))

  find_resources(:lifecycle_environments, options)
    .select { |repo| options[key_names].include? repo['name'] }.map { |repo| repo['id'] }
end

#puppet_environment_id(options) ⇒ Object



53
54
55
# File 'lib/hammer_cli_katello/id_resolver.rb', line 53

def puppet_environment_id(options)
  get_id(:environments, options)
end

#repository_id(options) ⇒ Object



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

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



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

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