def undo(self, workflow_dict):
        LOG.info("Running undo...")
        try:
            from dbaas_nfsaas.models import HostAttr

            databaseinfra = workflow_dict['databaseinfra']
            instance = workflow_dict['source_instances'][0]
            if 'database_locked' in workflow_dict and workflow_dict['database_locked']:
                driver = databaseinfra.get_driver()
                client = driver.get_client(instance)
                driver.unlock_database(client)

            if 'snapshopt_id' in workflow_dict:
                snapshot = Snapshot.objects.get(
                    snapshopt_id=workflow_dict['snapshopt_id']
                )
                delete_snapshot(snapshot=snapshot)

            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. 2
0
def remove_snapshot_backup(snapshot):
    LOG.info("Removing backup for %s" % (snapshot))

    delete_snapshot(snapshot)

    snapshot.purge_at = datetime.datetime.now()
    snapshot.save()
    return
Esempio n. 3
0
def remove_snapshot_backup(snapshot):
    snapshots = snapshot.group.backups.all() if snapshot.group else [snapshot]
    for snapshot in snapshots:

        if snapshot.purge_at:
            continue

        LOG.info("Removing backup for %s" % (snapshot))

        delete_snapshot(snapshot)

        snapshot.purge_at = datetime.datetime.now()
        snapshot.save()

    return
    def do(self, workflow_dict):
        try:
            snapshot = Snapshot.objects.get(
                snapshopt_id=workflow_dict['snapshopt_id']
            )
            delete_snapshot(snapshot=snapshot)

            del workflow_dict['snapshopt_id']

            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. 5
0
    def undo(self, workflow_dict):
        LOG.info("Running undo...")
        try:

            if 'snapshopt_id' in workflow_dict:
                snapshot = Snapshot.objects.get(
                    snapshopt_id=workflow_dict['snapshopt_id']
                )
                delete_snapshot(snapshot=snapshot)
                snapshot.purge_at = datetime.datetime.now()
                snapshot.save()

            return True
        except Exception:
            traceback = full_stack()

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

            return False