]> git.sur5r.net Git - bacula/bacula/commitdiff
Disabled ActionOnPurge waiting for a fix
authorEric Bollengier <eric@eb.homelinux.org>
Wed, 27 Jan 2010 10:36:22 +0000 (11:36 +0100)
committerEric Bollengier <eric@eb.homelinux.org>
Mon, 2 Aug 2010 14:49:23 +0000 (16:49 +0200)
bacula/src/dird/ua_purge.c
bacula/src/stored/dircmd.c

index 282853f05ce810d9863d51e2d4949a9fbd4183e8..c031febc125efd5a4ea8916b6cbf0b01e8408dc3 100644 (file)
@@ -588,6 +588,8 @@ bool mark_media_purged(UAContext *ua, MEDIA_DBR *mr)
          return false;
       }
 
+/* Code currently disabled */
+#if 0
       if (mr->ActionOnPurge > 0) {
          /* Send the command to truncate the volume after purge. If this feature
           * is disabled for the specific device, this will be a no-op.
@@ -614,6 +616,7 @@ bool mark_media_purged(UAContext *ua, MEDIA_DBR *mr)
            return false;
         }
       }
+#endif
 
       pm_strcpy(jcr->VolumeName, mr->VolumeName);
       generate_job_event(jcr, "VolumePurged");
index fcb8c38d1846154586503959bfb4b7f3213b98eb..c9b74b000f875c6395e7039af29430aa7510b098 100644 (file)
@@ -883,23 +883,41 @@ static bool unmount_cmd(JCR *jcr)
  */
 static bool action_on_purge_cmd(JCR *jcr)
 {
-   POOL_MEM devname;
-   POOL_MEM volumename;
+   char devname[MAX_NAME_LENGTH];
+   char volumename[MAX_NAME_LENGTH];
    BSOCK *dir = jcr->dir_bsock;
    DEVICE *dev;
    DCR *dcr;
    int action;
 
-   devname.check_size(dir->msglen+1);
-   volumename.check_size(dir->msglen+1);
+   /* Currently disabled */
+   dir->fsend(_("3916 Feature action_on_purge currently disabled\n"));
 
-   if (sscanf(dir->msg, "action_on_purge %127s vol=%s action=%d",
-              devname.c_str(), volumename.c_str(), &action) != 3) {
+#if 0
+   /* TODO: Need to find a free device and ask for slot to the director */
+   if (sscanf(dir->msg, 
+              "action_on_purge %127s vol=%127s action=%d",
+              devname.c_str(), volumename.c_str(), &action)!= 5) 
+   {
       dir->fsend(_("3916 Error scanning action_on_purge command\n"));
       goto done;
    }
-   unbash_spaces(volumename.c_str());
-   unbash_spaces(devname.c_str());
+   unbash_spaces(volumename);
+   unbash_spaces(devname);
+
+   /* Check if action is correct */
+   switch (action) {
+   case AOP_TRUNCTATE:
+      break;
+   default:
+      dir->fsend(_("3919 Bad ActionOnPurge\n"));
+      goto done;
+   }
+
+   /* TODO: Ask for Volume information
+    *  - check recycle
+    *  - find slot
+    */
 
    /* FIXME: autochanger, drive = 0? how can we avoid that? we only work on
     * files 
@@ -921,6 +939,7 @@ static bool action_on_purge_cmd(JCR *jcr)
    } else {
       dir->fsend(_("3918 Recycle failed\n"));
    }
+#endif
 
 done:
    dir->signal(BNET_EOD);