def do(self, workflow_dict):

        try:
            source_instances = workflow_dict['source_instances']
            source_secondary_ips = workflow_dict['source_secondary_ips']
            database = workflow_dict['database']

            for source_instance in source_instances:
                target_instance = source_instance.future_instance
                replicate_acl_for(database=database,
                                  old_ip=source_instance.address,
                                  new_ip=target_instance.address)

            for source_secondary_ip in source_secondary_ips:
                if source_secondary_ip.is_write:
                    vip = workflow_dict['vip']
                    replicate_acl_for(database=database,
                                      old_ip=source_secondary_ip.ip,
                                      new_ip=vip.vip_ip)

            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, workflow_dict):

        try:
            source_instances = workflow_dict['source_instances']
            source_secondary_ips = workflow_dict['source_secondary_ips']
            database = workflow_dict['database']

            for source_instance in source_instances:
                target_instance = source_instance.future_instance
                replicate_acl_for(database=database,
                                  old_ip=source_instance.address,
                                  new_ip=target_instance.address)

            for source_secondary_ip in source_secondary_ips:
                target_secondary_ip = source_secondary_ip.equivalent_dbinfraattr
                replicate_acl_for(database=database,
                                  old_ip=source_secondary_ip.ip,
                                  new_ip=target_secondary_ip.ip)

            return True

        except Exception:
            traceback = full_stack()

            workflow_dict['exceptions']['error_codes'].append(DBAAS_0020)
            workflow_dict['exceptions']['traceback'].append(traceback)

            return False
Esempio n. 3
0
 def do(self):
     if self.acl_client is None:
         return
     replicate_acl_for(database=self.database,
                       old_ip=self.vip.vip_ip,
                       new_ip=self.future_vip.vip_ip,
                       old_sa=self.infra.service_account,
                       new_sa=self.infra.service_account)
Esempio n. 4
0
 def do(self):
     if self.acl_client is None:
         return
     replicate_acl_for(database=self.database,
                       old_ip=self.source_host.address,
                       new_ip=self.destination_host.address,
                       old_sa=self.source_host.infra.service_account,
                       new_sa=self.destination_host.infra.service_account)
Esempio n. 5
0
 def do(self):
     if self.acl_client is None:
         return
     replicate_acl_for(
         database=self.database,
         old_ip=self.source_instance.address,
         new_ip=self.destination_instance.address
     )
Esempio n. 6
0
 def do(self):
     source_instance = self.databaseinfra.instances.filter(
         is_active=True,
         read_only=False
     ).first()
     replicate_acl_for(
         database=self.database,
         old_ip=source_instance.address,
         new_ip=self.instance.address)
Esempio n. 7
0
 def do(self):
     replicate_acl_for(database=self.database,
                       old_ip=self.source_instance.address,
                       new_ip=self.destination_instance.address)