Beispiel #1
0
	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)
Beispiel #2
0
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]()
Beispiel #3
0
	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'
Beispiel #4
0
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
Beispiel #5
0
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)
Beispiel #6
0
#!/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