def _init_worker(self): self.workers = {} dbreplicas = self.controller.get_all() for dbreplica in dbreplicas: worker = ReplicaWorker(self.persistence, dbreplica, self.config) worker.start() self.workers[dbreplica.id] = worker
def worker_restart(self, replica_id): if not self.workers.has_key(replica_id): raise Exception("worker not exist") else: self.workers[replica_id].stop() worker = ReplicaWorker(self.persistence, self.controller.get(replica_id)) worker.start() self.workers[replica_id] = worker return "ok"
def del_slave(self, replica_id, slave_id): if not self.workers.has_key(replica_id): raise Exception("replication not exist") else: self.controller.del_slave(replica_id, slave_id) self.workers[replica_id].stop() worker = ReplicaWorker(self.persistence, self.controller.get(replica_id), self.config) worker.start() self.workers[replica_id] = worker return "ok"
def update_check_period(self, replica_id, check_period): if not self.workers.has_key(replica_id): raise Exception("replication not exist") else: self.controller.update_check_period(replica_id, int(check_period)) self.workers[replica_id].stop() worker = ReplicaWorker(self.persistence, self.controller.get(replica_id), self.config) worker.start() self.workers[replica_id] = worker return "ok"
def update_no_slave_purge(self, replica_id, no_slave_purge): if not self.workers.has_key(replica_id): raise Exception("replication not exist") else: self.controller.update_no_slave_purge(replica_id, int(no_slave_purge)) self.workers[replica_id].stop() worker = ReplicaWorker(self.persistence, self.controller.get(replica_id), self.config) worker.start() self.workers[replica_id] = worker return "ok"
def update_binlog_window(self, replica_id, binlog_window): if not self.workers.has_key(replica_id): raise Exception("replication not exist") else: self.controller.update_binlog_window(replica_id, int(binlog_window)) self.workers[replica_id].stop() worker = ReplicaWorker(self.persistence, self.controller.get(replica_id), self.config) worker.start() self.workers[replica_id] = worker return "ok"
def add(self, replica_id, name, master, slaves, check_period=60, binlog_window=0, no_slave_purge=1): if self.workers.has_key(replica_id): raise Exception("duplicate replication") else: dbreplica = DBReplica(replica_id, name, master, slaves, int(check_period), int(binlog_window), int(no_slave_purge)) worker = ReplicaWorker(self.persistence, dbreplica, self.config) worker.start() self.workers[replica_id] = worker self.controller.add(dbreplica) return "ok"
def add_slave(self, replica_id, slave_id): if not self.workers.has_key(replica_id): raise Exception("replication not exist") elif self.dbinstance_controller.get(slave_id) is None: raise Exception("no %s slave instance" % slave_id) else: self.controller.add_slave(replica_id, slave_id) self.workers[replica_id].stop() worker = ReplicaWorker(self.persistence, self.controller.get(replica_id), self.config) worker.start() self.workers[replica_id] = worker return "ok"