Class: ForemanDatacenter::Device

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/foreman_datacenter/device.rb

Instance Method Summary collapse

Instance Method Details

#free_console_portsObject



74
75
76
# File 'app/models/foreman_datacenter/device.rb', line 74

def free_console_ports
  console_ports.where(console_server_port_id: nil)
end

#free_console_server_portsObject



82
83
84
85
# File 'app/models/foreman_datacenter/device.rb', line 82

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_interfacesObject



70
71
72
# File 'app/models/foreman_datacenter/device.rb', line 70

def free_interfaces
  interfaces.where(mgmt_only: false).reject(&:connected?)
end

#free_power_outletsObject



87
88
89
90
# File 'app/models/foreman_datacenter/device.rb', line 87

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_portsObject



78
79
80
# File 'app/models/foreman_datacenter/device.rb', line 78

def free_power_ports
  power_ports.where(power_outlet_id: nil)
end

#ip_addressObject



46
47
48
# File 'app/models/foreman_datacenter/device.rb', line 46

def ip_address
  primary_ip4 || primary_ip6
end

#is_console_serverObject



54
55
56
# File 'app/models/foreman_datacenter/device.rb', line 54

def is_console_server
  device_type.try(:is_console_server)
end

#is_network_deviceObject



62
63
64
# File 'app/models/foreman_datacenter/device.rb', line 62

def is_network_device
  device_type.try(:is_network_device)
end

#is_pduObject



58
59
60
# File 'app/models/foreman_datacenter/device.rb', line 58

def is_pdu
  device_type.try(:is_pdu)
end

#manufacturer_idObject



50
51
52
# File 'app/models/foreman_datacenter/device.rb', line 50

def manufacturer_id
  device_type.try(:manufacturer_id)
end

#parent?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'app/models/foreman_datacenter/device.rb', line 66

def parent?
  device_type.try(:subdevice_role) == 'Parent'
end

#siteObject



42
43
44
# File 'app/models/foreman_datacenter/device.rb', line 42

def site
  rack.site
end

#site_idObject



38
39
40
# File 'app/models/foreman_datacenter/device.rb', line 38

def site_id
  rack.try(:site_id)
end