Improve systems class and template

- Add new functions.
This commit is contained in:
Uggla 2016-03-20 22:16:44 +01:00
parent 983720d444
commit 25a5f12287
2 changed files with 164 additions and 14 deletions

View File

@ -8,8 +8,17 @@ Systems information :
System id {{ system_index }}:
UUID : {{ system.get_uuid() }}
Type : {{ system.get_type() }}
Manufacturer : {{ system.get_manufacturer() }}
Model : {{ system.get_model() }}
SKU : {{ system.get_sku() }}
Serial : {{ system.get_serial_number() }}
Hostname : {{ system.get_hostname() }}
Bios version : {{ system.get_bios_version() }}
State : {{ system.get_status() }}
Power : {{ system.get_power() }}
Description : {{ system.get_description() }}
Chassis : {{ system.get_chassis() | join(', ') }}
Managers : {{ system.get_managers() | join(', ') }}
{#
Ethernet Interface :
{%- if system.ethernet_interfaces_collection %}

View File

@ -177,11 +177,11 @@ class Device(Base):
'''Get device status
:returns: device status or "Not available"
:rtype: string
:rtype: dict
'''
try:
return self.data.Status.State
return self.data.Status
except AttributeError:
return "Not available"
@ -197,6 +197,78 @@ class Device(Base):
except AttributeError:
return "Not available"
def get_model(self):
'''Get device model
:returns: device model or "Not available"
:rtype: string
'''
try:
return self.data.Model
except AttributeError:
return "Not available"
def get_manufacturer(self):
'''Get device manufacturer
:returns: device manufacturer or "Not available"
:rtype: string
'''
try:
return self.data.Manufacturer
except AttributeError:
return "Not available"
def get_serial_number(self):
'''Get serial number of the device.
:returns: serial number or "Not available"
:rtype: string
'''
try:
return self.data.SerialNumber
except AttributeError:
return "Not available"
def get_asset_tag(self):
'''Get asset tag of the device.
:returns: asset tag or "Not available"
:rtype: string
'''
try:
return self.data.AssetTag
except AttributeError:
return "Not available"
def get_sku(self):
'''Get sku number of the device.
:returns: sku number or "Not available"
:rtype: string
'''
try:
return self.data.SKU
except AttributeError:
return "Not available"
def get_part_number(self):
'''Get part number of the device.
:returns: part number or "Not available"
:rtype: string
'''
try:
return self.data.PartNumber
except AttributeError:
return "Not available"
class Root(Base):
'''Class to manage redfish Root data.'''
@ -273,7 +345,8 @@ class Managers(Device):
def get_managed_chassis(self):
'''Get managed chassis ids by the manager
:returns: list -- chassis ids or "Not available"
:returns: chassis ids or "Not available"
:rtype: list
'''
chassis_list = []
@ -290,7 +363,8 @@ class Managers(Device):
def get_managed_systems(self):
'''Get managed systems ids by the manager
:returns: list -- chassis ids or "Not available"
:returns: systems ids or "Not available"
:rtype: list
'''
systems_list = []
@ -298,7 +372,9 @@ class Managers(Device):
try:
for systems in links.ManagerForServers:
result = re.search(r'Systems/(\w+)', systems[mapping.redfish_mapper.map_links_ref(systems)])
result = re.search(
r'Systems/(\w+)',
systems[mapping.redfish_mapper.map_links_ref(systems)])
systems_list.append(result.group(1))
return systems_list
except AttributeError:
@ -379,28 +455,93 @@ class Systems(Device):
except AttributeError:
return "Not available"
def get_serial_number(self):
'''Get serial number of the system.
def get_hostname(self):
'''Get hostname of the system.
:returns: serial number or "Not available"
:returns: hostname or "Not available"
:rtype: string
'''
try:
return self.data.SerialNumber
return self.data.HostName
except AttributeError:
return "Not available"
def get_indicatorled(self):
'''Get indicatorled of the system.
:returns: indicatorled status or "Not available"
:rtype: string
'''
try:
return self.data.IndicatorLED
except AttributeError:
return "Not available"
def get_power(self):
'''Get power status of the system.
:returns: string -- power status or NULL if there is an issue
:returns: system power state or "Not available"
:rtype: string
'''
try:
return self.data.Power
except:
return ''
return self.data.PowerState
except AttributeError:
return "Not available"
def get_description(self):
'''Get description of the system.
:returns: system description or "Not available"
:rtype: string
'''
try:
return self.data.Description
except AttributeError:
return "Not available"
def get_chassis(self):
'''Get chassis ids used by the system
:returns: chassis ids or "Not available"
:rtype: list
'''
chassis_list = []
links = getattr(self.data, mapping.redfish_mapper.map_links(self.data))
try:
for chassis in links.Chassis:
result = re.search(
r'Chassis/(\w+)',
chassis[mapping.redfish_mapper.map_links_ref(chassis)])
chassis_list.append(result.group(1))
return chassis_list
except AttributeError:
return "Not available"
def get_managers(self):
'''Get manager ids used by the system
:returns: managers ids or "Not available"
:rtype: list
'''
managers_list = []
links = getattr(self.data, mapping.redfish_mapper.map_links(self.data))
try:
for manager in links.ManagedBy:
result = re.search(
r'Managers/(\w+)',
manager[mapping.redfish_mapper.map_links_ref(manager)])
managers_list.append(result.group(1))
return managers_list
except AttributeError:
return "Not available"
def set_parameter_json(self, value):
'''Generic function to set any system parameter using json structure