pyghmi 1.6.0__tar.gz → 1.6.1__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 (107) hide show
  1. {pyghmi-1.6.0 → pyghmi-1.6.1}/ChangeLog +7 -0
  2. {pyghmi-1.6.0 → pyghmi-1.6.1}/PKG-INFO +1 -1
  3. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/private/serversession.py +3 -3
  4. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/command.py +3 -3
  5. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/oem/lenovo/smm3.py +13 -0
  6. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi.egg-info/PKG-INFO +1 -1
  7. pyghmi-1.6.1/pyghmi.egg-info/pbr.json +1 -0
  8. pyghmi-1.6.0/pyghmi.egg-info/pbr.json +0 -1
  9. {pyghmi-1.6.0 → pyghmi-1.6.1}/.coveragerc +0 -0
  10. {pyghmi-1.6.0 → pyghmi-1.6.1}/.stestr.conf +0 -0
  11. {pyghmi-1.6.0 → pyghmi-1.6.1}/AUTHORS +0 -0
  12. {pyghmi-1.6.0 → pyghmi-1.6.1}/CONTRIBUTING.rst +0 -0
  13. {pyghmi-1.6.0 → pyghmi-1.6.1}/LICENSE +0 -0
  14. {pyghmi-1.6.0 → pyghmi-1.6.1}/MANIFEST.in +0 -0
  15. {pyghmi-1.6.0 → pyghmi-1.6.1}/README +0 -0
  16. {pyghmi-1.6.0 → pyghmi-1.6.1}/README.md +0 -0
  17. {pyghmi-1.6.0 → pyghmi-1.6.1}/builddeb +0 -0
  18. {pyghmi-1.6.0 → pyghmi-1.6.1}/buildrpm +0 -0
  19. {pyghmi-1.6.0 → pyghmi-1.6.1}/doc/requirements.txt +0 -0
  20. {pyghmi-1.6.0 → pyghmi-1.6.1}/doc/source/conf.py +0 -0
  21. {pyghmi-1.6.0 → pyghmi-1.6.1}/doc/source/contributor/index.rst +0 -0
  22. {pyghmi-1.6.0 → pyghmi-1.6.1}/doc/source/index.rst +0 -0
  23. {pyghmi-1.6.0 → pyghmi-1.6.1}/doc/source/install/index.rst +0 -0
  24. {pyghmi-1.6.0 → pyghmi-1.6.1}/doc/source/reference/index.rst +0 -0
  25. {pyghmi-1.6.0 → pyghmi-1.6.1}/makesetup +0 -0
  26. {pyghmi-1.6.0 → pyghmi-1.6.1}/playbooks/legacy/tempest-devstack-ironic-pxe_ipmitool-pyghmi-src/post.yaml +0 -0
  27. {pyghmi-1.6.0 → pyghmi-1.6.1}/playbooks/legacy/tempest-devstack-ironic-pxe_ipmitool-pyghmi-src/run.yaml +0 -0
  28. {pyghmi-1.6.0 → pyghmi-1.6.1}/py27-constraints.txt +0 -0
  29. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/__init__.py +0 -0
  30. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/cmd/__init__.py +0 -0
  31. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/cmd/fakebmc.py +0 -0
  32. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/cmd/pyghmicons.py +0 -0
  33. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/cmd/pyghmiutil.py +0 -0
  34. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/cmd/virshbmc.py +0 -0
  35. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/constants.py +0 -0
  36. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/exceptions.py +0 -0
  37. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/__init__.py +0 -0
  38. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/bmc.py +0 -0
  39. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/command.py +0 -0
  40. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/console.py +0 -0
  41. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/events.py +0 -0
  42. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/fru.py +0 -0
  43. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/__init__.py +0 -0
  44. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/generic.py +0 -0
  45. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/__init__.py +0 -0
  46. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/config.py +0 -0
  47. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/cpu.py +0 -0
  48. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/dimm.py +0 -0
  49. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/drive.py +0 -0
  50. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/energy.py +0 -0
  51. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/firmware.py +0 -0
  52. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/handler.py +0 -0
  53. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/imm.py +0 -0
  54. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/inventory.py +0 -0
  55. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/nextscale.py +0 -0
  56. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/pci.py +0 -0
  57. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/psu.py +0 -0
  58. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/raid_controller.py +0 -0
  59. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lenovo/raid_drive.py +0 -0
  60. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/oem/lookup.py +0 -0
  61. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/private/__init__.py +0 -0
  62. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/private/constants.py +0 -0
  63. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/private/localsession.py +0 -0
  64. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/private/session.py +0 -0
  65. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/private/simplesession.py +0 -0
  66. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/private/spd.py +0 -0
  67. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/private/util.py +0 -0
  68. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/ipmi/sdr.py +0 -0
  69. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/media.py +0 -0
  70. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/__init__.py +0 -0
  71. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/oem/__init__.py +0 -0
  72. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/oem/dell/__init__.py +0 -0
  73. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/oem/dell/idrac.py +0 -0
  74. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/oem/dell/main.py +0 -0
  75. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/oem/generic.py +0 -0
  76. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/oem/lenovo/__init__.py +0 -0
  77. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/oem/lenovo/main.py +0 -0
  78. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/oem/lenovo/tsma.py +0 -0
  79. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/oem/lenovo/xcc.py +0 -0
  80. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/oem/lenovo/xcc3.py +0 -0
  81. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/redfish/oem/lookup.py +0 -0
  82. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/storage.py +0 -0
  83. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/tests/__init__.py +0 -0
  84. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/tests/unit/__init__.py +0 -0
  85. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/tests/unit/base.py +0 -0
  86. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/tests/unit/ipmi/__init__.py +0 -0
  87. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/tests/unit/ipmi/test_sdr.py +0 -0
  88. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/util/__init__.py +0 -0
  89. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/util/parse.py +0 -0
  90. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/util/webclient.py +0 -0
  91. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi/version.py +0 -0
  92. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi.egg-info/SOURCES.txt +0 -0
  93. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi.egg-info/dependency_links.txt +0 -0
  94. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi.egg-info/entry_points.txt +0 -0
  95. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi.egg-info/not-zip-safe +0 -0
  96. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi.egg-info/requires.txt +0 -0
  97. {pyghmi-1.6.0 → pyghmi-1.6.1}/pyghmi.egg-info/top_level.txt +0 -0
  98. {pyghmi-1.6.0 → pyghmi-1.6.1}/python-pyghmi.spec +0 -0
  99. {pyghmi-1.6.0 → pyghmi-1.6.1}/python-pyghmi.spec.tmpl +0 -0
  100. {pyghmi-1.6.0 → pyghmi-1.6.1}/requirements.txt +0 -0
  101. {pyghmi-1.6.0 → pyghmi-1.6.1}/setup.cfg +0 -0
  102. {pyghmi-1.6.0 → pyghmi-1.6.1}/setup.py +0 -0
  103. {pyghmi-1.6.0 → pyghmi-1.6.1}/setup.py.tmpl +0 -0
  104. {pyghmi-1.6.0 → pyghmi-1.6.1}/test-requirements.txt +0 -0
  105. {pyghmi-1.6.0 → pyghmi-1.6.1}/tox.ini +0 -0
  106. {pyghmi-1.6.0 → pyghmi-1.6.1}/wheezy.patch +0 -0
  107. {pyghmi-1.6.0 → pyghmi-1.6.1}/zuul.d/project.yaml +0 -0
@@ -1,6 +1,13 @@
1
1
  CHANGES
2
2
  =======
3
3
 
4
+ 1.6.1
5
+ -----
6
+
7
+ * Switch to atomic fetch of password in serversession
8
+ * Replace set\_power manual call to grab\_json\_response
9
+ * Add SMM3 identify light manipulation
10
+
4
11
  1.6.0
5
12
  -----
6
13
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyghmi
3
- Version: 1.6.0
3
+ Version: 1.6.1
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')
@@ -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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyghmi
3
- Version: 1.6.0
3
+ Version: 1.6.1
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": "33cff21", "is_release": true}
@@ -1 +0,0 @@
1
- {"git_version": "4b5fbf5", "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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes