pyghmi 1.6.4__tar.gz → 1.6.5__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.4 → pyghmi-1.6.5}/ChangeLog +5 -0
  2. {pyghmi-1.6.4 → pyghmi-1.6.5}/PKG-INFO +1 -1
  3. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/command.py +1 -1
  4. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/oem/generic.py +9 -3
  5. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/oem/lenovo/xcc.py +1 -1
  6. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi.egg-info/PKG-INFO +1 -1
  7. pyghmi-1.6.5/pyghmi.egg-info/pbr.json +1 -0
  8. pyghmi-1.6.4/pyghmi.egg-info/pbr.json +0 -1
  9. {pyghmi-1.6.4 → pyghmi-1.6.5}/.coveragerc +0 -0
  10. {pyghmi-1.6.4 → pyghmi-1.6.5}/.stestr.conf +0 -0
  11. {pyghmi-1.6.4 → pyghmi-1.6.5}/AUTHORS +0 -0
  12. {pyghmi-1.6.4 → pyghmi-1.6.5}/CONTRIBUTING.rst +0 -0
  13. {pyghmi-1.6.4 → pyghmi-1.6.5}/LICENSE +0 -0
  14. {pyghmi-1.6.4 → pyghmi-1.6.5}/MANIFEST.in +0 -0
  15. {pyghmi-1.6.4 → pyghmi-1.6.5}/README +0 -0
  16. {pyghmi-1.6.4 → pyghmi-1.6.5}/README.md +0 -0
  17. {pyghmi-1.6.4 → pyghmi-1.6.5}/builddeb +0 -0
  18. {pyghmi-1.6.4 → pyghmi-1.6.5}/buildrpm +0 -0
  19. {pyghmi-1.6.4 → pyghmi-1.6.5}/doc/requirements.txt +0 -0
  20. {pyghmi-1.6.4 → pyghmi-1.6.5}/doc/source/conf.py +0 -0
  21. {pyghmi-1.6.4 → pyghmi-1.6.5}/doc/source/contributor/index.rst +0 -0
  22. {pyghmi-1.6.4 → pyghmi-1.6.5}/doc/source/index.rst +0 -0
  23. {pyghmi-1.6.4 → pyghmi-1.6.5}/doc/source/install/index.rst +0 -0
  24. {pyghmi-1.6.4 → pyghmi-1.6.5}/doc/source/reference/index.rst +0 -0
  25. {pyghmi-1.6.4 → pyghmi-1.6.5}/makesetup +0 -0
  26. {pyghmi-1.6.4 → pyghmi-1.6.5}/playbooks/legacy/tempest-devstack-ironic-pxe_ipmitool-pyghmi-src/post.yaml +0 -0
  27. {pyghmi-1.6.4 → pyghmi-1.6.5}/playbooks/legacy/tempest-devstack-ironic-pxe_ipmitool-pyghmi-src/run.yaml +0 -0
  28. {pyghmi-1.6.4 → pyghmi-1.6.5}/py27-constraints.txt +0 -0
  29. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/__init__.py +0 -0
  30. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/cmd/__init__.py +0 -0
  31. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/cmd/fakebmc.py +0 -0
  32. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/cmd/pyghmicons.py +0 -0
  33. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/cmd/pyghmiutil.py +0 -0
  34. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/cmd/virshbmc.py +0 -0
  35. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/constants.py +0 -0
  36. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/exceptions.py +0 -0
  37. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/__init__.py +0 -0
  38. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/bmc.py +0 -0
  39. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/command.py +0 -0
  40. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/console.py +0 -0
  41. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/events.py +0 -0
  42. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/fru.py +0 -0
  43. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/__init__.py +0 -0
  44. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/generic.py +0 -0
  45. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/__init__.py +0 -0
  46. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/config.py +0 -0
  47. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/cpu.py +0 -0
  48. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/dimm.py +0 -0
  49. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/drive.py +0 -0
  50. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/energy.py +0 -0
  51. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/firmware.py +0 -0
  52. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/handler.py +0 -0
  53. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/imm.py +0 -0
  54. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/inventory.py +0 -0
  55. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/nextscale.py +0 -0
  56. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/pci.py +0 -0
  57. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/psu.py +0 -0
  58. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/raid_controller.py +0 -0
  59. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lenovo/raid_drive.py +0 -0
  60. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/oem/lookup.py +0 -0
  61. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/private/__init__.py +0 -0
  62. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/private/constants.py +0 -0
  63. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/private/localsession.py +0 -0
  64. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/private/serversession.py +0 -0
  65. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/private/session.py +0 -0
  66. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/private/simplesession.py +0 -0
  67. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/private/spd.py +0 -0
  68. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/private/util.py +0 -0
  69. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/ipmi/sdr.py +0 -0
  70. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/media.py +0 -0
  71. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/__init__.py +0 -0
  72. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/oem/__init__.py +0 -0
  73. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/oem/dell/__init__.py +0 -0
  74. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/oem/dell/idrac.py +0 -0
  75. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/oem/dell/main.py +0 -0
  76. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/oem/lenovo/__init__.py +0 -0
  77. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/oem/lenovo/main.py +0 -0
  78. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/oem/lenovo/smm3.py +0 -0
  79. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/oem/lenovo/tsma.py +0 -0
  80. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/oem/lenovo/xcc3.py +0 -0
  81. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/redfish/oem/lookup.py +0 -0
  82. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/storage.py +0 -0
  83. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/tests/__init__.py +0 -0
  84. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/tests/unit/__init__.py +0 -0
  85. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/tests/unit/base.py +0 -0
  86. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/tests/unit/ipmi/__init__.py +0 -0
  87. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/tests/unit/ipmi/test_sdr.py +0 -0
  88. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/util/__init__.py +0 -0
  89. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/util/parse.py +0 -0
  90. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/util/webclient.py +0 -0
  91. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi/version.py +0 -0
  92. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi.egg-info/SOURCES.txt +0 -0
  93. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi.egg-info/dependency_links.txt +0 -0
  94. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi.egg-info/entry_points.txt +0 -0
  95. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi.egg-info/not-zip-safe +0 -0
  96. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi.egg-info/requires.txt +0 -0
  97. {pyghmi-1.6.4 → pyghmi-1.6.5}/pyghmi.egg-info/top_level.txt +0 -0
  98. {pyghmi-1.6.4 → pyghmi-1.6.5}/python-pyghmi.spec +0 -0
  99. {pyghmi-1.6.4 → pyghmi-1.6.5}/python-pyghmi.spec.tmpl +0 -0
  100. {pyghmi-1.6.4 → pyghmi-1.6.5}/requirements.txt +0 -0
  101. {pyghmi-1.6.4 → pyghmi-1.6.5}/setup.cfg +0 -0
  102. {pyghmi-1.6.4 → pyghmi-1.6.5}/setup.py +0 -0
  103. {pyghmi-1.6.4 → pyghmi-1.6.5}/setup.py.tmpl +0 -0
  104. {pyghmi-1.6.4 → pyghmi-1.6.5}/test-requirements.txt +0 -0
  105. {pyghmi-1.6.4 → pyghmi-1.6.5}/tox.ini +0 -0
  106. {pyghmi-1.6.4 → pyghmi-1.6.5}/wheezy.patch +0 -0
  107. {pyghmi-1.6.4 → pyghmi-1.6.5}/zuul.d/project.yaml +0 -0
@@ -1,6 +1,11 @@
1
1
  CHANGES
2
2
  =======
3
3
 
4
+ 1.6.5
5
+ -----
6
+
7
+ * Attempt better redfish account deletion
8
+
4
9
  1.6.4
5
10
  -----
6
11
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyghmi
3
- Version: 1.6.4
3
+ Version: 1.6.5
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
@@ -445,7 +445,7 @@ class Command(object):
445
445
  return self.oem.get_ikvm_launchdata()
446
446
 
447
447
  def user_delete(self, uid):
448
- self.oem.user_delete(uid)
448
+ self.oem.user_delete(uid, self)
449
449
 
450
450
  def set_user_name(self, uid, name):
451
451
  """Set user name
@@ -383,13 +383,19 @@ class OEMHandler(object):
383
383
  summary['badreadings'].append(unkinf)
384
384
  return summary
385
385
 
386
- def user_delete(self, uid):
386
+ def user_delete(self, uid, fishclient):
387
387
  # Redfish doesn't do so well with Deleting users either...
388
388
  # Blanking the username seems to be the convention
389
389
  # First, set a bogus password in case the implementation does honor
390
390
  # blank user, at least render such an account harmless
391
- self.set_user_password(uid, base64.b64encode(os.urandom(15)))
392
- self.set_user_name(uid, '')
391
+ try:
392
+ accinfo = fishclient._account_url_info_by_id(uid)
393
+ if not accinfo:
394
+ raise Exception("No such account found")
395
+ self._do_web_request(accinfo[0], method='DELETE')
396
+ except Exception: # fall back to old ipmi-like behavior for such implementations
397
+ fishclient.set_user_password(uid, base64.b64encode(os.urandom(15)))
398
+ fishclient.set_user_name(uid, '')
393
399
  return True
394
400
 
395
401
  def set_bootdev(self, bootdev, persist=False, uefiboot=None,
@@ -1662,7 +1662,7 @@ class OEMHandler(generic.OEMHandler):
1662
1662
  license_errors[rsp['return']])
1663
1663
  return self.get_licenses(fishclient)
1664
1664
 
1665
- def user_delete(self, uid):
1665
+ def user_delete(self, uid, fishclient=None):
1666
1666
  userinfo = self.wc.grab_json_response('/api/dataset/imm_users')
1667
1667
  uidtonamemap = {}
1668
1668
  for user in userinfo.get('items', [{'users': []}])[0].get('users', []):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyghmi
3
- Version: 1.6.4
3
+ Version: 1.6.5
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": "f56e000", "is_release": true}
@@ -1 +0,0 @@
1
- {"git_version": "99af22b", "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