Project

General

Profile

Bug #26763 » info_provider.rb

Jean-Marie Magnier, 08/09/2019 09:58 AM

 
require 'host_info'

module Katello
module Host
class InfoProvider < ::HostInfo::Provider
def host_info
info = {}
info['parameters'] = {
'kt_env' => host.lifecycle_environment.try(:label), #deprecated
'kt_cv' => host.content_view.try(:label), #deprecated
'foreman_host_collections' => host.host_collections.map(&:name),
'lifecycle_environment' => host.lifecycle_environment.try(:label),

'content_view' => host.content_view.try(:label),
'content_view_info' => content_view_info
}

if host.content_facet.present?
info['parameters']['kickstart_repository'] = host.content_facet.kickstart_repository.try(:label)
end
info
end

def content_view_info
return {} if host.content_view.blank?

content_view_info = {
'label' => host.content_view.try(:label),
'latest-version' => host.content_view.try(:latest_version),
'version' => content_version.try(:version),
'published' => content_version.try(:created_at).try(:time).to_s,
'components' => content_view_components
}

content_view_info
end

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

components = {}
content_version.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

def content_version
host.content_view.try(:version, host.lifecycle_environment)
end
end
end
end
(3-3/7)