app/models/katello/purpose_status.rb in katello-3.11.2 vs app/models/katello/purpose_status.rb in katello-3.12.0.rc1

- old
+ new

@@ -1,53 +1,68 @@ module Katello class PurposeStatus < HostStatus::Status - VALID = 0 - INVALID = 1 + MATCHED = 0 + MISMATCHED = 1 UNKNOWN = 2 + NOT_SPECIFIED = 3 - SUBSTATUSES = [ - Katello::PurposeSlaStatus, - Katello::PurposeRoleStatus, - Katello::PurposeUsageStatus, - Katello::PurposeAddonsStatus - ].freeze + def self.status_map + map = { + mismatched: MISMATCHED, + matched: MATCHED, + not_specified: NOT_SPECIFIED + } + map.default = UNKNOWN + map + end + def self.status_name N_('System Purpose') end def self.humanized_name 'purpose' end - def to_label(_options = {}) + def self.to_label(status) case status - when VALID + when MATCHED N_('Matched') - when INVALID + when MISMATCHED N_('Mismatched') + when NOT_SPECIFIED + N_('Not Specified') else N_('Unknown') end end + def self.to_status(status, purpose_method, options) + return UNKNOWN unless status.relevant? + + if options.key?(:status_override) + return self.status_map[options[:status_override]] + end + + consumer = status.host.subscription_facet.candlepin_consumer + self.status_map[consumer.system_purpose.send(purpose_method)] + end + + def to_label(_options = {}) + self.class.to_label(status) + end + def to_global(_options = {}) - case status - when VALID + if [MATCHED, UNKNOWN, NOT_SPECIFIED].include?(status) ::HostStatus::Global::OK else ::HostStatus::Global::WARN end end - def to_status(_options = {}) - return UNKNOWN unless relevant? - - SUBSTATUSES.each do |status_class| - return INVALID if host.get_status(status_class).status != status_class::VALID - end - - VALID + def to_status(options = {}) + self.class.to_status(self, :overall_status, options) end def relevant?(_options = {}) host.subscription_facet.try(:uuid) end