2
0
mirror of https://github.com/xcat2/confluent.git synced 2026-01-12 02:52:30 +00:00

Implement discovery for newer SMMv3 firmware

This commit is contained in:
Jarrod Johnson
2024-12-11 10:22:10 -05:00
parent 2c9b526de4
commit ddd97388a6
2 changed files with 20 additions and 1 deletions

View File

@@ -26,6 +26,19 @@ getaddrinfo = eventlet.support.greendns.getaddrinfo
class NodeHandler(redfishbmc.NodeHandler):
devname = 'SMM3'
def scan(self):
attrs = self.info.get('attributes', {})
mtm = attrs.get('enclosure-machinetype-model', None)
if mtm:
self.info['modelnumber'] = mtm.strip()
sn = attrs.get('enclosure-serial-number', None)
if sn:
self.info['serialnumber'] = sn.strip()
modelname = attrs.get('enclosure-component-name', None)
if modelname:
modelname = modelname.split(' MT:')[0]
self.info['modelname'] = modelname
def get_firmware_default_account_info(self):
return ('USERID', 'PASSW0RD')

View File

@@ -463,7 +463,7 @@ def check_fish(urldata, port=443, verifycallback=None):
return None
if url == '/DeviceDescription.json':
if not peerinfo:
if data['services'] == ['urn::dmtf-org:service:redfish-rest:']:
if data.get('services', None) == ['urn::dmtf-org:service:redfish-rest:']:
peerinfo = wc.grab_json_response('/redfish/v1/')
if peerinfo:
data['services'] = ['lenovo-smm3']
@@ -485,6 +485,12 @@ def check_fish(urldata, port=443, verifycallback=None):
data['services'] = ['lenovo-xcc'] if 'xcc-variant' not in peerinfo else ['lenovo-xcc' + peerinfo['xcc-variant']]
return data
except (IndexError, KeyError):
if 'type' in peerinfo and peerinfo['type'].lower() == 'lenovo-smm3':
del peerinfo['xcc-variant']
data['uuid'] = peerinfo['enclosure-uuid']
data['services'] = ['lenovo-smm3']
data['attributes'] = peerinfo
return data
return None
url = '/redfish/v1/'
peerinfo = wc.grab_json_response('/redfish/v1/')