pyghmi 1.5.58__py3-none-any.whl → 1.5.60__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|