示例#1
0
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()
示例#2
0
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()
示例#3
0
            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()
示例#4
0
    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()