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:
@@ -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')
|
||||
|
||||
|
||||
@@ -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/')
|
||||
|
||||
Reference in New Issue
Block a user