def KillAllServers(self, request, context): try: self.srv_mngr.kill_server() self.srv_mngr = ServerManager() print("All servers killed") return server_manager_pb2.RobotServer(success=1) except: return server_manager_pb2.RobotServer(success=0)
def KillServer(self, request, context): try: assert request.port assert self.srv_mngr.kill_session(repr(request.port)) print("Robot Server " + repr(request.port) + " killed") return server_manager_pb2.RobotServer(success=1) except: print("Failed to kill Robot Server " + repr(request.port)) return server_manager_pb2.RobotServer(success=0)
def KillServer(self, request, context): try: assert request.port assert self.srv_mngr.kill_session(repr(request.port)) logger.info('Robot Server {} killed'.format(repr(request.port))) return server_manager_pb2.RobotServer(success=1) except: logger.error('Failed to add Robot Server {}'.format( repr(request.port)), exc_info=True) return server_manager_pb2.RobotServer(success=0)
def kill_server(self, port): # Extract port if isinstance(port, int): pass elif isinstance(port, str): try: address = port.split(':') port = int(address[1]) except: raise RuntimeError("port argument is malformed") else: raise RuntimeError("port argument is malformed") i = 0 while (i < 1000): try: print('Killing Robot Server at {}:{} | Tentative {}'.format( self.ip, str(port), str(i + 1))) result = self.stub.KillServer( request=server_manager_pb2.RobotServer(port=port), timeout=60) if result.success: print('Successfully killed Robot Server at {}:{}'.format( self.ip, str(port))) return True else: pass except: pass i += 1 raise RuntimeError("Failed 5 tentatives of killing Robot Server")
def StartNewServer(self, request, context): try: rl_msg = server_manager_pb2.RobotServer() rl_server = self.srv_mngr.add_rl_server(cmd=request.cmd, gui=request.gui) assert isinstance(rl_server, int) rl_msg.port = rl_server rl_msg.success = 1 print("Robot Server started at {} successfully".format( repr(rl_server))) return rl_msg except: print("Failed to add Robot Server") return server_manager_pb2.RobotServer(success=0)
def StartNewServer(self, request, context): logger.info('Starting Robot Server...') try: rl_msg = server_manager_pb2.RobotServer() rl_server = self.srv_mngr.add_rl_server(cmd=request.cmd, gui=request.gui) assert isinstance(rl_server, int) rl_msg.port = rl_server rl_msg.success = 1 logger.info('Robot Server started at %s successfully', repr(rl_server)) return rl_msg except: logger.error('Failed to add Robot Server', exc_info=True) return server_manager_pb2.RobotServer(success=0)
def start_new_server(self, cmd, gui): i = 0 while (i < 1000): try: print('Starting new Robot Server | Tentative {}'.format( str(i + 1))) rl_server = self.stub.StartNewServer(request= server_manager_pb2.RobotServer(cmd= cmd, \ gui= gui), timeout =240) if rl_server.success: print('Successfully started Robot Server at {}:{}'.format( self.ip, str(rl_server.port))) return (self.ip + ':' + str(rl_server.port)) else: pass except: pass i += 1 raise RuntimeError( "Failed multiple tentatives to start new Robot Server")
def kill_all(self): msg = server_manager_pb2.RobotServer() return self.stub.KillAllServers(msg).success