db_sql_query(ua->db, query.c_str(), NULL, (void *)NULL);
Dmsg1(050, "Delete File sql=%s\n", query.c_str());
+ Mmsg(query, "DELETE FROM BaseFiles WHERE JobId IN (%s)", jobs);
+ db_sql_query(ua->db, query.c_str(), NULL, (void *)NULL);
+ Dmsg1(050, "Delete BaseFiles sql=%s\n", query.c_str());
+
/*
* Now mark Job as having files purged. This is necessary to
* avoid having too many Jobs to process in future prunings. If
*/
bool mark_media_purged(UAContext *ua, MEDIA_DBR *mr)
{
+ char dev_name[MAX_NAME_LENGTH];
JCR *jcr = ua->jcr;
if (strcmp(mr->VolStatus, "Append") == 0 ||
strcmp(mr->VolStatus, "Full") == 0 ||
return false;
}
- /* Send the command to truncate the volume after purge. If this feature
- * is disabled for the specific device, this will be a no-op. */
- BSOCK *sd;
- if ((sd=open_sd_bsock(ua)) != NULL) {
- sd->fsend("truncate_on_purge %s vol=%s", ua->jcr->wstore->dev_name(), mr->VolumeName);
-
- while (sd->recv() >= 0)
- ua->send_msg("%s", sd->msg);
+/* 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.
+ */
+ BSOCK *sd;
+ if ((sd=open_sd_bsock(ua)) != NULL) {
+ bstrncpy(dev_name, ua->jcr->wstore->dev_name(), sizeof(dev_name));
+ bash_spaces(dev_name);
+ bash_spaces(mr->VolumeName);
+ sd->fsend("action_on_purge %s vol=%s action=%d",
+ dev_name,
+ mr->VolumeName,
+ mr->ActionOnPurge);
+ unbash_spaces(mr->VolumeName);
+ while (sd->recv() >= 0) {
+ ua->send_msg("%s", sd->msg);
+ }
- sd->signal(BNET_TERMINATE);
- sd->close();
- ua->jcr->store_bsock = NULL;
+ sd->signal(BNET_TERMINATE);
+ sd->close();
+ ua->jcr->store_bsock = NULL;
+ } else {
+ ua->error_msg(_("Could not connect to storage daemon"));
+ return false;
+ }
}
+#endif
pm_strcpy(jcr->VolumeName, mr->VolumeName);
generate_job_event(jcr, "VolumePurged");