Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bareos/bareos.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlaa Eddine Elamri <alaeddine.elamri@bareos.com>2022-10-28 14:38:46 +0300
committerAndreas Rogge <andreas.rogge@bareos.com>2022-11-07 19:16:30 +0300
commitc94a9a9ff09cc7c398e3621f0314573c9fc44ef6 (patch)
tree2d35a0c5c7599dae85ce694842fa7a77cc874bd6
parentd4c36b692473d72074abb014e9ef4d3054b403f0 (diff)
make JobStatus private and replace accesses with setter and getter
-rw-r--r--core/src/cats/sql_create.cc6
-rw-r--r--core/src/cats/sql_update.cc2
-rw-r--r--core/src/dird/admin.cc2
-rw-r--r--core/src/dird/archive.cc2
-rw-r--r--core/src/dird/backup.cc6
-rw-r--r--core/src/dird/consolidate.cc2
-rw-r--r--core/src/dird/dir_plugins.cc2
-rw-r--r--core/src/dird/jcr_private.h24
-rw-r--r--core/src/dird/job.cc10
-rw-r--r--core/src/dird/jobq.cc6
-rw-r--r--core/src/dird/migrate.cc14
-rw-r--r--core/src/dird/ndmp_dma_backup_common.cc2
-rw-r--r--core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc2
-rw-r--r--core/src/dird/ua_cmds.cc6
-rw-r--r--core/src/dird/ua_select.cc10
-rw-r--r--core/src/dird/ua_status.cc10
-rw-r--r--core/src/dird/vbackup.cc6
-rw-r--r--core/src/filed/fd_plugins.cc2
-rw-r--r--core/src/include/jcr.h11
-rw-r--r--core/src/lib/jcr.cc2
-rw-r--r--core/src/lib/message.cc4
-rw-r--r--core/src/lib/recent_job_results_list.cc4
-rw-r--r--core/src/lib/runscript.cc11
-rw-r--r--core/src/lib/util.cc2
-rw-r--r--core/src/stored/bscan.cc6
-rw-r--r--core/src/stored/butil.cc2
-rw-r--r--core/src/stored/dir_cmd.cc2
-rw-r--r--core/src/stored/label.cc2
-rw-r--r--core/src/stored/mac.cc2
-rw-r--r--core/src/stored/sd_plugins.cc2
-rw-r--r--core/src/stored/status.cc6
31 files changed, 90 insertions, 80 deletions
diff --git a/core/src/cats/sql_create.cc b/core/src/cats/sql_create.cc
index 90c836b49..dea5346e9 100644
--- a/core/src/cats/sql_create.cc
+++ b/core/src/cats/sql_create.cc
@@ -802,7 +802,7 @@ bool BareosDb::CreateFilesetRecord(JobControlRecord* jcr, FileSetDbRecord* fsr)
bool BareosDb::WriteBatchFileRecords(JobControlRecord* jcr)
{
bool retval = false;
- int JobStatus = jcr->JobStatus;
+ int JobStatus = jcr->getJobStatus();
if (!jcr->batch_started) { /* no files to backup ? */
Dmsg0(50, "db_create_file_record : no files\n");
@@ -811,7 +811,7 @@ bool BareosDb::WriteBatchFileRecords(JobControlRecord* jcr)
Dmsg1(50, "db_create_file_record changes=%u\n", changes);
- jcr->JobStatus = JS_AttrInserting;
+ jcr->setJobStatus(JS_AttrInserting);
Jmsg(jcr, M_INFO, 0,
"Insert of attributes batch table with %u entries start\n",
@@ -850,7 +850,7 @@ bool BareosDb::WriteBatchFileRecords(JobControlRecord* jcr)
}
/* clang-format on */
- jcr->JobStatus = JobStatus; /* reset entry status */
+ jcr->setJobStatus(JobStatus); /* reset entry status */
Jmsg(jcr, M_INFO, 0, "Insert of attributes batch table done\n");
retval = true;
diff --git a/core/src/cats/sql_update.cc b/core/src/cats/sql_update.cc
index 55f558a7d..df1826a6c 100644
--- a/core/src/cats/sql_update.cc
+++ b/core/src/cats/sql_update.cc
@@ -102,7 +102,7 @@ bool BareosDb::UpdateJobStartRecord(JobControlRecord* jcr, JobDbRecord* jr)
"UPDATE Job SET JobStatus='%c',Level='%c',StartTime='%s',"
"ClientId=%s,JobTDate=%s,PoolId=%s,FileSetId=%s,VolSessionId=%lu,"
"VolSessionTime=%lu WHERE JobId=%s",
- (char)(jcr->JobStatus), (char)(jr->JobLevel), dt,
+ (char)(jcr->getJobStatus()), (char)(jr->JobLevel), dt,
edit_int64(jr->ClientId, ed1), edit_uint64(JobTDate, ed2),
edit_int64(jr->PoolId, ed3), edit_int64(jr->FileSetId, ed4),
jcr->VolSessionId, jcr->VolSessionTime, edit_int64(jr->JobId, ed5));
diff --git a/core/src/dird/admin.cc b/core/src/dird/admin.cc
index 8ce010cd9..d51e60a36 100644
--- a/core/src/dird/admin.cc
+++ b/core/src/dird/admin.cc
@@ -84,7 +84,7 @@ void AdminCleanup(JobControlRecord* jcr, int TermCode)
}
msg_type = M_INFO; /* by default INFO message */
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Terminated:
TermMsg = _("Admin OK");
break;
diff --git a/core/src/dird/archive.cc b/core/src/dird/archive.cc
index a90751499..dad5ac6ab 100644
--- a/core/src/dird/archive.cc
+++ b/core/src/dird/archive.cc
@@ -83,7 +83,7 @@ void ArchiveCleanup(JobControlRecord* jcr, int TermCode)
}
msg_type = M_INFO; /* by default INFO message */
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Terminated:
TermMsg = _("Archive OK");
break;
diff --git a/core/src/dird/backup.cc b/core/src/dird/backup.cc
index d004f691a..8ab09913a 100644
--- a/core/src/dird/backup.cc
+++ b/core/src/dird/backup.cc
@@ -657,7 +657,7 @@ int WaitForJobTermination(JobControlRecord* jcr, int timeout)
== 7) {
fd_ok = true;
jcr->setJobStatusWithPriorityCheck(jcr->impl->FDJobStatus);
- Dmsg1(100, "FDStatus=%c\n", (char)jcr->JobStatus);
+ Dmsg1(100, "FDStatus=%c\n", (char)jcr->getJobStatus());
} else {
Jmsg(jcr, M_WARNING, 0, _("Unexpected Client Job message: %s\n"),
fd->msg);
@@ -717,7 +717,7 @@ int WaitForJobTermination(JobControlRecord* jcr, int timeout)
if (!fd_ok || IsBnetError(fd)) { /* if fd not set, that use !fd_ok */
jcr->impl->FDJobStatus = JS_ErrorTerminated;
}
- if (jcr->JobStatus != JS_Terminated) { return jcr->JobStatus; }
+ if (jcr->getJobStatus() != JS_Terminated) { return jcr->getJobStatus(); }
if (jcr->impl->FDJobStatus != JS_Terminated) {
return jcr->impl->FDJobStatus;
}
@@ -757,7 +757,7 @@ void NativeBackupCleanup(JobControlRecord* jcr, int TermCode)
UpdateBootstrapFile(jcr);
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Terminated:
TermMsg = _("Backup OK");
break;
diff --git a/core/src/dird/consolidate.cc b/core/src/dird/consolidate.cc
index 9216c080d..4fdedbb23 100644
--- a/core/src/dird/consolidate.cc
+++ b/core/src/dird/consolidate.cc
@@ -347,7 +347,7 @@ void ConsolidateCleanup(JobControlRecord* jcr, int TermCode)
}
msg_type = M_INFO; /* by default INFO message */
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Terminated:
TermMsg = _("Consolidate OK");
break;
diff --git a/core/src/dird/dir_plugins.cc b/core/src/dird/dir_plugins.cc
index 6cd0bc640..183938919 100644
--- a/core/src/dird/dir_plugins.cc
+++ b/core/src/dird/dir_plugins.cc
@@ -642,7 +642,7 @@ static bRC bareosGetValue(PluginContext* ctx, brDirVariable var, void* value)
NPRT(*((char**)value)));
break;
case bDirVarJobStatus:
- *((int*)value) = jcr->JobStatus;
+ *((int*)value) = jcr->getJobStatus();
Dmsg1(debuglevel, "dir-plugin: return bDirVarJobStatus=%c\n",
jcr->getJobStatus());
break;
diff --git a/core/src/dird/jcr_private.h b/core/src/dird/jcr_private.h
index 810ea58d9..00f22b50b 100644
--- a/core/src/dird/jcr_private.h
+++ b/core/src/dird/jcr_private.h
@@ -45,17 +45,19 @@ namespace storagedaemon {
struct BootStrapRecord;
} // namespace storagedaemon
-#define JobWaiting(jcr) \
- (jcr->job_started \
- && (jcr->JobStatus == JS_WaitFD || jcr->JobStatus == JS_WaitSD \
- || jcr->JobStatus == JS_WaitMedia || jcr->JobStatus == JS_WaitMount \
- || jcr->JobStatus == JS_WaitStoreRes || jcr->JobStatus == JS_WaitJobRes \
- || jcr->JobStatus == JS_WaitClientRes \
- || jcr->JobStatus == JS_WaitMaxJobs \
- || jcr->JobStatus == JS_WaitPriority \
- || jcr->impl->SDJobStatus == JS_WaitMedia \
- || jcr->impl->SDJobStatus == JS_WaitMount \
- || jcr->impl->SDJobStatus == JS_WaitDevice \
+#define JobWaiting(jcr) \
+ (jcr->job_started \
+ && (jcr->getJobStatus() == JS_WaitFD || jcr->getJobStatus() == JS_WaitSD \
+ || jcr->getJobStatus() == JS_WaitMedia \
+ || jcr->getJobStatus() == JS_WaitMount \
+ || jcr->getJobStatus() == JS_WaitStoreRes \
+ || jcr->getJobStatus() == JS_WaitJobRes \
+ || jcr->getJobStatus() == JS_WaitClientRes \
+ || jcr->getJobStatus() == JS_WaitMaxJobs \
+ || jcr->getJobStatus() == JS_WaitPriority \
+ || jcr->impl->SDJobStatus == JS_WaitMedia \
+ || jcr->impl->SDJobStatus == JS_WaitMount \
+ || jcr->impl->SDJobStatus == JS_WaitDevice \
|| jcr->impl->SDJobStatus == JS_WaitMaxJobs))
/* clang-format off */
diff --git a/core/src/dird/job.cc b/core/src/dird/job.cc
index 8882ccdff..4114688b9 100644
--- a/core/src/dird/job.cc
+++ b/core/src/dird/job.cc
@@ -675,7 +675,7 @@ void SdMsgThreadSendSignal(JobControlRecord* jcr, int sig)
bool CancelJob(UaContext* ua, JobControlRecord* jcr)
{
char ed1[50];
- int32_t old_status = jcr->JobStatus;
+ int32_t old_status = jcr->getJobStatus();
jcr->setJobStatusWithPriorityCheck(JS_Canceled);
@@ -957,7 +957,7 @@ bool AllowDuplicateJob(JobControlRecord* jcr)
* If CancelQueuedDuplicates is set do so only if job is queued.
*/
if (job->CancelQueuedDuplicates) {
- switch (djcr->JobStatus) {
+ switch (djcr->getJobStatus()) {
case JS_Created:
case JS_WaitJobRes:
case JS_WaitClientRes:
@@ -1399,7 +1399,7 @@ void InitJcrJobRecord(JobControlRecord* jcr)
jcr->impl->jr.EndTime = 0; /* perhaps rescheduled, clear it */
jcr->impl->jr.JobType = jcr->getJobType();
jcr->impl->jr.JobLevel = jcr->getJobLevel();
- jcr->impl->jr.JobStatus = jcr->JobStatus;
+ jcr->impl->jr.JobStatus = jcr->getJobStatus();
jcr->impl->jr.JobId = jcr->JobId;
jcr->impl->jr.JobSumTotalBytes = 18446744073709551615LLU;
bstrncpy(jcr->impl->jr.Name, jcr->impl->res.job->resource_name_,
@@ -1413,7 +1413,7 @@ void UpdateJobEndRecord(JobControlRecord* jcr)
jcr->impl->jr.EndTime = time(NULL);
jcr->end_time = jcr->impl->jr.EndTime;
jcr->impl->jr.JobId = jcr->JobId;
- jcr->impl->jr.JobStatus = jcr->JobStatus;
+ jcr->impl->jr.JobStatus = jcr->getJobStatus();
jcr->impl->jr.JobFiles = jcr->JobFiles;
jcr->impl->jr.JobBytes = jcr->JobBytes;
jcr->impl->jr.ReadBytes = jcr->ReadBytes;
@@ -1636,7 +1636,7 @@ void SetJcrDefaults(JobControlRecord* jcr, JobResource* job)
jcr->impl->res.job = job;
jcr->setJobType(job->JobType);
jcr->setJobProtocol(job->Protocol);
- jcr->JobStatus = JS_Created;
+ jcr->setJobStatus(JS_Created);
switch (jcr->getJobType()) {
case JT_ADMIN:
diff --git a/core/src/dird/jobq.cc b/core/src/dird/jobq.cc
index 128cc59bc..8c4281ab3 100644
--- a/core/src/dird/jobq.cc
+++ b/core/src/dird/jobq.cc
@@ -625,7 +625,7 @@ static bool RescheduleJob(JobControlRecord* jcr, jobq_t* jq, jobq_item_t* je)
_("Rescheduled Job %s at %s to re-run in %d seconds (%s).\n"),
jcr->Job, dt, (int)jcr->impl->res.job->RescheduleInterval, dt2);
DirdFreeJcrPointers(jcr); /* partial cleanup old stuff */
- jcr->JobStatus = -1;
+ jcr->setJobStatus(-1);
jcr->impl->SDJobStatus = 0;
jcr->JobErrors = 0;
if (!AllowDuplicateJob(jcr)) { return false; }
@@ -675,8 +675,8 @@ static bool RescheduleJob(JobControlRecord* jcr, jobq_t* jq, jobq_item_t* je)
njcr->impl->res.next_pool = jcr->impl->res.next_pool;
njcr->impl->res.run_next_pool_override
= jcr->impl->res.run_next_pool_override;
- njcr->JobStatus = -1;
- njcr->setJobStatusWithPriorityCheck(jcr->JobStatus);
+ njcr->setJobStatus(-1);
+ njcr->setJobStatusWithPriorityCheck(jcr->getJobStatus());
if (jcr->impl->res.read_storage) {
CopyRstorage(njcr, jcr->impl->res.read_storage_list, _("previous Job"));
} else {
diff --git a/core/src/dird/migrate.cc b/core/src/dird/migrate.cc
index 0194c7036..8280e7c48 100644
--- a/core/src/dird/migrate.cc
+++ b/core/src/dird/migrate.cc
@@ -1243,7 +1243,7 @@ static inline bool DoActualMigration(JobControlRecord* jcr)
edit_int64(jcr->impl->previous_jr.JobId, ed1),
jcr->get_ActionName(true), jcr->get_OperationName());
jcr->setJobStatusWithPriorityCheck(JS_Terminated);
- MigrationCleanup(jcr, jcr->JobStatus);
+ MigrationCleanup(jcr, jcr->getJobStatus());
return true;
}
@@ -1253,7 +1253,7 @@ static inline bool DoActualMigration(JobControlRecord* jcr)
edit_int64(jcr->impl->previous_jr.JobId, ed1),
jcr->get_OperationName());
jcr->setJobStatusWithPriorityCheck(JS_Terminated);
- MigrationCleanup(jcr, jcr->JobStatus);
+ MigrationCleanup(jcr, jcr->getJobStatus());
return true;
}
@@ -1501,7 +1501,7 @@ bail_out:
FreePairedStorage(jcr);
if (jcr->is_JobStatus(JS_Terminated)) {
- MigrationCleanup(jcr, jcr->JobStatus);
+ MigrationCleanup(jcr, jcr->getJobStatus());
retval = true;
}
@@ -1516,7 +1516,7 @@ static inline bool DoMigrationSelection(JobControlRecord* jcr)
retval = getJobs_to_migrate(jcr);
if (retval) {
jcr->setJobStatusWithPriorityCheck(JS_Terminated);
- MigrationCleanup(jcr, jcr->JobStatus);
+ MigrationCleanup(jcr, jcr->getJobStatus());
} else {
jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated);
}
@@ -1852,7 +1852,7 @@ void MigrationCleanup(JobControlRecord* jcr, int TermCode)
}
}
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Terminated:
TermMsg = _("%s OK");
break;
@@ -1868,7 +1868,7 @@ void MigrationCleanup(JobControlRecord* jcr, int TermCode)
* can be different so that is why we do a second switch inside the
* switch on the JobStatus.
*/
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Canceled:
TermMsg = _("%s Canceled");
break;
@@ -1902,7 +1902,7 @@ void MigrationCleanup(JobControlRecord* jcr, int TermCode)
Mmsg(query, "DELETE FROM job WHERE JobId=%d", jcr->JobId);
jcr->db->SqlQuery(query.c_str());
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Terminated:
TermMsg = _("%s OK");
break;
diff --git a/core/src/dird/ndmp_dma_backup_common.cc b/core/src/dird/ndmp_dma_backup_common.cc
index b9e569fe1..3d43e1f94 100644
--- a/core/src/dird/ndmp_dma_backup_common.cc
+++ b/core/src/dird/ndmp_dma_backup_common.cc
@@ -293,7 +293,7 @@ void NdmpBackupCleanup(JobControlRecord* jcr, int TermCode)
UpdateBootstrapFile(jcr);
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Terminated:
TermMsg = _("Backup OK");
break;
diff --git a/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc b/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc
index 955d07995..6d1f2c44b 100644
--- a/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc
+++ b/core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc
@@ -344,7 +344,7 @@ static inline int NdmpWaitForJobTermination(JobControlRecord* jcr)
WaitForStorageDaemonTermination(jcr);
jcr->impl->FDJobStatus = JS_Terminated;
- if (jcr->JobStatus != JS_Terminated) { return jcr->JobStatus; }
+ if (jcr->getJobStatus() != JS_Terminated) { return jcr->getJobStatus(); }
if (jcr->impl->FDJobStatus != JS_Terminated) {
return jcr->impl->FDJobStatus;
}
diff --git a/core/src/dird/ua_cmds.cc b/core/src/dird/ua_cmds.cc
index c86e986b1..05bd82eea 100644
--- a/core/src/dird/ua_cmds.cc
+++ b/core/src/dird/ua_cmds.cc
@@ -623,7 +623,7 @@ bool Do_a_command(UaContext* ua)
* ua->jcr->setJobStatus(JS_Running)
* isn't enough, as it does not overwrite error states.
*/
- ua->jcr->JobStatus = JS_Running;
+ ua->jcr->setJobStatus(JS_Running);
if (ua->api) { user->signal(BNET_CMD_BEGIN); }
ua->send->SetMode(ua->api);
@@ -2741,8 +2741,8 @@ static bool wait_cmd(UaContext* ua, const char*)
for (bool waiting = false; !waiting;) {
foreach_jcr (jcr) {
if (jcr->JobId != 0
- && (jcr->JobStatus == JS_WaitMedia
- || jcr->JobStatus == JS_WaitMount)) {
+ && (jcr->getJobStatus() == JS_WaitMedia
+ || jcr->getJobStatus() == JS_WaitMount)) {
waiting = true;
break;
}
diff --git a/core/src/dird/ua_select.cc b/core/src/dird/ua_select.cc
index cc0b3a7ff..b8c013fc6 100644
--- a/core/src/dird/ua_select.cc
+++ b/core/src/dird/ua_select.cc
@@ -1691,16 +1691,20 @@ alist<JobId_t*>* select_jobs(UaContext* ua, const char* reason)
case all_jobs:
break;
case created_jobs:
- if (jcr->JobStatus != JS_Created) { continue; }
+ if (jcr->getJobStatus() != JS_Created) { continue; }
break;
case blocked_jobs:
- if (!jcr->job_started || jcr->JobStatus != JS_Blocked) { continue; }
+ if (!jcr->job_started || jcr->getJobStatus() != JS_Blocked) {
+ continue;
+ }
break;
case waiting_jobs:
if (!JobWaiting(jcr)) { continue; }
break;
case running_jobs:
- if (!jcr->job_started || jcr->JobStatus != JS_Running) { continue; }
+ if (!jcr->job_started || jcr->getJobStatus() != JS_Running) {
+ continue;
+ }
break;
default:
break;
diff --git a/core/src/dird/ua_status.cc b/core/src/dird/ua_status.cc
index 8494227ce..20e830194 100644
--- a/core/src/dird/ua_status.cc
+++ b/core/src/dird/ua_status.cc
@@ -291,12 +291,12 @@ static void DoAllStatus(UaContext* ua)
}
UnlockRes(my_config);
- previous_JobStatus = ua->jcr->JobStatus;
+ previous_JobStatus = ua->jcr->getJobStatus();
/* Call each unique Storage daemon */
for (j = 0; j < i; j++) {
StorageStatus(ua, unique_store[j], NULL);
- ua->jcr->JobStatus = previous_JobStatus;
+ ua->jcr->setJobStatus(previous_JobStatus);
}
free(unique_store);
@@ -326,12 +326,12 @@ static void DoAllStatus(UaContext* ua)
}
UnlockRes(my_config);
- previous_JobStatus = ua->jcr->JobStatus;
+ previous_JobStatus = ua->jcr->getJobStatus();
/* Call each unique File daemon */
for (j = 0; j < i; j++) {
ClientStatus(ua, unique_client[j], NULL);
- ua->jcr->JobStatus = previous_JobStatus;
+ ua->jcr->setJobStatus(previous_JobStatus);
}
free(unique_client);
}
@@ -970,7 +970,7 @@ static void ListRunningJobs(UaContext* ua)
continue;
}
njobs++;
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Created:
msg = _("is waiting execution");
break;
diff --git a/core/src/dird/vbackup.cc b/core/src/dird/vbackup.cc
index 29edcd2f3..9acd1b67d 100644
--- a/core/src/dird/vbackup.cc
+++ b/core/src/dird/vbackup.cc
@@ -380,7 +380,7 @@ bool DoNativeVbackup(JobControlRecord* jcr)
jcr); /* used by bulk batch file insert */
if (!jcr->is_JobStatus(JS_Terminated)) { return false; }
- NativeVbackupCleanup(jcr, jcr->JobStatus, JobLevel_of_first_job);
+ NativeVbackupCleanup(jcr, jcr->getJobStatus(), JobLevel_of_first_job);
// Remove the successfully consolidated jobids from the database
if (jcr->impl->res.job->AlwaysIncremental
@@ -407,7 +407,7 @@ void NativeVbackupCleanup(JobControlRecord* jcr, int TermCode, int JobLevel)
Dmsg2(100, "Enter backup_cleanup %d %c\n", TermCode, TermCode);
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Terminated:
case JS_Warnings:
jcr->impl->jr.JobLevel = JobLevel; /* We want this to appear as what the
@@ -456,7 +456,7 @@ void NativeVbackupCleanup(JobControlRecord* jcr, int TermCode, int JobLevel)
UpdateBootstrapFile(jcr);
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Terminated:
TermMsg = _("Backup OK");
break;
diff --git a/core/src/filed/fd_plugins.cc b/core/src/filed/fd_plugins.cc
index 43dc3e949..b992e1af2 100644
--- a/core/src/filed/fd_plugins.cc
+++ b/core/src/filed/fd_plugins.cc
@@ -2054,7 +2054,7 @@ static bRC bareosGetValue(PluginContext* ctx, bVariable var, void* value)
NPRT(*((char**)value)));
break;
case bVarJobStatus:
- *((int*)value) = jcr->JobStatus;
+ *((int*)value) = jcr->getJobStatus();
Dmsg1(debuglevel, "fd-plugin: return bVarJobStatus=%d\n",
jcr->getJobStatus());
break;
diff --git a/core/src/include/jcr.h b/core/src/include/jcr.h
index 931c4d38e..1b7949184 100644
--- a/core/src/include/jcr.h
+++ b/core/src/include/jcr.h
@@ -67,11 +67,12 @@ struct CopyThreadContext;
typedef void(JCR_free_HANDLER)(JobControlRecord* jcr);
#define JobTerminatedSuccessfully(jcr) \
- (jcr->JobStatus == JS_Terminated || jcr->JobStatus == JS_Warnings)
+ (jcr->getJobStatus() == JS_Terminated || jcr->getJobStatus() == JS_Warnings)
-#define JobCanceled(jcr) \
- (jcr->JobStatus == JS_Canceled || jcr->JobStatus == JS_ErrorTerminated \
- || jcr->JobStatus == JS_FatalError)
+#define JobCanceled(jcr) \
+ (jcr->getJobStatus() == JS_Canceled \
+ || jcr->getJobStatus() == JS_ErrorTerminated \
+ || jcr->getJobStatus() == JS_FatalError)
#define foreach_jcr(jcr) \
for (jcr = jcr_walk_start(); jcr; (jcr = jcr_walk_next(jcr)))
@@ -83,6 +84,7 @@ class JobControlRecord {
private:
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; /**< Jcr mutex */
std::atomic<int32_t> _use_count{}; /**< Use count */
+ std::atomic<int32_t> JobStatus{}; /**< ready, running, blocked, terminated */
int32_t JobType_{}; /**< Backup, restore, verify ... */
int32_t JobLevel_{}; /**< Job level */
int32_t Protocol_{}; /**< Backup Protocol */
@@ -165,7 +167,6 @@ class JobControlRecord {
uint64_t LastJobBytes{}; /**< Last sample number bytes */
uint64_t ReadBytes{}; /**< Bytes read -- before compression */
FileId_t FileId{}; /**< Last FileId used */
- std::atomic<int32_t> JobStatus{}; /**< ready, running, blocked, terminated */
int32_t JobPriority{}; /**< Job priority */
time_t sched_time{}; /**< Job schedule time, i.e. when it should start */
time_t initial_sched_time{}; /**< Original sched time before any reschedules are done */
diff --git a/core/src/lib/jcr.cc b/core/src/lib/jcr.cc
index ae127a6b6..71447eaa7 100644
--- a/core/src/lib/jcr.cc
+++ b/core/src/lib/jcr.cc
@@ -660,7 +660,7 @@ TlsPolicy JcrGetTlsPolicy(const char* unified_job_name)
static void UpdateWaitTime(JobControlRecord* jcr, int newJobStatus)
{
bool enter_in_waittime;
- int oldJobStatus = jcr->JobStatus;
+ int oldJobStatus = jcr->getJobStatus();
switch (newJobStatus) {
case JS_WaitFD:
diff --git a/core/src/lib/message.cc b/core/src/lib/message.cc
index 1c4e66176..27b0fc4f2 100644
--- a/core/src/lib/message.cc
+++ b/core/src/lib/message.cc
@@ -370,7 +370,7 @@ void CloseMsg(JobControlRecord* jcr)
switch (d->dest_code_) {
case MessageDestinationCode::KMailOnError:
if (jcr) {
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Terminated:
case JS_Warnings:
goto rem_temp_file;
@@ -381,7 +381,7 @@ void CloseMsg(JobControlRecord* jcr)
break;
case MessageDestinationCode::kMailOnSuccess:
if (jcr) {
- switch (jcr->JobStatus) {
+ switch (jcr->getJobStatus()) {
case JS_Terminated:
case JS_Warnings:
break;
diff --git a/core/src/lib/recent_job_results_list.cc b/core/src/lib/recent_job_results_list.cc
index 3165c1af0..18724ba18 100644
--- a/core/src/lib/recent_job_results_list.cc
+++ b/core/src/lib/recent_job_results_list.cc
@@ -3,7 +3,7 @@
Copyright (C) 2000-2012 Free Software Foundation Europe e.V.
Copyright (C) 2011-2012 Planets Communications B.V.
- Copyright (C) 2019-2019 Bareos GmbH & Co. KG
+ Copyright (C) 2019-2022 Bareos GmbH & Co. KG
This program is Free Software; you can redistribute it and/or
modify it under the terms of version three of the GNU Affero General Public
@@ -128,7 +128,7 @@ void RecentJobResultsList::Append(JobControlRecord* jcr)
bstrncpy(je.Job, jcr->Job, sizeof(je.Job));
je.JobFiles = jcr->JobFiles;
je.JobBytes = jcr->JobBytes;
- je.JobStatus = jcr->JobStatus;
+ je.JobStatus = jcr->getJobStatus();
je.JobLevel = jcr->getJobLevel();
je.start_time = jcr->start_time;
je.end_time = time(nullptr);
diff --git a/core/src/lib/runscript.cc b/core/src/lib/runscript.cc
index 8a17b7dd2..57ab1a2f3 100644
--- a/core/src/lib/runscript.cc
+++ b/core/src/lib/runscript.cc
@@ -146,9 +146,11 @@ int RunScripts(JobControlRecord* jcr,
} else {
if ((script->when & SCRIPT_Before) && (when & SCRIPT_Before)) {
if ((script->on_success
- && (jcr->JobStatus == JS_Running || jcr->JobStatus == JS_Created))
+ && (jcr->getJobStatus() == JS_Running
+ || jcr->getJobStatus() == JS_Created))
|| (script->on_failure
- && (JobCanceled(jcr) || jcr->JobStatus == JS_Differences))) {
+ && (JobCanceled(jcr)
+ || jcr->getJobStatus() == JS_Differences))) {
Dmsg4(200, "runscript: Run it because SCRIPT_Before (%s,%i,%i,%c)\n",
script->command.c_str(), script->on_success, script->on_failure,
jcr->getJobStatus());
@@ -157,7 +159,7 @@ int RunScripts(JobControlRecord* jcr,
}
if ((script->when & SCRIPT_AfterVSS) && (when & SCRIPT_AfterVSS)) {
- if ((script->on_success && (jcr->JobStatus == JS_Blocked))
+ if ((script->on_success && (jcr->getJobStatus() == JS_Blocked))
|| (script->on_failure && JobCanceled(jcr))) {
Dmsg4(200,
"runscript: Run it because SCRIPT_AfterVSS (%s,%i,%i,%c)\n",
@@ -170,7 +172,8 @@ int RunScripts(JobControlRecord* jcr,
if ((script->when & SCRIPT_After) && (when & SCRIPT_After)) {
if ((script->on_success && jcr->IsTerminatedOk())
|| (script->on_failure
- && (JobCanceled(jcr) || jcr->JobStatus == JS_Differences))) {
+ && (JobCanceled(jcr)
+ || jcr->getJobStatus() == JS_Differences))) {
Dmsg4(200, "runscript: Run it because SCRIPT_After (%s,%i,%i,%c)\n",
script->command.c_str(), script->on_success, script->on_failure,
jcr->getJobStatus());
diff --git a/core/src/lib/util.cc b/core/src/lib/util.cc
index 1cb6191b5..52a96e6d6 100644
--- a/core/src/lib/util.cc
+++ b/core/src/lib/util.cc
@@ -962,7 +962,7 @@ POOLMEM* edit_job_codes(JobControlRecord* jcr,
break;
case 'e': /* Job Exit code */
if (jcr) {
- str = job_status_to_str(jcr->JobStatus);
+ str = job_status_to_str(jcr->getJobStatus());
} else {
str = _("*None*");
}
diff --git a/core/src/stored/bscan.cc b/core/src/stored/bscan.cc
index 967354d8b..6c5fbb5da 100644
--- a/core/src/stored/bscan.cc
+++ b/core/src/stored/bscan.cc
@@ -1258,7 +1258,7 @@ static bool UpdateJobRecord(BareosDb* db,
jr->JobId = mjcr->JobId;
jr->JobStatus = elabel->JobStatus;
- mjcr->JobStatus = elabel->JobStatus;
+ mjcr->setJobStatus(elabel->JobStatus);
jr->JobFiles = elabel->JobFiles;
if (jr->JobFiles > 0) { /* If we found files, force PurgedFiles */
jr->PurgedFiles = 0;
@@ -1294,7 +1294,7 @@ static bool UpdateJobRecord(BareosDb* db,
char sdt[50], edt[50];
char ec1[30], ec2[30], ec3[30];
- switch (mjcr->JobStatus) {
+ switch (mjcr->getJobStatus()) {
case JS_Terminated:
TermMsg = _("Backup OK");
break;
@@ -1427,7 +1427,7 @@ static JobControlRecord* create_jcr(JobDbRecord* jr,
jobjcr->impl = new JobControlRecordPrivate;
jobjcr->setJobType(jr->JobType);
jobjcr->setJobLevel(jr->JobLevel);
- jobjcr->JobStatus = jr->JobStatus;
+ jobjcr->setJobStatus(jr->JobStatus);
bstrncpy(jobjcr->Job, jr->Job, sizeof(jobjcr->Job));
jobjcr->JobId = JobId; /* this is JobId on tape */
jobjcr->sched_time = jr->SchedTime;
diff --git a/core/src/stored/butil.cc b/core/src/stored/butil.cc
index feb6215e6..d8bea286a 100644
--- a/core/src/stored/butil.cc
+++ b/core/src/stored/butil.cc
@@ -73,7 +73,7 @@ JobControlRecord* SetupDummyJcr(const char* name,
jcr->JobId = 0;
jcr->setJobType(JT_CONSOLE);
jcr->setJobLevel(L_FULL);
- jcr->JobStatus = JS_Terminated;
+ jcr->setJobStatus(JS_Terminated);
jcr->where = strdup("");
jcr->impl->job_name = GetPoolMemory(PM_FNAME);
PmStrcpy(jcr->impl->job_name, "Dummy.Job.Name");
diff --git a/core/src/stored/dir_cmd.cc b/core/src/stored/dir_cmd.cc
index 5e1180c52..3a91ad245 100644
--- a/core/src/stored/dir_cmd.cc
+++ b/core/src/stored/dir_cmd.cc
@@ -517,7 +517,7 @@ static bool CancelCmd(JobControlRecord* cjcr)
}
}
- oldStatus = jcr->JobStatus;
+ oldStatus = jcr->getJobStatus();
jcr->setJobStatusWithPriorityCheck(status);
Dmsg2(800, "Cancel JobId=%d %p\n", jcr->JobId, jcr);
diff --git a/core/src/stored/label.cc b/core/src/stored/label.cc
index 3ecb57c7c..c2f6e1a80 100644
--- a/core/src/stored/label.cc
+++ b/core/src/stored/label.cc
@@ -624,7 +624,7 @@ static void CreateSessionLabel(DeviceControlRecord* dcr,
ser_uint32(jcr->JobErrors);
/* Added in VerNum 11 */
- ser_uint32(jcr->JobStatus);
+ ser_uint32(jcr->getJobStatus());
}
SerEnd(rec->data, SER_LENGTH_Session_Label);
rec->data_len = SerLength(rec->data);
diff --git a/core/src/stored/mac.cc b/core/src/stored/mac.cc
index a4c6a29f3..52936d1a6 100644
--- a/core/src/stored/mac.cc
+++ b/core/src/stored/mac.cc
@@ -643,7 +643,7 @@ bail_out:
memorize current JobStatus and set to
JS_Terminated to write into EOS_LABEL
*/
- char currentJobStatus = jcr->JobStatus;
+ char currentJobStatus = jcr->getJobStatus();
jcr->setJobStatusWithPriorityCheck(JS_Terminated);
// Write End Of Session Label
diff --git a/core/src/stored/sd_plugins.cc b/core/src/stored/sd_plugins.cc
index 4b01a6a72..53d4ed56a 100644
--- a/core/src/stored/sd_plugins.cc
+++ b/core/src/stored/sd_plugins.cc
@@ -736,7 +736,7 @@ static bRC bareosGetValue(PluginContext* ctx, bsdrVariable var, void* value)
NPRT(*((char**)value)));
break;
case bsdVarJobStatus:
- *((int*)value) = jcr->JobStatus;
+ *((int*)value) = jcr->getJobStatus();
Dmsg1(debuglevel, "sd-plugin: return bsdVarJobStatus=%c\n",
jcr->getJobStatus());
break;
diff --git a/core/src/stored/status.cc b/core/src/stored/status.cc
index 2451d52d4..7a662f69c 100644
--- a/core/src/stored/status.cc
+++ b/core/src/stored/status.cc
@@ -519,7 +519,7 @@ static void SendBlockedStatus(Device* dev, StatusPacket* sp)
bool found_jcr = false;
dev->Lock();
for (auto dcr : dev->attached_dcrs) {
- if (dcr->jcr->JobStatus == JS_WaitMount) {
+ if (dcr->jcr->getJobStatus() == JS_WaitMount) {
len = Mmsg(
msg,
_(" Device is BLOCKED waiting for mount of volume \"%s\",\n"
@@ -528,7 +528,7 @@ static void SendBlockedStatus(Device* dev, StatusPacket* sp)
dcr->VolumeName, dcr->pool_name, dcr->media_type);
sp->send(msg, len);
found_jcr = true;
- } else if (dcr->jcr->JobStatus == JS_WaitMedia) {
+ } else if (dcr->jcr->getJobStatus() == JS_WaitMedia) {
len = Mmsg(msg,
_(" Device is BLOCKED waiting to create a volume for:\n"
" Pool: %s\n"
@@ -663,7 +663,7 @@ static void ListRunningJobs(StatusPacket* sp)
}
foreach_jcr (jcr) {
- if (jcr->JobStatus == JS_WaitFD) {
+ if (jcr->getJobStatus() == JS_WaitFD) {
len = Mmsg(msg, _("%s Job %s waiting for Client connection.\n"),
job_type_to_str(jcr->getJobType()), jcr->Job);
sp->send(msg, len);