def remove_procedure_volumes(procedure): pool_name = procedure.pool_bacula_name() medias = Media.objects.filter(pool__name=pool_name).distinct() volumes = [m.volumename for m in medias] try: bacula = Bacula() bacula.cancel_procedure(procedure) bacula.purge_volumes(volumes, pool_name) bacula.truncate_volumes(pool_name) bacula.delete_pool(pool_name) for volume in volumes: volume_abs_path = join(settings.NIMBUS_DEFAULT_ARCHIVE, volume) if exists(volume_abs_path): os.remove(volume_abs_path) except BConsoleInitError, error: logger = logging.getLogger(__name__) logger.exception("Erro na comunicação com o bacula")
def cancel(self): bacula = Bacula() bacula.cancel_procedure(self)