2
0
mirror of https://github.com/xcat2/confluent.git synced 2025-12-24 18:11:47 +00:00

Implement support for multi-manager XCC managed systems

This commit is contained in:
Jarrod Johnson
2025-10-08 09:42:17 -04:00
parent 179ad4e196
commit 7cdfcd4913
2 changed files with 14 additions and 6 deletions

View File

@@ -68,14 +68,19 @@ class NodeHandler(generic.NodeHandler):
self._srvroot = srvroot
return self._srvroot
def get_manager_url(self, wc):
mgrs = self.srvroot(wc).get('Managers', {}).get('@odata.id', None)
if not mgrs:
raise Exception("No Managers resource on BMC")
rsp = wc.grab_json_response(mgrs)
if len(rsp.get('Members', [])) != 1:
raise Exception("Can not handle multiple Managers")
mgrurl = rsp['Members'][0]['@odata.id']
return mgrurl
def mgrinfo(self, wc):
if not self._mgrinfo:
mgrs = self.srvroot(wc)['Managers']['@odata.id']
rsp = wc.grab_json_response(mgrs)
if len(rsp['Members']) != 1:
raise Exception("Can not handle multiple Managers")
mgrurl = rsp['Members'][0]['@odata.id']
self._mgrinfo = wc.grab_json_response(mgrurl)
self._mgrinfo = wc.grab_json_response(self.get_manager_url(wc))
return self._mgrinfo

View File

@@ -29,6 +29,9 @@ class NodeHandler(redfishbmc.NodeHandler):
def get_firmware_default_account_info(self):
return ('USERID', 'PASSW0RD')
def get_manager_url(self, wc):
return '/redfish/v1/Managers/1'
def scan(self):
ip, port = self.get_web_port_and_ip()
c = webclient.SecureHTTPConnection(ip, port,