2
0
mirror of https://opendev.org/x/pyghmi synced 2026-05-16 19:34:21 +00:00
luyf5 a9c5f00f46 Support Kent
Changes are from:
    https://gitlab.icelab.lenovo.com/pygcon/pyghmi/commit/d09e23fea99664859bf00f3eae80d8720992d68c#dade58c051d057633b161944993db070adc93aa0 collection of M4 and Kent support - 12032015
    https://gitlab.icelab.lenovo.com/pygcon/pyghmi/commit/aa741a6c25a0a3c3b3cb1cafda3d36c2e811a16e fix the issue #1, #2, #8 in the review process
    https://gitlab.icelab.lenovo.com/pygcon/pyghmi/commit/2cf9bab8cee7f53f85b573149105436608d7036a Fix bug 50752 [Kent2U4N_SW][LXCA]LED State on Light Path section does not correspond the real state and bug 50756 [Kent2U4N_SW][LXCA]Event name on Alerts page is not correct .
    https://gitlab.icelab.lenovo.com/pygcon/pyghmi/commit/c11863bdc8c67797403c27d19c045b85ccdf226f Port fix in v111 to master

Change-Id: I7220b90baeb10e13f8e658505a41b358694eb8ac
2021-09-13 14:37:18 +08:00
2021-02-17 11:05:53 +01:00
2021-09-13 14:37:18 +08:00
2021-04-07 18:13:00 +02:00
2018-08-10 14:36:57 +02:00
2019-04-19 19:49:52 +00:00
2018-08-10 14:36:57 +02:00
2020-02-20 08:58:24 -05:00
2019-02-04 15:59:18 -05:00
2018-08-17 12:04:36 +02:00
2013-06-24 14:15:39 -04:00
2019-02-04 15:59:18 -05:00
2021-01-29 15:36:11 +00:00
2014-05-08 14:06:01 -04:00
2018-08-17 11:08:56 +02:00
2021-01-29 15:36:11 +00:00
2021-01-29 15:36:11 +00:00
2021-01-29 15:36:11 +00:00
2021-04-05 16:56:16 -04:00
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
S
Description
No description provided
Readme Apache-2.0 16 MiB
Languages
Python 99.9%
Shell 0.1%