def stop_replica(self, replica): """ Stop a replica if it is running. Otherwise raise an AlreadyStoppedError. """ if replica not in self.procs: raise AlreadyStoppedError(replica) p = self.procs[replica] p.kill() p.wait() del self.procs[replica]
def stop_replica(self, replica_id): """ Stop a replica if it is running. Otherwise raise an AlreadyStoppedError. """ if replica_id not in self.procs.keys(): raise AlreadyStoppedError(replica_id) if self.is_existing and self.config.stop_replica_cmd is not None: self._stop_external_replica(replica_id) else: p = self.procs[replica_id] p.kill() p.wait() del self.procs[replica_id]
def stop_replica(self, replica_id): """ Stop a replica if it is running. Otherwise raise an AlreadyStoppedError. """ if replica_id not in self.procs.keys(): raise AlreadyStoppedError(replica_id) if self.is_existing and self.config.stop_replica_cmd is not None: self._stop_external_replica(replica_id) else: p = self.procs[replica_id] if os.environ.get('LEAKCHECK', "").lower() in set(["true", "on"]): p.terminate() else: p.kill() for fd in self.open_fds.get(replica_id, ()): fd.close() p.wait() del self.procs[replica_id]