def _failover(self, stop_mysqld = False, rm_mysql_data = False): self.inst_id = self._get_rid() utils.check_server_status(self.inst_id,expected_task=utils.tasks.InstanceTasks.NONE, type=DBInstanceType.READ_REPLI, expected_svr_status=utils.ServiceStatuses.RUNNING, deleted=False,timeout=10) self.vip_id = utils.get_vip_id(self.inst_id) _rr_server = utils.get_builtin_instance(self.inst_id) nova_instance = _rr_server.server self.group_id = _rr_server.db_info.group_id instance_id = self.inst_id ran_count = 56 utils.generate_databases(self.master_id, count = ran_count) ip = utils.check_allocate_ip(nova_instance) if stop_mysqld: utils.stop_mysqld(ip) if rm_mysql_data: utils.mysql_data_lost(ip) utils.check_server_status(self.inst_id,expected_task=utils.tasks.InstanceTasks.NONE, type=DBInstanceType.READ_REPLI, expected_svr_status=utils.ServiceStatuses.SHUTDOWN, deleted=False,timeout=120) _ret = rpc.call(utils.get_context(),"taskmanager", { "method": "failover", "args": {'instance_id':instance_id} } ) utils.check_server_status(self.inst_id,expected_task=utils.tasks.InstanceTasks.NONE, type=DBInstanceType.READ_REPLI, expected_svr_status=utils.ServiceStatuses.RUNNING, deleted=False,timeout=120) self.master_id = utils.get_instance_id(self.group_id,DBInstanceType.MASTER) self.inst_id = self.inst_id utils.check_generated_databases(self.inst_id, count = ran_count) self.validate()
def __trigger_mysql_data_lost(cls, inst_id): inst = test_utils.get_builtin_instance( inst_id) nova_inst = inst.server ip = test_utils.check_allocate_ip(nova_inst) test_utils.mysql_data_lost(ip)