{
int stat;
char ed1[30], ed2[30], ed3[30], ed4[30];
+ char dt[MAX_TIME_LENGTH];
+ struct tm tm;
db_lock(mdb);
Mmsg(&mdb->cmd, "SELECT MediaId FROM Media WHERE VolumeName='%s'",
}
/* Must create it */
+ if (mr->LabelDate) {
+ localtime_r(&mr->LabelDate, &tm);
+ strftime(dt, sizeof(dt), "%Y-%m-%d %T", &tm);
+ } else {
+ strcpy(dt, "0000-00-00 00:00:00");
+ }
Mmsg(&mdb->cmd,
"INSERT INTO Media (VolumeName,MediaType,PoolId,MaxVolBytes,VolCapacityBytes,"
-"Recycle,VolRetention,VolUseDuration,VolStatus,Slot) "
-"VALUES ('%s','%s',%u,%s,%s,%d,%s,%s,'%s',%d)",
+"Recycle,VolRetention,VolUseDuration,VolStatus,LabelDate,Slot) "
+"VALUES ('%s','%s',%u,%s,%s,%d,%s,%s,'%s','%s',%d)",
mr->VolumeName,
mr->MediaType, mr->PoolId,
edit_uint64(mr->MaxVolBytes,ed1),
mr->Recycle,
edit_uint64(mr->VolRetention, ed3),
edit_uint64(mr->VolUseDuration, ed4),
- mr->VolStatus,
+ mr->VolStatus, dt,
mr->Slot);
Dmsg1(500, "Create Volume: %s\n", mdb->cmd);
Dmsg1(100, "find_recycled_volume2 %d\n", ok);
if (!ok) {
/* See if we can create a new Volume */
+ mr.LabelDate = 0;
ok = newVolume(jcr, &mr);
}
}
return;
}
/* Set first written time if this is first job */
- if (mr.VolJobs == 0) {
+ if (mr.VolJobs == 0 || sdmr.VolJobs == 1) {
mr.FirstWritten = jcr->start_time; /* use Job start time as first write */
}
Dmsg2(200, "Update media: BefVolJobs=%u After=%u\n", mr.VolJobs, sdmr.VolJobs);