Class: ForemanWreckingball::CpuHotAddStatus

Inherits:
HostStatus::Status
  • Object
show all
Defined in:
app/models/foreman_wreckingball/cpu_hot_add_status.rb

Constant Summary collapse

OK =
0
PERFORMANCE_DEGRATION =
1

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.descriptionObject



16
17
18
# File 'app/models/foreman_wreckingball/cpu_hot_add_status.rb', line 16

def self.description
  N_('Enabling CPU hot-add disables vNUMA, the virtual machine will instead use UMA. This might cause a performance degration.')
end

.global_ok_listObject



41
42
43
# File 'app/models/foreman_wreckingball/cpu_hot_add_status.rb', line 41

def self.global_ok_list
  [OK]
end

.host_associationObject



12
13
14
# File 'app/models/foreman_wreckingball/cpu_hot_add_status.rb', line 12

def self.host_association
  :vmware_cpu_hot_add_status_object
end

.status_nameObject



8
9
10
# File 'app/models/foreman_wreckingball/cpu_hot_add_status.rb', line 8

def self.status_name
  N_('CPU Hot Plug')
end

.supports_remediate?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'app/models/foreman_wreckingball/cpu_hot_add_status.rb', line 20

def self.supports_remediate?
  false
end

.to_global(status) ⇒ Object



32
33
34
35
36
37
38
39
# File 'app/models/foreman_wreckingball/cpu_hot_add_status.rb', line 32

def self.to_global(status)
  case status
  when PERFORMANCE_DEGRATION
    HostStatus::Global::ERROR
  else
    HostStatus::Global::OK
  end
end

Instance Method Details

#hypervisor_min_coresObject



64
65
66
# File 'app/models/foreman_wreckingball/cpu_hot_add_status.rb', line 64

def hypervisor_min_cores
  host.vmware_facet.vmware_hypervisor_facets.minimum(:cpu_cores)
end

#performance_degration?Boolean

Returns:

  • (Boolean)


58
59
60
61
62
# File 'app/models/foreman_wreckingball/cpu_hot_add_status.rb', line 58

def performance_degration?
  min_cores = hypervisor_min_cores
  return false unless min_cores
  host.vmware_facet.cpu_hot_add? && host.vmware_facet.cpus > min_cores
end

#relevant?(_options = {}) ⇒ Boolean

Returns:

  • (Boolean)


54
55
56
# File 'app/models/foreman_wreckingball/cpu_hot_add_status.rb', line 54

def relevant?(_options = {})
  host&.vmware_facet && host.vmware_facet.try(:cpu_hot_add?)
end

#to_global(_options = {}) ⇒ Object



28
29
30
# File 'app/models/foreman_wreckingball/cpu_hot_add_status.rb', line 28

def to_global(_options = {})
  self.class.to_global(status)
end

#to_label(_options = {}) ⇒ Object



45
46
47
48
49
50
51
52
# File 'app/models/foreman_wreckingball/cpu_hot_add_status.rb', line 45

def to_label(_options = {})
  case status
  when PERFORMANCE_DEGRATION
    N_('Possible performance degration')
  else
    N_('No Impact')
  end
end

#to_status(_options = {}) ⇒ Object



24
25
26
# File 'app/models/foreman_wreckingball/cpu_hot_add_status.rb', line 24

def to_status(_options = {})
  performance_degration? ? PERFORMANCE_DEGRATION : OK
end