Class: Katello::Host::InfoProvider

Inherits:
HostInfo::Provider
  • Object
show all
Defined in:
app/models/katello/host/info_provider.rb

Instance Method Summary collapse

Instance Method Details

#content_version(content_view_environment) ⇒ Object



62
63
64
# File 'app/models/katello/host/info_provider.rb', line 62

def content_version(content_view_environment)
  content_view_environment.content_view.try(:version, content_view_environment.lifecycle_environment)
end

#content_view_components(content_view_environment) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
# File 'app/models/katello/host/info_provider.rb', line 49

def content_view_components(content_view_environment)
  return {} unless content_view_environment.content_view.try(:composite)

  components = {}
  content_version(content_view_environment).try(:content_view_version_components).map do |cv|
    cv_label = cv.component_version.content_view.label
    components[cv_label] = {}
    components[cv_label]['version'] = cv.component_version.try(:version)
    components[cv_label]['published'] = cv.component_version.try(:created_at).try(:time).to_s
  end
  components
end

#content_view_info(content_view_environment) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
# File 'app/models/katello/host/info_provider.rb', line 37

def content_view_info(content_view_environment)
  content_view = content_view_environment.content_view
  return {} if content_view.blank?
  {
    'label' => content_view.try(:label),
    'latest-version' => content_view.try(:latest_version),
    'version' => content_version(content_view_environment).try(:version),
    'published' => content_version(content_view_environment).try(:created_at).try(:time).to_s,
    'components' => content_view_components(content_view_environment)
  }
end

#host_infoObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/models/katello/host/info_provider.rb', line 6

def host_info
  info = {}
  info['parameters'] = {
    'foreman_host_collections' => host.host_collections.map(&:name)
  }

  if host.content_facet.present?
    info['parameters']['kickstart_repository'] = host.content_facet.kickstart_repository.try(:label)
    if host.single_content_view_environment?
      info['parameters']['lifecycle_environment'] = host.single_lifecycle_environment.try(:label)
      info['parameters']['content_view'] = host.single_content_view.try(:label)
      info['parameters']['content_view_info'] = content_view_info(host.content_view_environments.first)
    end
    info['parameters']['content_views'] = host.content_view_environments.map do |cve|
      content_view_info(cve).merge(
        'lifecycle_environment' => cve.lifecycle_environment.try(:label)
      )
    end
  end

  if (rhsm_url = host.content_source&.rhsm_url)
    info['parameters']['rhsm_url'] = rhsm_url.to_s
  end

  if (content_url = host.content_source&.pulp_content_url)
    info['parameters']['content_url'] = content_url.to_s
  end

  info
end