class PBRPCServer(SessionServer): def __init__(self, manager, port = 12345): SessionServer.__init__(self, manager) self.server = SocketRpcServer(port) self.server.registerService(PBRPCImpl(self.manager, self)) logging.getLogger('protobuf.socketrpc.server').addFilter(PBRPCFilter()) def run(self): self.server.run()
def run(self): """ Start service thread """ # Create a server instance server = SocketRpcServer(self.port, host='', timeout=self.timeout) for service in self.service_module.services: service_class = getattr(self.service_pb2_module, service.name) newservice = service_class() for method_name, handler in self.service_module.service_handlers[ service.name].items(): # Attatch a handler to the service class setattr(newservice, method_name, self.protobuf_rpc_closure(handler)) server.registerService(newservice) # Start the server server.run()
def run(self): """ Start service thread """ # Create a server instance server = SocketRpcServer(self.port,host='') for service in self.services: service_class = self.module.__dict__[service.name] handlers = {} # Link each method to its handler for method in service.methods: #handlers[method.name] = self._createHandler(method.handler) handlers[method.name] = method.handler # Extend Service class and add handlers newservice = type(service.name + "Impl", (service_class,), handlers) server.registerService(newservice()) # Start the server server.run();
import logging log = logging.getLogger(__name__) port = 8090 class TimeService(proto.TimeService): '''An example service implementation.''' def getTime(self, controller, request, done): '''Get the current time and return as a response message via the callback routine provide.''' log.info('Called TestMethod') # Create response message response = proto.TimeResponse() response.str_time = time.asctime() # Call provided callback with response message done.run(response) if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG) # Create service service = TimeService() server = SocketRpcServer(port) server.registerService(service) server.run()
response.response = proto.RES_ERR response.response_message = 'failure ' try: response.response_message += proto._COMMAND.values_by_number[request.command].name except Exception,ex: response.response = proto.RES_ERR response.response_message = 'This command is not acceptable: ' + str(ex) # Call provided callback with response message done.run(response) if __name__ == '__main__': parser = argparse.ArgumentParser(description='This is a demo script by Derya Yinanc.') parser.add_argument('-p','--port',help='Port', required=True) args = parser.parse_args() logging.basicConfig(level=logging.DEBUG) # Create service try: service = PoshService() server = SocketRpcServer(int(args.port),host='') server.registerService(service) server.run() except Exception, ex: print (ex)