]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/dird/autoprune.c
Minor tweaks to Migration
[bacula/bacula] / bacula / src / dird / autoprune.c
index bf054db8eb3c4602a303e6dcc1c76dbb12b06bc5..0fea7f8a7608e6dd4e2e4eb2558fb1f332844250 100644 (file)
  * Auto Prune Jobs and Files. This is called at the end of every
  *   Job.  We do not prune volumes here.
  */
-int do_autoprune(JCR *jcr)
+void do_autoprune(JCR *jcr)
 {
    UAContext *ua;
    CLIENT *client;
    bool pruned;
 
    if (!jcr->client) {                /* temp -- remove me */
-      return 1;
+      return;
    }
 
    ua = new_ua_context(jcr);
@@ -71,7 +71,7 @@ int do_autoprune(JCR *jcr)
    }
 
    free_ua_context(ua);
-   return 1;
+   return;
 }
 
 /*
@@ -101,7 +101,7 @@ int prune_volumes(JCR *jcr)
    db_lock(jcr->db);
 
    /* Get the List of all media ids in the current Pool */
-   if (!db_get_media_ids(jcr, jcr->db, jcr->PoolId, &num_ids, &ids)) {
+   if (!db_get_media_ids(jcr, jcr->db, jcr->jr.PoolId, &num_ids, &ids)) {
       Jmsg(jcr, M_ERROR, 0, "%s", db_strerror(jcr->db));
       goto bail_out;
    }
@@ -114,7 +114,11 @@ int prune_volumes(JCR *jcr)
          continue;
       }
       /* Prune only Volumes from current Pool */
-      if (jcr->PoolId != mr.PoolId) {
+      if (jcr->jr.PoolId != mr.PoolId) {
+         continue;
+      }
+      /* Don't prune archived volumes */
+      if (mr.Enabled == 2) {
          continue;
       }
       /* Prune only Volumes with status "Full", or "Used" */