diff options
Diffstat (limited to 'examples')
-rwxr-xr-x | examples/test_power.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/examples/test_power.py b/examples/test_power.py new file mode 100755 index 0000000..43d32f2 --- /dev/null +++ b/examples/test_power.py @@ -0,0 +1,52 @@ +#!/usr/bin/python + +import sys +import pywbem + +if len(sys.argv) < 4: + print """Usage: %s <address> <state> [username] [password] + Connect to CIM server at address and change the power state of the machine. + +Available states: + 4 - sleep + 5 - force reboot + 7 - hibernate + 8 - force poweroff + 12 - poweroff + 15 - reboot + +Example: %s https://127.0.0.1:5989 4 root redhat""" % (sys.argv[0], sys.argv[0]) + sys.exit(1) + +url = sys.argv[1] +try: + state = int(sys.argv[2]) +except ValueError: + print >>sys.stderr, "Unknown state: %s" % sys.argv[2] + sys.exit(4) + +username = None +password = None +if len(sys.argv) > 3: + username = sys.argv[3] +if len(sys.argv) > 4: + password = sys.argv[4] + +cliconn = pywbem.WBEMConnection(url, (username, password)) + +computerSystems = cliconn.ExecQuery('WQL', 'select * from Linux_ComputerSystem') + +if len(computerSystems) == 0: + print >>sys.stderr, "No usable Linux_ComputerSystem instance found." + sys.exit(2) + +if len(computerSystems) > 1: + print >>sys.stderr, "More than one Linux_ComputerSystem instance found, don't know which to use." + sys.exit(3) + +print cliconn.InvokeMethod("RequestPowerStateChange", "Linux_PowerManagementService", + ManagedElement=computerSystems[0].path, + TimeoutPeriod=pywbem.datetime.now(), + PowerState=pywbem.Uint16(state), + Time=pywbem.datetime.now() + ) |