def do(self): if not self.is_valid: return master_instance = self.master_instance master_host = master_instance.hostname log_file, log_pos = get_replication_information_from_file(master_host) change_master_to(self.instance, master_host.address, log_file, log_pos)
def do(self, workflow_dict): try: databaseinfra = workflow_dict['databaseinfra'] master_host = workflow_dict['host'] master_instance = Instance.objects.get(hostname=master_host) secondary_host = workflow_dict['not_primary_hosts'][0] secondary_instance = Instance.objects.get(hostname=secondary_host) master_log_file, master_log_pos = get_replication_information_from_file( host=master_host) return_code, output = use_database_initialization_script( databaseinfra=databaseinfra, host=master_host, option='start') if return_code != 0: raise Exception(str(output)) return_code, output = use_database_initialization_script( databaseinfra=databaseinfra, host=secondary_host, option='start') if return_code != 0: raise Exception(str(output)) LOG.info("Waiting 1 minute to continue") sleep(60) change_master_to(instance=master_instance, master_host=secondary_host.address, bin_log_file=master_log_file, bin_log_position=master_log_pos) change_master_to(instance=secondary_instance, master_host=master_host.address, bin_log_file=master_log_file, bin_log_position=master_log_pos) start_slave(instance=master_instance) start_slave(instance=secondary_instance) LOG.info("Waiting 30 seconds to continue") sleep(30) set_infra_read_ip(slave_host=workflow_dict['host'], infra_name=databaseinfra.name) set_infra_write_ip( master_host=workflow_dict['not_primary_hosts'][0], infra_name=databaseinfra.name) return True except Exception: traceback = full_stack() workflow_dict['exceptions']['error_codes'].append(DBAAS_0020) workflow_dict['exceptions']['traceback'].append(traceback) return False
def do(self): log_file, log_pos = get_replication_information_from_file( self.instance.hostname) master_instance = self.driver.get_master_instance() change_master_to(self.instance, master_instance.hostname.address, log_file, log_pos) change_master_to(master_instance, self.instance.hostname.address, log_file, log_pos)
def do(self, workflow_dict): try: databaseinfra = workflow_dict['databaseinfra'] master_host = workflow_dict['host'] master_instance = Instance.objects.get(hostname=master_host) secondary_host = workflow_dict['not_primary_hosts'][0] secondary_instance = Instance.objects.get(hostname=secondary_host) master_log_file, master_log_pos = get_replication_information_from_file(host=master_host) return_code, output = use_database_initialization_script(databaseinfra=databaseinfra, host=master_host, option='start') if return_code != 0: raise Exception(str(output)) return_code, output = use_database_initialization_script(databaseinfra=databaseinfra, host=secondary_host, option='start') if return_code != 0: raise Exception(str(output)) LOG.info("Waiting 1 minute to continue") sleep(60) change_master_to(instance=master_instance, master_host=secondary_host.address, bin_log_file=master_log_file, bin_log_position=master_log_pos) change_master_to(instance=secondary_instance, master_host=master_host.address, bin_log_file=master_log_file, bin_log_position=master_log_pos) start_slave(instance=master_instance) start_slave(instance=secondary_instance) LOG.info("Waiting 30 seconds to continue") sleep(30) set_infra_read_ip(slave_host=workflow_dict['host'], infra_name=databaseinfra.name) set_infra_write_ip(master_host=workflow_dict['not_primary_hosts'][0], infra_name=databaseinfra.name) return True except Exception: traceback = full_stack() workflow_dict['exceptions']['error_codes'].append(DBAAS_0020) workflow_dict['exceptions']['traceback'].append(traceback) return False
def do(self): pair = self.restore.instances_pairs()[0] log_file, log_pos = get_replication_information_from_file( pair.master.hostname) secondary = pair.master if self.instance == secondary: secondary = pair.slave change_master_to(self.instance, secondary.hostname.address, log_file, log_pos)
def do(self): pair = self.restore.instances_pairs()[0] log_file, log_pos = get_replication_information_from_file( pair.master.hostname ) secondary = pair.master if self.instance == secondary: secondary = pair.slave change_master_to( self.instance, secondary.hostname.address, log_file, log_pos )
def do(self): if not self.is_valid: return log_file, log_pos = get_replication_information_from_file(self.host) change_master_to(self.master_instance, self.host.address, log_file, log_pos)
def do(self): if not self.is_valid: return log_file, log_pos = get_replication_information_from_file(self.host) change_master_to(self.master_instance, self.host.address, log_file, log_pos)