def start_client(self, src, clients): client = self._client_registry.get_client(self._ns) if client and client.is_running(): self.log.warning("Client is already running on %s" % src) return try: process = WorkerProcess( TrafficClient, (src, clients, self._record_queue), {}) with nsenter.namespace(self._ns_full_path, 'net'): process.start() self._client_registry.add_client(self._ns, process) except Exception as e: self.log.exception( "Starting client process on interface %s failed" % src) raise e
def start_client(self, src, clients): self.log.info("Starting client process on interface %s" % src) client = self._client_registry.get_client(self.ROOT_NAMESPACE_NAME) if client and client.is_running(): self.log.warning("Client is already running on %s" % src) return try: process = WorkerProcess( TrafficClient, (src, clients, self._record_queue), {}) process.start() self._client_registry.add_client(self.ROOT_NAMESPACE_NAME, process) except Exception as e: self.log.exception( "Starting client process on interface %s failed" % src) raise e
def start_server(self, protocol, port, src="0.0.0.0"): server_process = self._server_registry.get_server( self.ROOT_NAMESPACE_NAME, port, protocol) if server_process and server_process.is_running(): self.log.warning("%s server on port %s is already running" % (protocol, port)) return self.log.info("Starting %s server on port %s on interface %s" % (protocol, port, src)) try: server_cls, args, kwargs = create_server_class(protocol, port, src) process = WorkerProcess(server_cls, args, kwargs) process.start() self._server_registry.add_server(self.ROOT_NAMESPACE_NAME, port, protocol, process) except Exception as e: self.log.exception( "Starting %s server on port %s on interface %s failed" % (protocol, port, src)) raise e
def start_server(self, protocol, port, src="0.0.0.0"): server_process = self._server_registry.get_server( self._ns, port, protocol) if server_process and server_process.is_running(): self.log.warning("%s server on port %s is already running" % (protocol, port)) return self.log.info( "Starting %s server on port %s on interface %s in namespace %s" % (protocol, port, src, self._ns)) try: server_cls, args, kwargs = create_server_class(protocol, port, src) process = WorkerProcess(server_cls, args, kwargs) with nsenter.namespace(self._ns_full_path, 'net'): process.start() self._server_registry.add_server(self._ns, port, protocol, process) except Exception as e: self.log.exception( "Starting %s server on port %s on interface %s failed" % (protocol, port, src)) raise e