]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/dircmd.c
Disabled ActionOnPurge waiting for a fix
[bacula/bacula] / bacula / src / stored / dircmd.c
index e34f9466e93bd9646ed38db3be73b60b86728b62..c9b74b000f875c6395e7039af29430aa7510b098 100644 (file)
@@ -250,8 +250,6 @@ bail_out:
    dequeue_messages(jcr);             /* send any queued messages */
    bs->signal(BNET_TERMINATE);
    free_jcr(jcr);
-   /* ***FIXME*** remove for production */
-   sm_check(__FILE__, __LINE__, true);
    return NULL;
 }
 
@@ -885,19 +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;
 
-   if (sscanf(dir->msg, "action_on_purge %127s vol=%s action=%d",
-              devname.c_str(), volumename.c_str(), &action) != 3) {
+   /* Currently disabled */
+   dir->fsend(_("3916 Feature action_on_purge currently disabled\n"));
+
+#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(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 
@@ -919,6 +939,7 @@ static bool action_on_purge_cmd(JCR *jcr)
    } else {
       dir->fsend(_("3918 Recycle failed\n"));
    }
+#endif
 
 done:
    dir->signal(BNET_EOD);