ribcl.py.in

来自「linux集群服务器软件代码包」· IN 代码 · 共 84 行

IN
84
字号
#!@PYTHON@import sysimport socketfrom httplib import *from time import sleepargv = sys.argvtry:        host = argv[1].split('.')[0]+'-rm'        cmd = argv[2]except IndexError:        print "Not enough arguments"        sys.exit(1)login = [ '<RIBCL VERSION="1.2">',          '<LOGIN USER_LOGIN="Administrator" PASSWORD="********">' ]logout = [ '</LOGIN>', '</RIBCL>' ]status = [ '<SERVER_INFO MODE="read">', '<GET_HOST_POWER_STATUS/>',           '</SERVER_INFO>' ]reset = [ '<SERVER_INFO MODE="write">', '<RESET_SERVER/>', '</SERVER_INFO>' ]off = [ '<SERVER_INFO MODE = "write">', '<SET_HOST_POWER HOST_POWER  = "N"/>',          '</SERVER_INFO>' ]on = [ '<SERVER_INFO MODE = "write">', '<SET_HOST_POWER HOST_POWER  = "Y"/>',          '</SERVER_INFO>' ]todo = { 'reset':reset, 'on':on, 'off':off, 'status':status }acmds=[]try:        if cmd == 'reset' and host.startswith('gfxcl'):                acmds.append(login + todo['off'] + logout)                acmds.append(login + todo['on'] + logout)        else:                   acmds.append(login + todo[cmd] + logout)except KeyError:        print "Invalid command: "+ cmd        sys.exit(1)try:        for cmds in acmds:                c=HTTPSConnection(host)                c.send('<?xml version="1.0"?>\r\n')                c.sock.recv(1024)                for line in cmds:                        c.send(line+'\r\n')                        c.sock.recv(1024)                c.close()                sleep(1)except socket.gaierror, msg:        print msg        sys.exit(1)except socket.sslerror, msg:        print msg        sys.exit(1)except socket.error, msg:        print msg        sys.exit(1)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?