6ffbd4aec8
- Add function get_managed_chassis. - Add function get_managed_systems. - Modiy mapping to handle proliant fw 2.40 bugs reporting : - links instead of Links. - href instead of @odata.id. - I'll report this bug to redfish folks. - Various PEP8 cleans.
52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
# coding=utf-8
|
|
|
|
redfish_mapper = None
|
|
redfish_version = None
|
|
redfish_root_name = None
|
|
|
|
class RedfishVersionMapping(object):
|
|
'''Implements basic url path mapping beetween Redfish versions.'''
|
|
|
|
def __init__(self, version, rootname):
|
|
self.__version = version
|
|
self.__rootname = rootname
|
|
|
|
def map_sessionservice(self):
|
|
if self.__version == '0.95':
|
|
return 'Sessions'
|
|
return 'SessionService'
|
|
|
|
def map_links(self, data_dict=None):
|
|
if data_dict == None:
|
|
if self.__version == '0.95':
|
|
return 'links'
|
|
else:
|
|
# Checking if we have Links or links.
|
|
# This is to deal with proliant firmware 2.40 bug that reports
|
|
# incorrectly links instead of Links (Redfish standard)
|
|
try:
|
|
data_dict.links
|
|
return 'links'
|
|
except AttributeError:
|
|
pass
|
|
return 'Links'
|
|
|
|
def map_links_ref(self, data_dict=None):
|
|
if data_dict == None:
|
|
if self.__version == '0.95':
|
|
return 'href'
|
|
else:
|
|
# Checking if we have @odata.id or href.
|
|
# This is to deal with proliant firmware 2.40 bug that reports
|
|
# incorrectly href instead of @odata.id (Redfish standard)
|
|
try:
|
|
data_dict.href
|
|
return 'href'
|
|
except AttributeError:
|
|
pass
|
|
return '@odata.id'
|
|
|
|
def map_members(self):
|
|
if self.__version == '0.95':
|
|
return 'Member'
|
|
return 'Members' |