def undo(self, workflow_dict):
        try:
            DNSAPIProvider.remove_database_dns(
                environment=workflow_dict["environment"], databaseinfraid=workflow_dict["databaseinfra"].id
            )

            DatabaseInfraDNSList.objects.filter(databaseinfra=workflow_dict["databaseinfra"].id).delete()

            return True

        except Exception:
            traceback = full_stack()

            workflow_dict["exceptions"]["error_codes"].append(DBAAS_0007)
            workflow_dict["exceptions"]["traceback"].append(traceback)

            return False
    def undo(self, workflow_dict):
        try:
            DNSAPIProvider.remove_database_dns(
                environment=workflow_dict['environment'],
                databaseinfraid=workflow_dict['databaseinfra'].id)

            DatabaseInfraDNSList.objects.filter(
                databaseinfra=workflow_dict['databaseinfra'].id).delete()

            return True

        except Exception:
            traceback = full_stack()

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

            return False
    def do(self, workflow_dict):
        try:

            for infra_attr in workflow_dict['source_secondary_ips']:
                if not infra_attr.is_write:
                    LOG.info("Calling dnsapi provider...")
                    DNSAPIProvider.remove_database_dns(
                        environment=workflow_dict['environment'],
                        databaseinfraid=workflow_dict['databaseinfra'].id,
                        dns=infra_attr.dns)

            return True
        except Exception:
            traceback = full_stack()

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

            return False