2
0
mirror of https://opendev.org/x/pyghmi synced 2024-12-25 12:41:37 +00:00
Go to file
Jarrod Johnson 5756a1e377 Extend MAC collection in redfish
There is yet another flavor of MAC address organization.

So make sure we provide chances to hit it at least three of
the various ways redfish may choose to manifest mac addresses.

There are other paths to the data as well, but hopefully an
implementation at least implements one of the three.

Change-Id: Iaba947e2e16f14b6e7a94018beac046efd73bc25
2024-08-26 16:22:08 -04:00
doc Do not use openstackdocstheme 2021-02-17 11:05:53 +01:00
playbooks/legacy/tempest-devstack-ironic-pxe_ipmitool-pyghmi-src Replace openstack.org git:// URLs with https:// 2019-03-24 20:35:47 +00:00
pyghmi Extend MAC collection in redfish 2024-08-26 16:22:08 -04:00
zuul.d Add SMM2 VPD to configuration for SMM 2022-06-07 13:03:23 -04:00
.coveragerc Switch to stestr 2018-08-10 14:36:57 +02:00
.gitignore Add more file patterns for git to ignore 2018-08-10 12:42:20 +02:00
.gitreview OpenDev Migration Patch 2019-04-19 19:49:52 +00:00
.stestr.conf Switch to stestr 2018-08-10 14:36:57 +02:00
builddeb Update for modern Debian/Ubuntu build 2024-06-11 13:26:47 -04:00
buildrpm Enable package builds without pbr 2019-02-04 15:59:18 -05:00
CONTRIBUTING.rst Update package documentation 2018-08-17 12:04:36 +02:00
LICENSE Place project under Apache license 2.0 2013-06-24 14:15:39 -04:00
makesetup Update for modern Debian/Ubuntu build 2024-06-11 13:26:47 -04:00
MANIFEST.in Catch more XCC variants 2024-02-12 08:46:11 -05:00
py27-constraints.txt Reconfigure tox 2021-01-29 15:36:11 +00:00
python-pyghmi.spec Add dateutil requirement for python2 users 2020-06-22 10:13:54 -04:00
python-pyghmi.spec.tmpl Add a spec template for rpm build 2019-09-24 16:33:15 -04:00
README Install scripts as well as library 2014-05-08 14:06:01 -04:00
README.md Fix minor .spec issues 2018-08-17 11:08:56 +02:00
requirements.txt Reconfigure tox 2021-01-29 15:36:11 +00:00
setup.cfg Update for modern Debian/Ubuntu build 2024-06-11 13:26:47 -04:00
setup.py Refactor console scripts into entry points 2018-08-10 13:56:22 +02:00
setup.py.tmpl Update for modern Debian/Ubuntu build 2024-06-11 13:26:47 -04:00
test-requirements.txt Remove unused test-requirements 2024-04-21 13:18:28 +02:00
tox.ini Improve tests 2021-10-18 14:28:18 +02:00
wheezy.patch Update the Wheezy patch 2019-02-08 15:22:53 -05:00

pyghmi

Pyghmi is a pure Python (mostly IPMI) server management library.

Building and installing

(These instructions have been tested on CentOS 7)

Clone the repository, generate the RPM and install it:

$ git clone https://github.com/openstack/pyghmi.git
$ cd pyghmi/
$ python setup.py bdist_rpm
$ sudo rpm -ivh dist/pyghmi-*.noarch.rpm

Using

There are a few use examples in the bin folder:

  • fakebmc: simply fakes a BMC that supports a few IPMI commands (useful for testing)
  • pyghmicons: a remote console based on SOL redirection over IPMI
  • pyghmiutil: an IPMI client that supports a few direct uses of pyghmi (also useful for testing and prototyping new features)
  • virshbmc: a BMC emulation wrapper using libvirt

Extending

If you plan on adding support for new features, you'll most likely be interested in adding your methods to pyghmi/ipmi/command.py. See methods such as get_users and set_power for examples of how to use internal mechanisms to implement new features. And please, always document new methods.

Sometimes you may want to implement OEM-specific code. For example, retrieving firmware version information is not a part of standard IPMI, but some servers are known to support it via custom OEM commands. If this is the case, follow these steps:

  • Add your generic retrieval function (stub) to the OEMHandler class in pyghmi/ipmi/oem/generic.py. And please, document its intent, parameters and expected return values.
  • Implement the specific methods that your server supports in subdirectories in the oem folder (consider the lenovo submodule as an example). A OEM folder will contain at least one class inheriting from OEMHandler, and optionally helpers for running and parsing custom OEM commands.
  • Register mapping policies in pyghmi/ipmi/oem/lookup.py so pyghmi knows how to associate a BMC session with the specific OEM code you implemented.

A good way of testing the new feature is using bin/pyghmiutil. Just add an extension for the new feature you just implemented (as a new command) and call it from the command line:

$ IPMIPASSWORD=passw0rd bin/pyghmiutil [BMC IP address] username my_new_feature_command