pyghmi 1.5.58__py3-none-any.whl → 1.5.60__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- pyghmi/ipmi/oem/lenovo/handler.py +1 -1
- pyghmi/ipmi/oem/lenovo/imm.py +13 -2
- pyghmi/ipmi/oem/lenovo/nextscale.py +7 -2
- pyghmi/redfish/oem/generic.py +2 -2
- pyghmi/redfish/oem/lenovo/xcc.py +14 -3
- {pyghmi-1.5.58.dist-info → pyghmi-1.5.60.dist-info}/METADATA +1 -1
- {pyghmi-1.5.58.dist-info → pyghmi-1.5.60.dist-info}/RECORD +13 -13
- pyghmi-1.5.60.dist-info/pbr.json +1 -0
- pyghmi-1.5.58.dist-info/pbr.json +0 -1
- {pyghmi-1.5.58.dist-info → pyghmi-1.5.60.dist-info}/AUTHORS +0 -0
- {pyghmi-1.5.58.dist-info → pyghmi-1.5.60.dist-info}/LICENSE +0 -0
- {pyghmi-1.5.58.dist-info → pyghmi-1.5.60.dist-info}/WHEEL +0 -0
- {pyghmi-1.5.58.dist-info → pyghmi-1.5.60.dist-info}/entry_points.txt +0 -0
- {pyghmi-1.5.58.dist-info → pyghmi-1.5.60.dist-info}/top_level.txt +0 -0
@@ -1202,7 +1202,7 @@ class OEMHandler(generic.OEMHandler):
|
|
1202
1202
|
if self.has_xcc:
|
1203
1203
|
return self.immhandler.get_bmc_configuration()
|
1204
1204
|
if self.is_fpc:
|
1205
|
-
return self.smmhandler.get_bmc_configuration()
|
1205
|
+
return self.smmhandler.get_bmc_configuration(self._fpc_variant)
|
1206
1206
|
if self.has_tsma:
|
1207
1207
|
return self.tsmahandler.get_bmc_configuration()
|
1208
1208
|
return super(OEMHandler, self).get_bmc_configuration()
|
pyghmi/ipmi/oem/lenovo/imm.py
CHANGED
@@ -1489,12 +1489,23 @@ class XCCClient(IMMClient):
|
|
1489
1489
|
def _create_array(self, pool):
|
1490
1490
|
params = self._parse_array_spec(pool)
|
1491
1491
|
cid = params['controller'].split(',')[0]
|
1492
|
+
cslotno = params['controller'].split(',')[1]
|
1492
1493
|
url = '/api/function/raid_conf?params=raidlink_GetDefaultVolProp'
|
1493
1494
|
args = (url, cid, 0, params['drives'])
|
1494
1495
|
props = self.wc.grab_json_response(','.join([str(x) for x in args]))
|
1496
|
+
usesctrlslot = False
|
1495
1497
|
if not props: # newer firmware requires raidlevel too
|
1496
1498
|
args = (url, cid, params['raidlevel'], 0, params['drives'])
|
1497
1499
|
props = self.wc.grab_json_response(','.join([str(x) for x in args]))
|
1500
|
+
elif 'return' in props and props['return'] == 22:
|
1501
|
+
# Jan 2023 XCC FW - without controller slot number
|
1502
|
+
args = (url, cid, params['raidlevel'], 0, params['drives'])
|
1503
|
+
props = self.wc.grab_json_response(','.join([str(x) for x in args]))
|
1504
|
+
if 'return' in props and props['return'] == 22:
|
1505
|
+
usesctrlslot = True
|
1506
|
+
# Jan 2023 XCC FW - with controller slot number
|
1507
|
+
args = (url, cid, params['raidlevel'], 0, params['drives'], cslotno)
|
1508
|
+
props = self.wc.grab_json_response(','.join([str(x) for x in args]))
|
1498
1509
|
props = props['items'][0]
|
1499
1510
|
volumes = pool.volumes
|
1500
1511
|
remainingcap = params['capacity']
|
@@ -1565,14 +1576,14 @@ class XCCClient(IMMClient):
|
|
1565
1576
|
parms = {'raidlink_AddNewVolWithNaAsync': arglist}
|
1566
1577
|
rsp = self.wc.grab_json_response(url, parms)
|
1567
1578
|
if rsp['return'] == 14: # newer firmware
|
1568
|
-
if 'supported_cpwb' in props: #
|
1579
|
+
if 'supported_cpwb' in props and not usesctrlslot: # no ctrl_type
|
1569
1580
|
arglist = '{0},{1},{2},{3},{4},{5},{6},'.format(
|
1570
1581
|
cnum, params['raidlevel'], params['spans'],
|
1571
1582
|
params['perspan'], 0, params['drives'], params['hotspares'])
|
1572
1583
|
arglist += ''.join(vols)
|
1573
1584
|
parms = {'raidlink_AddNewVolWithNaAsync': arglist}
|
1574
1585
|
rsp = self.wc.grab_json_response(url, parms)
|
1575
|
-
else: #
|
1586
|
+
else: # with ctrl_type
|
1576
1587
|
if cid[2] == 2:
|
1577
1588
|
cnum = cid[1]
|
1578
1589
|
arglist = '{0},{1},{2},{3},{4},{5},'.format(
|
@@ -415,7 +415,7 @@ class SMMClient(object):
|
|
415
415
|
5: 'Boosted',
|
416
416
|
}
|
417
417
|
|
418
|
-
def get_bmc_configuration(self):
|
418
|
+
def get_bmc_configuration(self, variant):
|
419
419
|
settings = {}
|
420
420
|
wc = self.wc
|
421
421
|
wc.request(
|
@@ -453,7 +453,10 @@ class SMMClient(object):
|
|
453
453
|
powercfg = self.ipmicmd.xraw_command(0x32, 0xa2)
|
454
454
|
powercfg = bytearray(powercfg['data'])
|
455
455
|
if len(powercfg) == 5:
|
456
|
-
|
456
|
+
if variant and variant >> 5:
|
457
|
+
powercfg = powercfg[-2:]
|
458
|
+
else:
|
459
|
+
powercfg = powercfg[1:]
|
457
460
|
val = powercfg[0]
|
458
461
|
if val == 2:
|
459
462
|
val = 'N+N'
|
@@ -700,6 +703,8 @@ class SMMClient(object):
|
|
700
703
|
if None in powercfg:
|
701
704
|
currcfg = self.ipmicmd.xraw_command(0x32, 0xa2)
|
702
705
|
currcfg = bytearray(currcfg['data'])
|
706
|
+
if variant and variant >> 5 and len(currcfg) == 5:
|
707
|
+
currcfg = currcfg[-2:]
|
703
708
|
if powercfg[0] is None:
|
704
709
|
powercfg[0] = currcfg[0]
|
705
710
|
if powercfg[1] is None:
|
pyghmi/redfish/oem/generic.py
CHANGED
@@ -185,9 +185,9 @@ class OEMHandler(object):
|
|
185
185
|
return {'bootdev': reqbootdev}
|
186
186
|
except Exception:
|
187
187
|
del payload['BootSourceOverrideMode']
|
188
|
-
thetag = fishclient.sysinfo.get('@odata.etag', None)
|
188
|
+
#thetag = fishclient.sysinfo.get('@odata.etag', None)
|
189
189
|
fishclient._do_web_request(fishclient.sysurl, payload, method='PATCH',
|
190
|
-
etag=thetag)
|
190
|
+
etag='*') # thetag)
|
191
191
|
return {'bootdev': reqbootdev}
|
192
192
|
|
193
193
|
def _get_cache(self, url):
|
pyghmi/redfish/oem/lenovo/xcc.py
CHANGED
@@ -811,12 +811,23 @@ class OEMHandler(generic.OEMHandler):
|
|
811
811
|
def _create_array(self, pool):
|
812
812
|
params = self._parse_array_spec(pool)
|
813
813
|
cid = params['controller'].split(',')[0]
|
814
|
+
cslotno = params['controller'].split(',')[1]
|
814
815
|
url = '/api/function/raid_conf?params=raidlink_GetDefaultVolProp'
|
815
816
|
args = (url, cid, 0, params['drives'])
|
816
817
|
props = self.wc.grab_json_response(','.join([str(x) for x in args]))
|
817
|
-
|
818
|
+
usesctrlslot = False
|
819
|
+
if not props: # newer firmware requires raidlevel too
|
818
820
|
args = (url, cid, params['raidlevel'], 0, params['drives'])
|
819
821
|
props = self.wc.grab_json_response(','.join([str(x) for x in args]))
|
822
|
+
elif 'return' in props and props['return'] == 22:
|
823
|
+
# Jan 2023 XCC FW - without controller slot number
|
824
|
+
args = (url, cid, params['raidlevel'], 0, params['drives'])
|
825
|
+
props = self.wc.grab_json_response(','.join([str(x) for x in args]))
|
826
|
+
if 'return' in props and props['return'] == 22:
|
827
|
+
usesctrlslot = True
|
828
|
+
# Jan 2023 XCC FW - with controller slot number
|
829
|
+
args = (url, cid, params['raidlevel'], 0, params['drives'], cslotno)
|
830
|
+
props = self.wc.grab_json_response(','.join([str(x) for x in args]))
|
820
831
|
props = props['items'][0]
|
821
832
|
volumes = pool.volumes
|
822
833
|
remainingcap = params['capacity']
|
@@ -888,14 +899,14 @@ class OEMHandler(generic.OEMHandler):
|
|
888
899
|
parms = {'raidlink_AddNewVolWithNaAsync': arglist}
|
889
900
|
rsp = self.wc.grab_json_response(url, parms)
|
890
901
|
if rsp['return'] == 14: # newer firmware
|
891
|
-
if 'supported_cpwb' in props: #
|
902
|
+
if 'supported_cpwb' in props and not usesctrlslot: # no ctrl_type
|
892
903
|
arglist = '{0},{1},{2},{3},{4},{5},{6},'.format(
|
893
904
|
cnum, params['raidlevel'], params['spans'],
|
894
905
|
params['perspan'], 0, params['drives'], params['hotspares'])
|
895
906
|
arglist += ''.join(vols)
|
896
907
|
parms = {'raidlink_AddNewVolWithNaAsync': arglist}
|
897
908
|
rsp = self.wc.grab_json_response(url, parms)
|
898
|
-
else: #
|
909
|
+
else: # with ctrl_type
|
899
910
|
if cid[2] == 2:
|
900
911
|
cnum = cid[1]
|
901
912
|
arglist = '{0},{1},{2},{3},{4},{5},'.format(
|
@@ -26,10 +26,10 @@ pyghmi/ipmi/oem/lenovo/dimm.py,sha256=L8k1aBgtvxqyubDBNKdDkz80pDE8Sck1eMLcMz1GhF
|
|
26
26
|
pyghmi/ipmi/oem/lenovo/drive.py,sha256=MmVgaosEwJXcwi1kKYGnY-dbrx4Zp55941qWMvprUMA,2055
|
27
27
|
pyghmi/ipmi/oem/lenovo/energy.py,sha256=1AhpCFBXvlHtDIU8gGYPX6Wd-AjCzSTRxhgusgeXpmE,4980
|
28
28
|
pyghmi/ipmi/oem/lenovo/firmware.py,sha256=KS9uUBjFUzvdMw_e-kpr5sYIvFUaeg0yqyo69T94IVc,3747
|
29
|
-
pyghmi/ipmi/oem/lenovo/handler.py,sha256=
|
30
|
-
pyghmi/ipmi/oem/lenovo/imm.py,sha256=
|
29
|
+
pyghmi/ipmi/oem/lenovo/handler.py,sha256=ALXoa0kLEdgA5_9UmOEuluR-jIHcZHRGNwW3lfWv2ss,56379
|
30
|
+
pyghmi/ipmi/oem/lenovo/imm.py,sha256=ZN5S4s8MXF9pb5-fgjIa2XTHfEYmlaF2i8R4OcsgSe0,109294
|
31
31
|
pyghmi/ipmi/oem/lenovo/inventory.py,sha256=FLJJinw-ibdHtf3KmrTzhWXbQrpxq3TSycVf96Hg7cw,5911
|
32
|
-
pyghmi/ipmi/oem/lenovo/nextscale.py,sha256=
|
32
|
+
pyghmi/ipmi/oem/lenovo/nextscale.py,sha256=c5eX8fCQdvgZ6_f7k3GYxcJMAc2I0Je6d8M3o_tOSJQ,43041
|
33
33
|
pyghmi/ipmi/oem/lenovo/pci.py,sha256=S7p-5Q2qu2YhlffN-LEmIvjfXim6OlfYL7Q6r6VZqJ4,2020
|
34
34
|
pyghmi/ipmi/oem/lenovo/psu.py,sha256=ISgGe7MdLd1Z7MiRcgJ0gyC92m-4CDNmhMs-H0T3GVY,3098
|
35
35
|
pyghmi/ipmi/oem/lenovo/raid_controller.py,sha256=hr9W17FwgpG9B544eebkEH88gOlU6M4gIapZq7WOPsw,2335
|
@@ -45,7 +45,7 @@ pyghmi/ipmi/private/util.py,sha256=ayYodiSydlrrt0_pQppoRB1T6n-KNOiHZSfAlCMcpG0,3
|
|
45
45
|
pyghmi/redfish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
46
46
|
pyghmi/redfish/command.py,sha256=Eyrjv19rTITztUlZvUZvYovr9sNE4EmmMOFnAlwxarg,57541
|
47
47
|
pyghmi/redfish/oem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
48
|
-
pyghmi/redfish/oem/generic.py,sha256=
|
48
|
+
pyghmi/redfish/oem/generic.py,sha256=V9Jh_H0weFU0KqClTos_monqspV33PJPYFvO4dQ6jIk,31331
|
49
49
|
pyghmi/redfish/oem/lookup.py,sha256=pfJW5xSkUY61OirMeYy0b1SbjBFz6IDfN5ZOYog_Yq4,1530
|
50
50
|
pyghmi/redfish/oem/dell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
51
51
|
pyghmi/redfish/oem/dell/idrac.py,sha256=pNnmqdV1sOP3ABw0xq0wF1QEO2L8onT7Osc_-sDO8EU,2146
|
@@ -53,7 +53,7 @@ pyghmi/redfish/oem/dell/main.py,sha256=g8773SShUpbYxXB9zVx2pD5z1xP04wB_sXAxcAs6_
|
|
53
53
|
pyghmi/redfish/oem/lenovo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
54
54
|
pyghmi/redfish/oem/lenovo/main.py,sha256=eaCoePPXAw78BjKj9Ht7cqiXVGlj26Effy5_ybCnVDY,1622
|
55
55
|
pyghmi/redfish/oem/lenovo/tsma.py,sha256=puSj0fO5Dt5VpDoEMVTRY95CP9q18eXcAqq7TDK350E,34633
|
56
|
-
pyghmi/redfish/oem/lenovo/xcc.py,sha256=
|
56
|
+
pyghmi/redfish/oem/lenovo/xcc.py,sha256=yEfdv91bvbcuulmlCAltQ2WhO8CnH-jfzWgISnTikS0,76229
|
57
57
|
pyghmi/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
58
58
|
pyghmi/tests/unit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
59
59
|
pyghmi/tests/unit/base.py,sha256=xWImA7zPRgfrEe2xAdRZ6w_dLwExGRBJ5CBybssUQGg,744
|
@@ -62,11 +62,11 @@ pyghmi/tests/unit/ipmi/test_sdr.py,sha256=vb3iLY0cnHJ2K_m4xgYUjEcbPd_ZYhYx-uBowB
|
|
62
62
|
pyghmi/util/__init__.py,sha256=GZLBWJiun2Plb_VE9dDSh4_PQMCha3gA7QLUqx3oSYI,25
|
63
63
|
pyghmi/util/parse.py,sha256=6VlyBCEcE8gy8PJWmEDdtCyWATaKwPaTswCdioPCWOE,2120
|
64
64
|
pyghmi/util/webclient.py,sha256=i3ZVQEO68Bq4EqkmN8jysXPGQjTvDzVl2-hZxq4zBWQ,14150
|
65
|
-
pyghmi-1.5.
|
66
|
-
pyghmi-1.5.
|
67
|
-
pyghmi-1.5.
|
68
|
-
pyghmi-1.5.
|
69
|
-
pyghmi-1.5.
|
70
|
-
pyghmi-1.5.
|
71
|
-
pyghmi-1.5.
|
72
|
-
pyghmi-1.5.
|
65
|
+
pyghmi-1.5.60.dist-info/AUTHORS,sha256=Y5fQrIX2SnPK6llV0RjxLtWUQk4PCaAnsGHXU74foik,2007
|
66
|
+
pyghmi-1.5.60.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
67
|
+
pyghmi-1.5.60.dist-info/METADATA,sha256=DOxNUHbD68zv-_6XBJHC5XFGaArAXWBUIkgESALHggs,1119
|
68
|
+
pyghmi-1.5.60.dist-info/WHEEL,sha256=g4nMs7d-Xl9-xC9XovUrsDHGXt-FT0E17Yqo92DEfvY,92
|
69
|
+
pyghmi-1.5.60.dist-info/entry_points.txt,sha256=WkbeJkEZzG9MOILxkaEPSEQ109YP9euntH9kcxbysuk,169
|
70
|
+
pyghmi-1.5.60.dist-info/pbr.json,sha256=TWeoCrKqtAI3uE3HiYRdHkejnC6F4JIglclQVsn2d2k,46
|
71
|
+
pyghmi-1.5.60.dist-info/top_level.txt,sha256=aDtt6S9eVu6-tNdaUs4Pz9PbdUd69bziZZMhNvk9Ulc,7
|
72
|
+
pyghmi-1.5.60.dist-info/RECORD,,
|
@@ -0,0 +1 @@
|
|
1
|
+
{"git_version": "bcfbd8f", "is_release": true}
|
pyghmi-1.5.58.dist-info/pbr.json
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"git_version": "14652e8", "is_release": true}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|