def main(): readIniFile() LOGGING['handlers']['file']['filename'] = logpath + '/mpexagent.log' logging.config.dictConfig(LOGGING) observer = twlog.PythonLoggingObserver() observer.start() args = parse_args() try: if args.mpex_url: mpexagent = MPExAgent(replaycheck=True, mpexurl=args.mpex_url) else: mpexagent = MPExAgent(replaycheck=True) mpexagent.passphrase = getpass("Enter your GPG passphrase: ") root = JSON_RPC().customize(RPCServer) root.eventhandler.agent = mpexagent if (mode != 'noweb'): webroot = static.File(webpath) webroot.putChild('jsonrpc', root) root = webroot if (auth != 'noauth'): if (auth == 'md5'): hashfunc = hashmd5 if (auth == 'sha1'): hashfunc = hashsha1 if (auth == 'plain'): hashfunc = hashplain realm = HttpPasswordRealm(root) p = portal.Portal(realm, [ checkers.FilePasswordDB(passpath, delim=":", hash=hashfunc) ]) credentialFactory = BasicCredentialFactory("MpexAgent") protected_resource = HTTPAuthSessionWrapper( p, [credentialFactory]) root = protected_resource site = server.Site(root) bindaddr = '*:' if args.listen_addr == '' else args.listen_addr + ':' log.info('Listening on %s%d...', bindaddr, args.port) if (mode != 'https'): reactor.listenTCP(args.port, site, interface=args.listen_addr) else: reactor.listenSSL( args.port, site, ssl.DefaultOpenSSLContextFactory(keypath, certpath)) reactor.run() except KeyboardInterrupt: print '^C received, shutting down server' server.socket.close()
def main(): logging.config.dictConfig(LOGGING) observer = twlog.PythonLoggingObserver() observer.start() args = parse_args() try: if args.mpex_url: mpexagent = MPExAgent(replaycheck = True, mpexurl = args.mpex_url) else: mpexagent = MPExAgent(replaycheck = True) mpexagent.passphrase = getpass("Enter your GPG passphrase: ") root = JSON_RPC().customize(RPCServer) root.eventhandler.agent = mpexagent site = server.Site(root) bindaddr = '*:' if args.listen_addr == '' else args.listen_addr + ':' log.info('Listening on %s%d...', bindaddr, args.port) reactor.listenTCP(args.port, site, interface=args.listen_addr) reactor.run() except KeyboardInterrupt: print '^C received, shutting down server' server.socket.close()
print(txrequest, msg) def findmethod(self, method, args=None, kwargs=None): if method in self.methods: next_seed = self.get_next_seed.next() engine = LE.LocalEngine(next_seed) return getattr(engine, method) else: return None # helper methods def _get_msg(self, response): ret_str = str(response) if hasattr(response, 'id'): ret_str = str(response.id) if response.result: ret_str += '; result: %s' % str(response.result) else: ret_str += '; error: %s' % str(response.error) return ret_str root = JSON_RPC().customize(ExampleServer) site = server.Site(root) # 8007 is the port you want to run under. Choose something >1024 PORT = 8007 print('Listening on port %d...' % PORT) reactor.listenTCP(PORT, site) reactor.run()
def _get_msg(self, response): print('response', repr(response)) return ' '.join(str(x) for x in [response.id, response.result or response.error]) def subtract(self, a, b): return a - b def add(self, a, b): return a + b def echo(self, v): return v class ThreadedHTTPServer(ThreadingMixIn, HTTPServer): """Handle requests in a separate thread.""" handler = JSON_RPC.customize(ExampleServer) # 8007 is the port you want to run under. Choose something >1024 PORT = 8007 print('Listening on port %d...' % PORT) httpd = ThreadedHTTPServer(('', PORT), handler) try: httpd.serve_forever() except KeyboardInterrupt: httpd.server_close()