#!/usr/bin/python import sys import pywbem if len(sys.argv) < 4: print """Usage: %s
[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", "LMI_PowerManagementService", ManagedElement=computerSystems[0].path, TimeoutPeriod=pywbem.datetime.now(), PowerState=pywbem.Uint16(state), Time=pywbem.datetime.now() )