Add Thermal, Power classes and review get_type()
This commit is contained in:
parent
a287469ff2
commit
d940d11af4
@ -8,12 +8,31 @@ Chassis information :
|
|||||||
Chassis id {{ chassis_index }}:
|
Chassis id {{ chassis_index }}:
|
||||||
Manufacturer : {{ chassis.get_manufacturer() }}
|
Manufacturer : {{ chassis.get_manufacturer() }}
|
||||||
Model : {{ chassis.get_model() }}
|
Model : {{ chassis.get_model() }}
|
||||||
Chassis Type : {{ chassis.get_chassis_type() }}
|
Chassis Type : {{ chassis.get_type() }}
|
||||||
PartNumber : {{ chassis.get_part_number() }}
|
PartNumber : {{ chassis.get_part_number() }}
|
||||||
SKU : {{ chassis.get_sku() }}
|
SKU : {{ chassis.get_sku() }}
|
||||||
Serial : {{ chassis.get_serial_number() }}
|
Serial : {{ chassis.get_serial_number() }}
|
||||||
AssetTag : {{ chassis.get_asset_tag() }}
|
AssetTag : {{ chassis.get_asset_tag() }}
|
||||||
Status : State : {{ chassis.get_status().Health }} / Health : {{ chassis.get_status().Health }}
|
Status : State : {{ chassis.get_status().Health }} / Health : {{ chassis.get_status().Health }}
|
||||||
|
{%- if chassis.thermal %}
|
||||||
|
Temperatures :
|
||||||
|
{%- if chassis.thermal.get_temperatures() == 'Not available' %}
|
||||||
|
Not available
|
||||||
|
{%- else %}
|
||||||
|
{%- for sensor, temp in chassis.thermal.get_temperatures().items() | sort %}
|
||||||
|
{{ sensor }} : {{ temp }}
|
||||||
|
{%- endfor %}
|
||||||
|
{%- endif %}
|
||||||
|
Fans :
|
||||||
|
{%- if chassis.thermal.get_fans() == 'Not available' %}
|
||||||
|
Not available
|
||||||
|
{%- else %}
|
||||||
|
{%- for fan, rpm in chassis.thermal.get_fans().items() | sort %}
|
||||||
|
{{ fan }} : {{ rpm }}
|
||||||
|
{%- endfor %}
|
||||||
|
{%- endif %}
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
{#
|
{#
|
||||||
Hostname : {{ system.get_hostname() }}
|
Hostname : {{ system.get_hostname() }}
|
||||||
Bios version : {{ system.get_bios_version() }}
|
Bios version : {{ system.get_bios_version() }}
|
||||||
|
@ -185,18 +185,6 @@ class Device(Base):
|
|||||||
except AttributeError:
|
except AttributeError:
|
||||||
return "Not available"
|
return "Not available"
|
||||||
|
|
||||||
def get_type(self):
|
|
||||||
'''Get device type
|
|
||||||
|
|
||||||
:returns: device type or "Not available"
|
|
||||||
:rtype: string
|
|
||||||
|
|
||||||
'''
|
|
||||||
try:
|
|
||||||
return self.data.SystemType
|
|
||||||
except AttributeError:
|
|
||||||
return "Not available"
|
|
||||||
|
|
||||||
def get_model(self):
|
def get_model(self):
|
||||||
'''Get device model
|
'''Get device model
|
||||||
|
|
||||||
@ -329,6 +317,18 @@ class Managers(Device):
|
|||||||
# This means we don't have EthernetInterfaces
|
# This means we don't have EthernetInterfaces
|
||||||
self.ethernet_interfaces_collection = None
|
self.ethernet_interfaces_collection = None
|
||||||
|
|
||||||
|
def get_type(self):
|
||||||
|
'''Get manager type
|
||||||
|
|
||||||
|
:returns: manager type or "Not available"
|
||||||
|
:rtype: string
|
||||||
|
|
||||||
|
'''
|
||||||
|
try:
|
||||||
|
return self.data.ManagerType
|
||||||
|
except AttributeError:
|
||||||
|
return "Not available"
|
||||||
|
|
||||||
def get_firmware_version(self):
|
def get_firmware_version(self):
|
||||||
'''Get firmware version of the manager
|
'''Get firmware version of the manager
|
||||||
|
|
||||||
@ -566,6 +566,18 @@ class Systems(Device):
|
|||||||
except AttributeError:
|
except AttributeError:
|
||||||
return "Not available"
|
return "Not available"
|
||||||
|
|
||||||
|
def get_type(self):
|
||||||
|
'''Get system type
|
||||||
|
|
||||||
|
:returns: system type or "Not available"
|
||||||
|
:rtype: string
|
||||||
|
|
||||||
|
'''
|
||||||
|
try:
|
||||||
|
return self.data.SystemType
|
||||||
|
except AttributeError:
|
||||||
|
return "Not available"
|
||||||
|
|
||||||
def get_chassis(self):
|
def get_chassis(self):
|
||||||
'''Get chassis ids used by the system
|
'''Get chassis ids used by the system
|
||||||
|
|
||||||
@ -870,15 +882,19 @@ class Chassis(Device):
|
|||||||
'''Class constructor'''
|
'''Class constructor'''
|
||||||
super(Chassis, self).__init__(url, connection_parameters)
|
super(Chassis, self).__init__(url, connection_parameters)
|
||||||
|
|
||||||
# try:
|
try:
|
||||||
# self.ethernet_interfaces_collection = \
|
self.thermal = Thermal(self.get_link_url('Thermal'),
|
||||||
# EthernetInterfacesCollection(
|
connection_parameters)
|
||||||
# self.get_link_url('EthernetInterfaces'),
|
except AttributeError:
|
||||||
# connection_parameters)
|
self.thermal = None
|
||||||
# except AttributeError:
|
|
||||||
# # This means we don't have EthernetInterfaces
|
try:
|
||||||
# self.ethernet_interfaces_collection = None
|
self.power = Power(self.get_link_url('Power'),
|
||||||
def get_chassis_type(self):
|
connection_parameters)
|
||||||
|
except AttributeError:
|
||||||
|
self.Power = None
|
||||||
|
|
||||||
|
def get_type(self):
|
||||||
'''Get chassis type
|
'''Get chassis type
|
||||||
|
|
||||||
:returns: chassis type or "Not available"
|
:returns: chassis type or "Not available"
|
||||||
@ -889,3 +905,43 @@ class Chassis(Device):
|
|||||||
return self.data.ChassisType
|
return self.data.ChassisType
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
return "Not available"
|
return "Not available"
|
||||||
|
|
||||||
|
|
||||||
|
class Thermal(Base):
|
||||||
|
'''Class to manage redfish Thermal data.'''
|
||||||
|
def get_temperatures(self):
|
||||||
|
'''Get chassis sensors name and temparature
|
||||||
|
|
||||||
|
:returns: chassis sensor and temperature
|
||||||
|
:rtype: dict
|
||||||
|
|
||||||
|
'''
|
||||||
|
temperatures = {}
|
||||||
|
|
||||||
|
try:
|
||||||
|
for sensor in self.data.Temperatures:
|
||||||
|
temperatures[sensor.Name] = sensor.ReadingCelsius
|
||||||
|
return temperatures
|
||||||
|
except AttributeError:
|
||||||
|
return "Not available"
|
||||||
|
|
||||||
|
def get_fans(self):
|
||||||
|
'''Get chassis fan name and rpm
|
||||||
|
|
||||||
|
:returns: chassis fan and rpm
|
||||||
|
:rtype: dict
|
||||||
|
|
||||||
|
'''
|
||||||
|
fans = {}
|
||||||
|
|
||||||
|
try:
|
||||||
|
for fan in self.data.Fans:
|
||||||
|
fans[fan.FanName] = fan.ReadingRPM
|
||||||
|
return fans
|
||||||
|
except AttributeError:
|
||||||
|
return "Not available"
|
||||||
|
|
||||||
|
|
||||||
|
class Power(Base):
|
||||||
|
'''Class to manage redfish Power data.'''
|
||||||
|
pass
|
||||||
|
Loading…
x
Reference in New Issue
Block a user