pyghmi 1.6.0__tar.gz → 1.6.2__tar.gz

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.
Files changed (108) hide show
  1. {pyghmi-1.6.0 → pyghmi-1.6.2}/AUTHORS +1 -0
  2. {pyghmi-1.6.0 → pyghmi-1.6.2}/ChangeLog +14 -0
  3. {pyghmi-1.6.0 → pyghmi-1.6.2}/PKG-INFO +1 -1
  4. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/private/serversession.py +3 -3
  5. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/redfish/command.py +3 -3
  6. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/redfish/oem/generic.py +1 -0
  7. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/redfish/oem/lenovo/smm3.py +13 -0
  8. pyghmi-1.6.2/pyghmi/redfish/oem/lenovo/xcc3.py +1146 -0
  9. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi.egg-info/PKG-INFO +1 -1
  10. pyghmi-1.6.2/pyghmi.egg-info/pbr.json +1 -0
  11. pyghmi-1.6.0/pyghmi/redfish/oem/lenovo/xcc3.py +0 -484
  12. pyghmi-1.6.0/pyghmi.egg-info/pbr.json +0 -1
  13. {pyghmi-1.6.0 → pyghmi-1.6.2}/.coveragerc +0 -0
  14. {pyghmi-1.6.0 → pyghmi-1.6.2}/.stestr.conf +0 -0
  15. {pyghmi-1.6.0 → pyghmi-1.6.2}/CONTRIBUTING.rst +0 -0
  16. {pyghmi-1.6.0 → pyghmi-1.6.2}/LICENSE +0 -0
  17. {pyghmi-1.6.0 → pyghmi-1.6.2}/MANIFEST.in +0 -0
  18. {pyghmi-1.6.0 → pyghmi-1.6.2}/README +0 -0
  19. {pyghmi-1.6.0 → pyghmi-1.6.2}/README.md +0 -0
  20. {pyghmi-1.6.0 → pyghmi-1.6.2}/builddeb +0 -0
  21. {pyghmi-1.6.0 → pyghmi-1.6.2}/buildrpm +0 -0
  22. {pyghmi-1.6.0 → pyghmi-1.6.2}/doc/requirements.txt +0 -0
  23. {pyghmi-1.6.0 → pyghmi-1.6.2}/doc/source/conf.py +0 -0
  24. {pyghmi-1.6.0 → pyghmi-1.6.2}/doc/source/contributor/index.rst +0 -0
  25. {pyghmi-1.6.0 → pyghmi-1.6.2}/doc/source/index.rst +0 -0
  26. {pyghmi-1.6.0 → pyghmi-1.6.2}/doc/source/install/index.rst +0 -0
  27. {pyghmi-1.6.0 → pyghmi-1.6.2}/doc/source/reference/index.rst +0 -0
  28. {pyghmi-1.6.0 → pyghmi-1.6.2}/makesetup +0 -0
  29. {pyghmi-1.6.0 → pyghmi-1.6.2}/playbooks/legacy/tempest-devstack-ironic-pxe_ipmitool-pyghmi-src/post.yaml +0 -0
  30. {pyghmi-1.6.0 → pyghmi-1.6.2}/playbooks/legacy/tempest-devstack-ironic-pxe_ipmitool-pyghmi-src/run.yaml +0 -0
  31. {pyghmi-1.6.0 → pyghmi-1.6.2}/py27-constraints.txt +0 -0
  32. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/__init__.py +0 -0
  33. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/cmd/__init__.py +0 -0
  34. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/cmd/fakebmc.py +0 -0
  35. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/cmd/pyghmicons.py +0 -0
  36. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/cmd/pyghmiutil.py +0 -0
  37. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/cmd/virshbmc.py +0 -0
  38. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/constants.py +0 -0
  39. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/exceptions.py +0 -0
  40. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/__init__.py +0 -0
  41. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/bmc.py +0 -0
  42. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/command.py +0 -0
  43. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/console.py +0 -0
  44. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/events.py +0 -0
  45. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/fru.py +0 -0
  46. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/__init__.py +0 -0
  47. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/generic.py +0 -0
  48. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/__init__.py +0 -0
  49. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/config.py +0 -0
  50. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/cpu.py +0 -0
  51. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/dimm.py +0 -0
  52. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/drive.py +0 -0
  53. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/energy.py +0 -0
  54. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/firmware.py +0 -0
  55. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/handler.py +0 -0
  56. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/imm.py +0 -0
  57. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/inventory.py +0 -0
  58. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/nextscale.py +0 -0
  59. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/pci.py +0 -0
  60. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/psu.py +0 -0
  61. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/raid_controller.py +0 -0
  62. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lenovo/raid_drive.py +0 -0
  63. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/oem/lookup.py +0 -0
  64. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/private/__init__.py +0 -0
  65. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/private/constants.py +0 -0
  66. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/private/localsession.py +0 -0
  67. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/private/session.py +0 -0
  68. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/private/simplesession.py +0 -0
  69. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/private/spd.py +0 -0
  70. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/private/util.py +0 -0
  71. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/ipmi/sdr.py +0 -0
  72. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/media.py +0 -0
  73. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/redfish/__init__.py +0 -0
  74. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/redfish/oem/__init__.py +0 -0
  75. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/redfish/oem/dell/__init__.py +0 -0
  76. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/redfish/oem/dell/idrac.py +0 -0
  77. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/redfish/oem/dell/main.py +0 -0
  78. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/redfish/oem/lenovo/__init__.py +0 -0
  79. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/redfish/oem/lenovo/main.py +0 -0
  80. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/redfish/oem/lenovo/tsma.py +0 -0
  81. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/redfish/oem/lenovo/xcc.py +0 -0
  82. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/redfish/oem/lookup.py +0 -0
  83. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/storage.py +0 -0
  84. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/tests/__init__.py +0 -0
  85. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/tests/unit/__init__.py +0 -0
  86. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/tests/unit/base.py +0 -0
  87. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/tests/unit/ipmi/__init__.py +0 -0
  88. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/tests/unit/ipmi/test_sdr.py +0 -0
  89. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/util/__init__.py +0 -0
  90. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/util/parse.py +0 -0
  91. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/util/webclient.py +0 -0
  92. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi/version.py +0 -0
  93. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi.egg-info/SOURCES.txt +0 -0
  94. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi.egg-info/dependency_links.txt +0 -0
  95. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi.egg-info/entry_points.txt +0 -0
  96. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi.egg-info/not-zip-safe +0 -0
  97. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi.egg-info/requires.txt +0 -0
  98. {pyghmi-1.6.0 → pyghmi-1.6.2}/pyghmi.egg-info/top_level.txt +0 -0
  99. {pyghmi-1.6.0 → pyghmi-1.6.2}/python-pyghmi.spec +0 -0
  100. {pyghmi-1.6.0 → pyghmi-1.6.2}/python-pyghmi.spec.tmpl +0 -0
  101. {pyghmi-1.6.0 → pyghmi-1.6.2}/requirements.txt +0 -0
  102. {pyghmi-1.6.0 → pyghmi-1.6.2}/setup.cfg +0 -0
  103. {pyghmi-1.6.0 → pyghmi-1.6.2}/setup.py +0 -0
  104. {pyghmi-1.6.0 → pyghmi-1.6.2}/setup.py.tmpl +0 -0
  105. {pyghmi-1.6.0 → pyghmi-1.6.2}/test-requirements.txt +0 -0
  106. {pyghmi-1.6.0 → pyghmi-1.6.2}/tox.ini +0 -0
  107. {pyghmi-1.6.0 → pyghmi-1.6.2}/wheezy.patch +0 -0
  108. {pyghmi-1.6.0 → pyghmi-1.6.2}/zuul.d/project.yaml +0 -0
@@ -1,6 +1,7 @@
1
1
  Akira Yoshiyama <akirayoshiyama@gmail.com>
2
2
  Allan Vidal <avidal@lenovo.com>
3
3
  Andreas Jaeger <aj@suse.com>
4
+ Andrei Machedon <amachedon@lenovo.com>
4
5
  Christian Arnold <the-fr3ak@gmx.net>
5
6
  Connor Reed <conman2305@hotmail.com>
6
7
  Daniel Speichert <Daniel_Speichert@comcast.com>
@@ -1,6 +1,20 @@
1
1
  CHANGES
2
2
  =======
3
3
 
4
+ 1.6.2
5
+ -----
6
+
7
+ * Translate non-XCC3 volume policies values to Redfish
8
+ * Rework the XCC3 changes
9
+ * Add support for XCC3
10
+
11
+ 1.6.1
12
+ -----
13
+
14
+ * Switch to atomic fetch of password in serversession
15
+ * Replace set\_power manual call to grab\_json\_response
16
+ * Add SMM3 identify light manipulation
17
+
4
18
  1.6.0
5
19
  -----
6
20
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyghmi
3
- Version: 1.6.0
3
+ Version: 1.6.2
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
@@ -108,7 +108,8 @@ class ServerSession(ipmisession.Session):
108
108
  # ignore null username for now
109
109
  return
110
110
  self.username = bytes(data[28:])
111
- if self.username.decode('utf-8') not in self.authdata:
111
+ password = self.authdata.get(self.username.decode('utf-8'))
112
+ if password is None:
112
113
  # don't think about invalid usernames for now
113
114
  return
114
115
  uuidbytes = self.uuid.bytes
@@ -118,8 +119,7 @@ class ServerSession(ipmisession.Session):
118
119
  + self.Rm + self.Rc + uuidbytes
119
120
  + bytearray([self.rolem, len(self.username)]))
120
121
  hmacdata += self.username
121
- self.kuid = self.authdata[self.username.decode('utf-8')].encode(
122
- 'utf-8')
122
+ self.kuid = password.encode('utf-8')
123
123
  if self.kg is None:
124
124
  self.kg = self.kuid
125
125
  authcode = hmac.new(
@@ -522,10 +522,8 @@ class Command(object):
522
522
  raise exc.InvalidParameterValue(
523
523
  "Unknown power state %s requested" % powerstate)
524
524
  powerstate = powerstates[powerstate]
525
- result = self.wc.grab_json_response_with_status(
525
+ self._do_web_request(
526
526
  self.powerurl, {'ResetType': powerstate})
527
- if result[1] < 200 or result[1] >= 300:
528
- raise exc.PyghmiException(result[0])
529
527
  if wait and reqpowerstate in ('on', 'off', 'softoff', 'shutdown'):
530
528
  if reqpowerstate in ('softoff', 'shutdown'):
531
529
  reqpowerstate = 'off'
@@ -846,6 +844,8 @@ class Command(object):
846
844
  self._do_web_request(url, {'ResetType': action})
847
845
 
848
846
  def set_identify(self, on=True, blink=None):
847
+ if hasattr(self.oem, 'set_identify'):
848
+ return self.oem.set_identify(on, blink)
849
849
  targurl = self.sysurl
850
850
  if not targurl:
851
851
  root = self._do_web_request('/redfish/v1')
@@ -193,6 +193,7 @@ class OEMHandler(object):
193
193
  self._varsysurl = sysurl
194
194
  self._urlcache = cache
195
195
  self.webclient = webclient
196
+ self._hwnamemap = {}
196
197
 
197
198
  def get_screenshot(self, outfile):
198
199
  raise exc.UnsupportedFunctionality(
@@ -62,6 +62,19 @@ class OEMHandler(generic.OEMHandler):
62
62
  health = healthlookup.get(health, pygconst.Health.Critical)
63
63
  return {'health': health}
64
64
 
65
+ def set_identify(self, on=True, blink=False):
66
+ if on:
67
+ state = 'On'
68
+ elif blink:
69
+ state = 'Blinking'
70
+ else:
71
+ state = 'Off'
72
+ self._do_web_request('/redfish/v1/Chassis/chassis1', {
73
+ 'Oem': {'Lenovo': {'LED': {'IdentifyLED': {
74
+ 'State': state
75
+ }}}
76
+ }}, method='PATCH')
77
+
65
78
  def get_system_configuration(self, hideadvanced=True, fishclient=None):
66
79
  return {}
67
80