2
0
mirror of https://opendev.org/x/pyghmi synced 2026-08-29 01:56:49 +00:00

Update to newer XCC storage syntax

Two new variants of XCC storage cfg have
occurred, detect and handle them.

Change-Id: Ie53f53093b5737a4930ecb420b087a15d8149796
This commit is contained in:
Jarrod Johnson
2022-06-21 09:47:54 -04:00
parent 6226d4bb29
commit ff67d84ec6
2 changed files with 30 additions and 10 deletions
+15 -5
View File
@@ -1437,6 +1437,9 @@ class XCCClient(IMMClient):
url = '/api/function/raid_conf?params=raidlink_GetDefaultVolProp'
args = (url, cid, 0, params['drives'])
props = self.wc.grab_json_response(','.join([str(x) for x in args]))
if not props: # newer firmwarerequires raidlevel too
args = (url, cid, params['raidlevel'], 0, params['drives'])
props = self.wc.grab_json_response(','.join([str(x) for x in args]))
props = props['items'][0]
volumes = pool.volumes
remainingcap = params['capacity']
@@ -1507,14 +1510,21 @@ class XCCClient(IMMClient):
parms = {'raidlink_AddNewVolWithNaAsync': arglist}
rsp = self.wc.grab_json_response(url, parms)
if rsp['return'] == 14: # newer firmware
if cid[2] == 2:
cnum = cid[1]
arglist = '{0},{1},{2},{3},{4},{5},'.format(
arglist = '{0},{1},{2},{3},{4},{5},{6},'.format(
cnum, params['raidlevel'], params['spans'],
params['perspan'], params['drives'], params['hotspares'])
arglist += ''.join(vols) + ',{0}'.format(cid[2])
params['perspan'], 0, params['drives'], params['hotspares'])
arglist += ''.join(vols)
parms = {'raidlink_AddNewVolWithNaAsync': arglist}
rsp = self.wc.grab_json_response(url, parms)
if not rsp: # Purley
if cid[2] == 2:
cnum = cid[1]
arglist = '{0},{1},{2},{3},{4},{5},'.format(
cnum, params['raidlevel'], params['spans'],
params['perspan'], params['drives'], params['hotspares'])
arglist += ''.join(vols) + ',{0}'.format(cid[2])
parms = {'raidlink_AddNewVolWithNaAsync': arglist}
rsp = self.wc.grab_json_response(url, parms)
if rsp['return'] != 0:
raise Exception(
'Unexpected response to add volume command: ' + repr(rsp))
+15 -5
View File
@@ -567,6 +567,9 @@ class OEMHandler(generic.OEMHandler):
url = '/api/function/raid_conf?params=raidlink_GetDefaultVolProp'
args = (url, cid, 0, params['drives'])
props = self.wc.grab_json_response(','.join([str(x) for x in args]))
if not props: # newer firmwarerequires raidlevel too
args = (url, cid, params['raidlevel'], 0, params['drives'])
props = self.wc.grab_json_response(','.join([str(x) for x in args]))
props = props['items'][0]
volumes = pool.volumes
remainingcap = params['capacity']
@@ -638,14 +641,21 @@ class OEMHandler(generic.OEMHandler):
parms = {'raidlink_AddNewVolWithNaAsync': arglist}
rsp = self.wc.grab_json_response(url, parms)
if rsp['return'] == 14: # newer firmware
if cid[2] == 2:
cnum = cid[1]
arglist = '{0},{1},{2},{3},{4},{5},'.format(
arglist = '{0},{1},{2},{3},{4},{5},{6},'.format(
cnum, params['raidlevel'], params['spans'],
params['perspan'], params['drives'], params['hotspares'])
arglist += ''.join(vols) + ',{0}'.format(cid[2])
params['perspan'], 0, params['drives'], params['hotspares'])
arglist += ''.join(vols)
parms = {'raidlink_AddNewVolWithNaAsync': arglist}
rsp = self.wc.grab_json_response(url, parms)
if not rsp: # Purley
if cid[2] == 2:
cnum = cid[1]
arglist = '{0},{1},{2},{3},{4},{5},'.format(
cnum, params['raidlevel'], params['spans'],
params['perspan'], params['drives'], params['hotspares'])
arglist += ''.join(vols) + ',{0}'.format(cid[2])
parms = {'raidlink_AddNewVolWithNaAsync': arglist}
rsp = self.wc.grab_json_response(url, parms)
if rsp['return'] != 0:
raise Exception(
'Unexpected response to add volume command: ' + repr(rsp))