File: README.md

package info (click to toggle)
python-pyghmi 1.6.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,376 kB
  • sloc: python: 21,736; sh: 35; makefile: 18
file content (55 lines) | stat: -rw-r--r-- 2,223 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 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:
```bash
$ 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
```