File: dcmi.py

package info (click to toggle)
python-ipmi 0.5.7-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 1,132 kB
  • sloc: python: 12,645; makefile: 2
file content (47 lines) | stat: -rw-r--r-- 1,430 bytes parent folder | download
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
#!/usr/bin/env python

import sys

import pyipmi
import pyipmi.interfaces


def main():

    if len(sys.argv) < 4:
        print('<HOST> <USER> <PASSWORD>')
        sys.exit(1)

    host = sys.argv[1]
    user = sys.argv[2]
    password = sys.argv[3]

    interface = pyipmi.interfaces.create_interface('ipmitool',
                                                   interface_type='lanplus')
    ipmi = pyipmi.create_connection(interface)
    ipmi.session.set_session_type_rmcp(host, 623)
    ipmi.session.set_auth_type_user(user, password)
    ipmi.session.establish()
    ipmi.target = pyipmi.Target(ipmb_address=0x20)

    for selector in range(1, 6):
        caps = ipmi.get_dcmi_capabilities(selector)
        print('Selector: {} '.format(selector))
        print('  version:  {} '.format(caps.specification_conformence))
        print('  revision: {}'.format(caps.parameter_revision))
        print('  data:     {}'.format(caps.parameter_data))

    rsp = ipmi.get_power_reading(1)

    print('Power Reading')
    print('  current:   {}'.format(rsp.current_power))
    print('  minimum:   {}'.format(rsp.minimum_power))
    print('  maximum:   {}'.format(rsp.maximum_power))
    print('  average:   {}'.format(rsp.average_power))
    print('  timestamp: {}'.format(rsp.timestamp))
    print('  period:    {}'.format(rsp.period))
    print('  state:     {}'.format(rsp.reading_state))


if __name__ == '__main__':
    main()