def __init__(self, port, loglevel, *controls): global LOGLEVEL LOGLEVEL = loglevel # need to set for the debug function self.port = port # port to serv on xmlrpc.setLogLevel(loglevel) # set the module logging level usage = USAGE # usage string self.killed = 0 # true if we've been killed self.contrl = [] # list of our control objects self.cmdlist = { # our command list 'getclient' : self.cgetclient, 'kill' : self.ckill, 'leave' : self.cleave, 'ping' : self.cping, 'usage' : self.cusage, } for cont in controls: (self.cmdlist, usage) = cont.link(self.cmdlist, usage) self.contrl.append(cont) self.usage = usage self.server = xmlrpc.server() self.server.addMethods(self.cmdlist) if sys.platform[:5] != 'linux': return # cause this doesn't work on windows self.stdin = xmlrpc.source(sys.stdin.fileno()) self.stdin.setCallback(self.cstdin, xmlrpc.ACT_INPUT, self.server) self.server.addSource(self.stdin)
def main(): global TESTMAP TESTMAP = { 'ascii' : exampleAscii, 'authClient' : exampleAuthClient, 'amper' : exampleAmper, 'activeFds' : exampleActiveFds, 'base64' : exampleBase64, 'build' : exampleBuild, 'callback' : exampleCallback, 'client' : exampleClient, 'date' : exampleDate, 'encode' : exampleEncode, 'fault' : exampleFault, 'emptyString' : exampleEmptyString, 'error' : exampleError, 'nbClient' : exampleNbClient, 'postpone' : examplePostpone, 'server' : exampleServer } xmlrpc.setLogLevel(LOGLEVEL) if len(sys.argv) <> 2: sys.stderr.write('Exactly one example must be specified\n') usage() example = sys.argv[1] if not TESTMAP.has_key(example): sys.stderr.write('Unknown example: %s\n' % example) usage() TESTMAP[example]()
def __init__(self, host, port, timeout=-1.0): self.host = host # host self.port = port # server port self.timeout = timeout # xmlrpc timeout self.client = xmlrpc.client(host, port) xmlrpc.setLogLevel(LOG_LEVEL) self.cmds = self.__talk__('getclient') if not self.cmds: raise ClientError, 'could not get command list'
def exampleServer(): global exitFlag exitFlag = 0 s = xmlrpc.server() xmlrpc.setLogLevel(9) # s.setAuth(authenticate) s.addMethods({ 'echo' : echoMethod, 'exit' : exitMethod, 'fault' : faultMethod, 'postpone' : postponeMethod }) s.bindAndListen(PORT) while 1: try: s.work() # you could set a timeout if desired except: e = sys.exc_info() if e[0] in (KeyboardInterrupt, SystemExit): raise e[0], e[1], e[2] traceback.print_exc() if exitFlag: break
Implements Lucene over xmlrpc as the search engine. """ from qon.search import SearchEngine, SearchResult from qon.karma import HasKarma import qon.base # imports to use lucene over xmlrpc # we'll try to use py-xmlrpc (http://sourceforge.net/projects/py-xmlrpc/) first, # because it's a LOT faster than the the built-in python xmlrpc for FreeBSD. # (on Linux, the built-in one if fine). _use_pyxmlrpc = True try: from xmlrpc import client from xmlrpc import setLogLevel setLogLevel(0) # supress debugging output to error.log import _xmlrpc except ImportError: from xmlrpclib import Server _use_pyxmlrpc = False class SearchLucene(SearchEngine): def __init__(self, xmlrpc_server, fetch_increment=200): SearchEngine.__init__(self) if _use_pyxmlrpc: (host, port) = xmlrpc_server.split(':') self._server = client(host, int(port)) else: self._server = Server("http://" + xmlrpc_server)
#!/usr/local/bin/python2.0 -O import sys import xmlrpc if len(sys.argv) != 3: sys.stderr.write('usage: %s host port\n' % sys.argv[0]) sys.exit(0) host = sys.argv[1] port = int(sys.argv[2]) c = xmlrpc.client(host, port) xmlrpc.setLogLevel(0) print c.execute('kill', []) c = None