pyghmi 1.5.65__py3-none-any.whl → 1.5.67__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- pyghmi/ipmi/oem/generic.py +3 -0
- pyghmi/ipmi/oem/lenovo/imm.py +7 -2
- pyghmi/redfish/command.py +12 -2
- pyghmi/redfish/oem/generic.py +7 -2
- pyghmi/redfish/oem/lenovo/main.py +1 -1
- pyghmi/redfish/oem/lenovo/xcc.py +7 -2
- {pyghmi-1.5.65.dist-info → pyghmi-1.5.67.dist-info}/METADATA +1 -1
- {pyghmi-1.5.65.dist-info → pyghmi-1.5.67.dist-info}/RECORD +14 -14
- pyghmi-1.5.67.dist-info/pbr.json +1 -0
- pyghmi-1.5.65.dist-info/pbr.json +0 -1
- {pyghmi-1.5.65.dist-info → pyghmi-1.5.67.dist-info}/AUTHORS +0 -0
- {pyghmi-1.5.65.dist-info → pyghmi-1.5.67.dist-info}/LICENSE +0 -0
- {pyghmi-1.5.65.dist-info → pyghmi-1.5.67.dist-info}/WHEEL +0 -0
- {pyghmi-1.5.65.dist-info → pyghmi-1.5.67.dist-info}/entry_points.txt +0 -0
- {pyghmi-1.5.65.dist-info → pyghmi-1.5.67.dist-info}/top_level.txt +0 -0
pyghmi/ipmi/oem/generic.py
CHANGED
@@ -115,6 +115,9 @@ class OEMHandler(object):
|
|
115
115
|
if len(extenv) > 1:
|
116
116
|
raise Exception('TODO: how to deal with multiple external environments')
|
117
117
|
self._inlet_name = extenv[0]
|
118
|
+
if not self._inlet_name:
|
119
|
+
raise exc.UnsupportedFunctionality(
|
120
|
+
'Unable to detect inlet sensor name for this platform')
|
118
121
|
return ipmicmd.get_sensor_reading(self._inlet_name)
|
119
122
|
|
120
123
|
def process_event(self, event, ipmicmd, seldata):
|
pyghmi/ipmi/oem/lenovo/imm.py
CHANGED
@@ -2062,13 +2062,18 @@ class XCCClient(IMMClient):
|
|
2062
2062
|
complete = False
|
2063
2063
|
phase = "apply"
|
2064
2064
|
statetype = 'TaskState'
|
2065
|
-
|
2065
|
+
# sometimes we get an empty pgress when transitioning from the apply phase to
|
2066
|
+
# the validating phase; add a retry here so we don't exit the loop in this case
|
2067
|
+
retry = 3
|
2068
|
+
while not complete and retry > 0:
|
2066
2069
|
pgress, status = self.grab_redfish_response_with_status(
|
2067
2070
|
monitorurl)
|
2068
2071
|
if status < 200 or status >= 300:
|
2069
2072
|
raise Exception(pgress)
|
2070
2073
|
if not pgress:
|
2071
|
-
|
2074
|
+
retry -= 1
|
2075
|
+
ipmisession.Session.pause(3)
|
2076
|
+
continue
|
2072
2077
|
for msg in pgress.get('Messages', []):
|
2073
2078
|
if 'Verify failed' in msg.get('Message', ''):
|
2074
2079
|
raise Exception(msg['Message'])
|
pyghmi/redfish/command.py
CHANGED
@@ -1153,6 +1153,8 @@ class Command(object):
|
|
1153
1153
|
chassisurl = chassis['@odata.id']
|
1154
1154
|
chassisinfo = self._do_web_request(chassisurl)
|
1155
1155
|
envurl = chassisinfo.get('EnvironmentMetrics', {}).get('@odata.id', '')
|
1156
|
+
if not envurl:
|
1157
|
+
return {}
|
1156
1158
|
envmetric = self._do_web_request(envurl, cache=1)
|
1157
1159
|
retval = {
|
1158
1160
|
'watts': envmetric.get('PowerWatts', {}).get('Reading', None),
|
@@ -1180,16 +1182,24 @@ class Command(object):
|
|
1180
1182
|
|
1181
1183
|
def get_system_power_watts(self):
|
1182
1184
|
totalwatts = 0
|
1185
|
+
gotpower = False
|
1183
1186
|
for chassis in self.sysinfo.get('Links', {}).get('Chassis', []):
|
1184
1187
|
envinfo = self._get_chassis_env(chassis)
|
1185
|
-
|
1188
|
+
currwatts = envinfo.get('watts', None)
|
1189
|
+
if currwatts is not None:
|
1190
|
+
gotpower = True
|
1191
|
+
totalwatts += envinfo['watts']
|
1192
|
+
if not gotpower:
|
1193
|
+
raise exc.UnsupportedFunctionality("System does not provide Power under redfish EnvironmentMetrics")
|
1186
1194
|
return totalwatts
|
1187
1195
|
|
1188
1196
|
def get_inlet_temperature(self):
|
1189
1197
|
inlets = []
|
1190
1198
|
for chassis in self.sysinfo.get('Links', {}).get('Chassis', []):
|
1191
1199
|
envinfo = self._get_chassis_env(chassis)
|
1192
|
-
|
1200
|
+
currinlet = envinfo.get('inlet', None)
|
1201
|
+
if currinlet:
|
1202
|
+
inlets.append(currinlet)
|
1193
1203
|
if inlets:
|
1194
1204
|
val = sum(inlets) / len(inlets)
|
1195
1205
|
unavail = False
|
pyghmi/redfish/oem/generic.py
CHANGED
@@ -820,10 +820,15 @@ class OEMHandler(object):
|
|
820
820
|
complete = False
|
821
821
|
phase = "apply"
|
822
822
|
statetype = 'TaskState'
|
823
|
-
|
823
|
+
# sometimes we get an empty pgress when transitioning from the apply phase to
|
824
|
+
# the validating phase; add a retry here so we don't exit the loop in this case
|
825
|
+
retry = 3
|
826
|
+
while not complete and retry > 0:
|
824
827
|
pgress = self._do_web_request(monitorurl, cache=False)
|
825
828
|
if not pgress:
|
826
|
-
|
829
|
+
retry -= 1
|
830
|
+
time.sleep(3)
|
831
|
+
continue
|
827
832
|
for msg in pgress.get('Messages', []):
|
828
833
|
if 'Verify failed' in msg.get('Message', ''):
|
829
834
|
raise Exception(msg['Message'])
|
@@ -23,7 +23,7 @@ def get_handler(sysinfo, sysurl, webclient, cache, cmd):
|
|
23
23
|
bmcinfo = cmd.bmcinfo
|
24
24
|
if 'Ami' in bmcinfo.get('Oem', {}):
|
25
25
|
return tsma.TsmHandler(sysinfo, sysurl, webclient, cache)
|
26
|
-
if 'FrontPanelUSB' in leninf or sysinfo.get('SKU', '').startswith('7X58'):
|
26
|
+
if 'FrontPanelUSB' in leninf or 'USBManagementPortAssignment' in leninf or sysinfo.get('SKU', '').startswith('7X58'):
|
27
27
|
return xcc.OEMHandler(sysinfo, sysurl, webclient, cache,
|
28
28
|
gpool=cmd._gpool)
|
29
29
|
else:
|
pyghmi/redfish/oem/lenovo/xcc.py
CHANGED
@@ -1278,10 +1278,15 @@ class OEMHandler(generic.OEMHandler):
|
|
1278
1278
|
complete = False
|
1279
1279
|
phase = "apply"
|
1280
1280
|
statetype = 'TaskState'
|
1281
|
-
|
1281
|
+
# sometimes we get an empty pgress when transitioning from the apply phase to
|
1282
|
+
# the validating phase; add a retry here so we don't exit the loop in this case
|
1283
|
+
retry = 3
|
1284
|
+
while not complete and retry > 0:
|
1282
1285
|
pgress = self._do_web_request(monitorurl, cache=False)
|
1283
1286
|
if not pgress:
|
1284
|
-
|
1287
|
+
retry -= 1
|
1288
|
+
time.sleep(3)
|
1289
|
+
continue
|
1285
1290
|
for msg in pgress.get('Messages', []):
|
1286
1291
|
if 'Verify failed' in msg.get('Message', ''):
|
1287
1292
|
raise Exception(msg['Message'])
|
@@ -17,7 +17,7 @@ pyghmi/ipmi/events.py,sha256=zgUidJIARHomwxasgeYAzDO1AEMfEOzb6XVxzry22Us,22569
|
|
17
17
|
pyghmi/ipmi/fru.py,sha256=sw5ZBMrEVSBDgOUPVU_ksehQMJvrl2v-r7rVyA9xoiE,14430
|
18
18
|
pyghmi/ipmi/sdr.py,sha256=gXVai01amSxCO2rKOj74crMts1Hoi6pmbocWuik5sks,33009
|
19
19
|
pyghmi/ipmi/oem/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
20
|
-
pyghmi/ipmi/oem/generic.py,sha256=
|
20
|
+
pyghmi/ipmi/oem/generic.py,sha256=HQ-9qTYIBpZqB1K75jTOTSUsirrKAQcI8BhLx0eAJ1g,18518
|
21
21
|
pyghmi/ipmi/oem/lookup.py,sha256=Ex00OEEolsdWCVhyP0QDGzOxHGEA7sKI8a8fW4kJPD8,3653
|
22
22
|
pyghmi/ipmi/oem/lenovo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
23
|
pyghmi/ipmi/oem/lenovo/config.py,sha256=1Ya23kc-7k-k05oLS7tj4jPyBoDtZaGzvr2Av1C-h7c,25694
|
@@ -27,7 +27,7 @@ pyghmi/ipmi/oem/lenovo/drive.py,sha256=MmVgaosEwJXcwi1kKYGnY-dbrx4Zp55941qWMvprU
|
|
27
27
|
pyghmi/ipmi/oem/lenovo/energy.py,sha256=f7_81HEq0vJFWPjb_cWuy5JNFiN2l6jZl3v2x9e_sCw,5902
|
28
28
|
pyghmi/ipmi/oem/lenovo/firmware.py,sha256=KS9uUBjFUzvdMw_e-kpr5sYIvFUaeg0yqyo69T94IVc,3747
|
29
29
|
pyghmi/ipmi/oem/lenovo/handler.py,sha256=BYfzauvGTGQ0hXFjsrpUXzyVRFzXsG8hfrkzp1vDqqI,56486
|
30
|
-
pyghmi/ipmi/oem/lenovo/imm.py,sha256=
|
30
|
+
pyghmi/ipmi/oem/lenovo/imm.py,sha256=C9kH7M3lOYW2z211Oz7KQZgiOAh6KjTjnyzZ6h_ZGeM,111156
|
31
31
|
pyghmi/ipmi/oem/lenovo/inventory.py,sha256=FLJJinw-ibdHtf3KmrTzhWXbQrpxq3TSycVf96Hg7cw,5911
|
32
32
|
pyghmi/ipmi/oem/lenovo/nextscale.py,sha256=g_PNjxPp9gS-ZaMYH-5Ng6_XURPocDZqIAXXWpmsNU4,43223
|
33
33
|
pyghmi/ipmi/oem/lenovo/pci.py,sha256=S7p-5Q2qu2YhlffN-LEmIvjfXim6OlfYL7Q6r6VZqJ4,2020
|
@@ -43,17 +43,17 @@ pyghmi/ipmi/private/simplesession.py,sha256=cNGaoT0uWIKDut6gUG9kAOX_b_qTzdB26R6I
|
|
43
43
|
pyghmi/ipmi/private/spd.py,sha256=oEPSXm19X2eNXDiyW_6fVjBFqhuuMAtBI9quRJgclH4,27094
|
44
44
|
pyghmi/ipmi/private/util.py,sha256=ayYodiSydlrrt0_pQppoRB1T6n-KNOiHZSfAlCMcpG0,3847
|
45
45
|
pyghmi/redfish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
46
|
-
pyghmi/redfish/command.py,sha256=
|
46
|
+
pyghmi/redfish/command.py,sha256=iUjF9d_ss1fmIW-CyPSfXQBiVABNk-4HsDUnelfa6C8,57241
|
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=LMqj1GkjCzaNfplG6fyN1gm6hbxbT-NwcqnezoVHXVc,39742
|
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
|
52
52
|
pyghmi/redfish/oem/dell/main.py,sha256=g8773SShUpbYxXB9zVx2pD5z1xP04wB_sXAxcAs6_xY,793
|
53
53
|
pyghmi/redfish/oem/lenovo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
54
|
-
pyghmi/redfish/oem/lenovo/main.py,sha256=
|
54
|
+
pyghmi/redfish/oem/lenovo/main.py,sha256=MAJGAoOX-l5hMUiI7MXRsORPf0tGKWXWC8V1rDgb-KE,1665
|
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=5GMujnFfOdYN5rR1RURNrcojtYwCHf1T61XBaMv0Sa4,81876
|
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=jV091_s-HWNDVMKfMxB5XljqiwinQkfXJgHt1u6Umms,14526
|
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.67.dist-info/AUTHORS,sha256=-0iHKtdQwAJfAGKcruCnvcQXrXuE_LgBZ3P15DJI1xY,2044
|
66
|
+
pyghmi-1.5.67.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
67
|
+
pyghmi-1.5.67.dist-info/METADATA,sha256=85FyzuBALT5ZJ_Bt9K6bNO8jmgjGlSvm8aPU5oxMWdg,1119
|
68
|
+
pyghmi-1.5.67.dist-info/WHEEL,sha256=g4nMs7d-Xl9-xC9XovUrsDHGXt-FT0E17Yqo92DEfvY,92
|
69
|
+
pyghmi-1.5.67.dist-info/entry_points.txt,sha256=WkbeJkEZzG9MOILxkaEPSEQ109YP9euntH9kcxbysuk,169
|
70
|
+
pyghmi-1.5.67.dist-info/pbr.json,sha256=Iw5eWEgpKQjXDXguYvFnFL1LkvEU4MEJ1etQgX-OjJ8,46
|
71
|
+
pyghmi-1.5.67.dist-info/top_level.txt,sha256=aDtt6S9eVu6-tNdaUs4Pz9PbdUd69bziZZMhNvk9Ulc,7
|
72
|
+
pyghmi-1.5.67.dist-info/RECORD,,
|
@@ -0,0 +1 @@
|
|
1
|
+
{"git_version": "da7796b", "is_release": true}
|
pyghmi-1.5.65.dist-info/pbr.json
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"git_version": "3f38530", "is_release": true}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|