pyghmi 1.5.66__tar.gz → 1.5.67__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. {pyghmi-1.5.66 → pyghmi-1.5.67}/ChangeLog +6 -0
  2. {pyghmi-1.5.66 → pyghmi-1.5.67}/MANIFEST.in +1 -0
  3. {pyghmi-1.5.66 → pyghmi-1.5.67}/PKG-INFO +1 -1
  4. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/generic.py +3 -0
  5. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/redfish/command.py +12 -2
  6. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/redfish/oem/lenovo/main.py +1 -1
  7. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi.egg-info/PKG-INFO +1 -1
  8. pyghmi-1.5.67/pyghmi.egg-info/pbr.json +1 -0
  9. pyghmi-1.5.66/pyghmi.egg-info/pbr.json +0 -1
  10. {pyghmi-1.5.66 → pyghmi-1.5.67}/.coveragerc +0 -0
  11. {pyghmi-1.5.66 → pyghmi-1.5.67}/.stestr.conf +0 -0
  12. {pyghmi-1.5.66 → pyghmi-1.5.67}/AUTHORS +0 -0
  13. {pyghmi-1.5.66 → pyghmi-1.5.67}/CONTRIBUTING.rst +0 -0
  14. {pyghmi-1.5.66 → pyghmi-1.5.67}/LICENSE +0 -0
  15. {pyghmi-1.5.66 → pyghmi-1.5.67}/README +0 -0
  16. {pyghmi-1.5.66 → pyghmi-1.5.67}/README.md +0 -0
  17. {pyghmi-1.5.66 → pyghmi-1.5.67}/builddeb +0 -0
  18. {pyghmi-1.5.66 → pyghmi-1.5.67}/buildrpm +0 -0
  19. {pyghmi-1.5.66 → pyghmi-1.5.67}/doc/requirements.txt +0 -0
  20. {pyghmi-1.5.66 → pyghmi-1.5.67}/doc/source/conf.py +0 -0
  21. {pyghmi-1.5.66 → pyghmi-1.5.67}/doc/source/contributor/index.rst +0 -0
  22. {pyghmi-1.5.66 → pyghmi-1.5.67}/doc/source/index.rst +0 -0
  23. {pyghmi-1.5.66 → pyghmi-1.5.67}/doc/source/install/index.rst +0 -0
  24. {pyghmi-1.5.66 → pyghmi-1.5.67}/doc/source/reference/index.rst +0 -0
  25. {pyghmi-1.5.66 → pyghmi-1.5.67}/makesetup +0 -0
  26. {pyghmi-1.5.66 → pyghmi-1.5.67}/playbooks/legacy/tempest-devstack-ironic-pxe_ipmitool-pyghmi-src/post.yaml +0 -0
  27. {pyghmi-1.5.66 → pyghmi-1.5.67}/playbooks/legacy/tempest-devstack-ironic-pxe_ipmitool-pyghmi-src/run.yaml +0 -0
  28. {pyghmi-1.5.66 → pyghmi-1.5.67}/py27-constraints.txt +0 -0
  29. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/__init__.py +0 -0
  30. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/cmd/__init__.py +0 -0
  31. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/cmd/fakebmc.py +0 -0
  32. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/cmd/pyghmicons.py +0 -0
  33. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/cmd/pyghmiutil.py +0 -0
  34. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/cmd/virshbmc.py +0 -0
  35. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/constants.py +0 -0
  36. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/exceptions.py +0 -0
  37. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/__init__.py +0 -0
  38. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/bmc.py +0 -0
  39. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/command.py +0 -0
  40. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/console.py +0 -0
  41. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/events.py +0 -0
  42. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/fru.py +0 -0
  43. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/__init__.py +0 -0
  44. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/__init__.py +0 -0
  45. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/config.py +0 -0
  46. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/cpu.py +0 -0
  47. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/dimm.py +0 -0
  48. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/drive.py +0 -0
  49. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/energy.py +0 -0
  50. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/firmware.py +0 -0
  51. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/handler.py +0 -0
  52. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/imm.py +0 -0
  53. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/inventory.py +0 -0
  54. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/nextscale.py +0 -0
  55. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/pci.py +0 -0
  56. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/psu.py +0 -0
  57. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/raid_controller.py +0 -0
  58. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lenovo/raid_drive.py +0 -0
  59. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/oem/lookup.py +0 -0
  60. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/private/__init__.py +0 -0
  61. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/private/constants.py +0 -0
  62. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/private/localsession.py +0 -0
  63. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/private/serversession.py +0 -0
  64. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/private/session.py +0 -0
  65. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/private/simplesession.py +0 -0
  66. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/private/spd.py +0 -0
  67. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/private/util.py +0 -0
  68. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/ipmi/sdr.py +0 -0
  69. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/media.py +0 -0
  70. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/redfish/__init__.py +0 -0
  71. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/redfish/oem/__init__.py +0 -0
  72. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/redfish/oem/dell/__init__.py +0 -0
  73. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/redfish/oem/dell/idrac.py +0 -0
  74. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/redfish/oem/dell/main.py +0 -0
  75. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/redfish/oem/generic.py +0 -0
  76. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/redfish/oem/lenovo/__init__.py +0 -0
  77. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/redfish/oem/lenovo/tsma.py +0 -0
  78. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/redfish/oem/lenovo/xcc.py +0 -0
  79. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/redfish/oem/lookup.py +0 -0
  80. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/storage.py +0 -0
  81. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/tests/__init__.py +0 -0
  82. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/tests/unit/__init__.py +0 -0
  83. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/tests/unit/base.py +0 -0
  84. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/tests/unit/ipmi/__init__.py +0 -0
  85. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/tests/unit/ipmi/test_sdr.py +0 -0
  86. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/util/__init__.py +0 -0
  87. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/util/parse.py +0 -0
  88. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/util/webclient.py +0 -0
  89. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi/version.py +0 -0
  90. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi.egg-info/SOURCES.txt +0 -0
  91. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi.egg-info/dependency_links.txt +0 -0
  92. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi.egg-info/entry_points.txt +0 -0
  93. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi.egg-info/not-zip-safe +0 -0
  94. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi.egg-info/requires.txt +0 -0
  95. {pyghmi-1.5.66 → pyghmi-1.5.67}/pyghmi.egg-info/top_level.txt +0 -0
  96. {pyghmi-1.5.66 → pyghmi-1.5.67}/python-pyghmi.spec +0 -0
  97. {pyghmi-1.5.66 → pyghmi-1.5.67}/python-pyghmi.spec.tmpl +0 -0
  98. {pyghmi-1.5.66 → pyghmi-1.5.67}/requirements.txt +0 -0
  99. {pyghmi-1.5.66 → pyghmi-1.5.67}/setup.cfg +0 -0
  100. {pyghmi-1.5.66 → pyghmi-1.5.67}/setup.py +0 -0
  101. {pyghmi-1.5.66 → pyghmi-1.5.67}/setup.py.tmpl +0 -0
  102. {pyghmi-1.5.66 → pyghmi-1.5.67}/test-requirements.txt +0 -0
  103. {pyghmi-1.5.66 → pyghmi-1.5.67}/tox.ini +0 -0
  104. {pyghmi-1.5.66 → pyghmi-1.5.67}/wheezy.patch +0 -0
  105. {pyghmi-1.5.66 → pyghmi-1.5.67}/zuul.d/project.yaml +0 -0
@@ -1,6 +1,12 @@
1
1
  CHANGES
2
2
  =======
3
3
 
4
+ 1.5.67
5
+ ------
6
+
7
+ * Catch more XCC variants
8
+ * More gracefully fail on normalized readings
9
+
4
10
  1.5.66
5
11
  ------
6
12
 
@@ -1,4 +1,5 @@
1
1
  include AUTHORS
2
+ include LICENSE
2
3
  include ChangeLog
3
4
  exclude .gitignore
4
5
  exclude .gitreview
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: pyghmi
3
- Version: 1.5.66
3
+ Version: 1.5.67
4
4
  Summary: Python General Hardware Management Initiative (IPMI and others)
5
5
  Home-page: http://github.com/openstack/pyghmi/
6
6
  Author: Jarrod Johnson
@@ -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):
@@ -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
- totalwatts += envinfo['watts']
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
- inlets.append(envinfo['inlet'])
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
@@ -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:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.1
2
2
  Name: pyghmi
3
- Version: 1.5.66
3
+ Version: 1.5.67
4
4
  Summary: Python General Hardware Management Initiative (IPMI and others)
5
5
  Home-page: http://github.com/openstack/pyghmi/
6
6
  Author: Jarrod Johnson
@@ -0,0 +1 @@
1
+ {"git_version": "da7796b", "is_release": true}
@@ -1 +0,0 @@
1
- {"git_version": "4d6921c", "is_release": true}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes