Class: ForemanDatacenter::Device
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- ForemanDatacenter::Device
- Defined in:
- app/models/foreman_datacenter/device.rb
Instance Method Summary collapse
- #free_console_ports ⇒ Object
- #free_console_server_ports ⇒ Object
- #free_interfaces ⇒ Object
- #free_power_outlets ⇒ Object
- #free_power_ports ⇒ Object
- #ip_address ⇒ Object
- #is_console_server ⇒ Object
- #is_network_device ⇒ Object
- #is_pdu ⇒ Object
- #mac_address ⇒ Object
- #manufacturer_id ⇒ Object
- #parent? ⇒ Boolean
- #populate_from_host(host) ⇒ Object
- #site ⇒ Object
- #site_id ⇒ Object
Instance Method Details
#free_console_ports ⇒ Object
84 85 86 |
# File 'app/models/foreman_datacenter/device.rb', line 84 def free_console_ports console_ports.where(console_server_port_id: nil) end |
#free_console_server_ports ⇒ Object
92 93 94 95 |
# File 'app/models/foreman_datacenter/device.rb', line 92 def free_console_server_ports console_server_ports.joins('LEFT JOIN console_ports ON console_server_ports.id = console_ports.console_server_port_id'). where(console_ports: { console_server_port_id: nil }) end |
#free_interfaces ⇒ Object
80 81 82 |
# File 'app/models/foreman_datacenter/device.rb', line 80 def free_interfaces interfaces.where(mgmt_only: false).reject(&:connected?) end |
#free_power_outlets ⇒ Object
97 98 99 100 |
# File 'app/models/foreman_datacenter/device.rb', line 97 def free_power_outlets power_outlets.joins('LEFT JOIN power_ports ON power_outlets.id = power_ports.power_outlet_id'). where(power_ports: { power_outlet_id: nil }) end |
#free_power_ports ⇒ Object
88 89 90 |
# File 'app/models/foreman_datacenter/device.rb', line 88 def free_power_ports power_ports.where(power_outlet_id: nil) end |
#ip_address ⇒ Object
52 53 54 |
# File 'app/models/foreman_datacenter/device.rb', line 52 def ip_address ipmi_interface.try(:ip_address) || primary_ip4 end |
#is_console_server ⇒ Object
64 65 66 |
# File 'app/models/foreman_datacenter/device.rb', line 64 def is_console_server device_type.try(:is_console_server) end |
#is_network_device ⇒ Object
72 73 74 |
# File 'app/models/foreman_datacenter/device.rb', line 72 def is_network_device device_type.try(:is_network_device) end |
#is_pdu ⇒ Object
68 69 70 |
# File 'app/models/foreman_datacenter/device.rb', line 68 def is_pdu device_type.try(:is_pdu) end |
#mac_address ⇒ Object
56 57 58 |
# File 'app/models/foreman_datacenter/device.rb', line 56 def mac_address ipmi_interface.try(:mac_address) end |
#manufacturer_id ⇒ Object
60 61 62 |
# File 'app/models/foreman_datacenter/device.rb', line 60 def manufacturer_id device_type.try(:manufacturer_id) end |
#parent? ⇒ Boolean
76 77 78 |
# File 'app/models/foreman_datacenter/device.rb', line 76 def parent? device_type.try(:subdevice_role) == 'Parent' end |
#populate_from_host(host) ⇒ Object
102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'app/models/foreman_datacenter/device.rb', line 102 def populate_from_host(host) self.host = host self.name = host.name device_type = DeviceType.for_host(host) self.device_type = device_type if device_type self.device_role = DeviceRole.for_host unless self.device_role serial = host.fact_value_by_name('serialnumber') self.serial = serial.value if serial end |
#site ⇒ Object
48 49 50 |
# File 'app/models/foreman_datacenter/device.rb', line 48 def site rack.site end |
#site_id ⇒ Object
44 45 46 |
# File 'app/models/foreman_datacenter/device.rb', line 44 def site_id rack.try(:site_id) end |