Skip to content

Commit

Permalink
refactor: update JobStatusToAscii to return std::string
Browse files Browse the repository at this point in the history
  • Loading branch information
alaaeddineelamri authored and BareosBot committed Aug 1, 2023
1 parent 2a0d399 commit 679db6a
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 90 deletions.
11 changes: 5 additions & 6 deletions core/src/dird/backup.cc
Expand Up @@ -893,7 +893,6 @@ void GenerateBackupSummary(JobControlRecord *jcr, ClientDbRecord *cr, int msg_ty
char sdt[50], edt[50], schedt[50], gdt[50];
char ec1[30], ec2[30], ec3[30], ec4[30], ec5[30], compress[50];
char ec6[30], ec7[30], ec8[30], elapsed[50];
char fd_term_msg[100], sd_term_msg[100];
double kbps, compression;
utime_t RunTime;
MediaDbRecord mr;
Expand Down Expand Up @@ -958,8 +957,8 @@ void GenerateBackupSummary(JobControlRecord *jcr, ClientDbRecord *cr, int msg_ty
}
}

JobstatusToAscii(jcr->dir_impl->FDJobStatus, fd_term_msg, sizeof(fd_term_msg));
JobstatusToAscii(jcr->dir_impl->SDJobStatus, sd_term_msg, sizeof(sd_term_msg));
std::string fd_term_msg = JobstatusToAscii(jcr->dir_impl->FDJobStatus);
std::string sd_term_msg = JobstatusToAscii(jcr->dir_impl->SDJobStatus);

switch (jcr->getJobProtocol()) {
case PT_NDMP_BAREOS:
Expand Down Expand Up @@ -1053,7 +1052,7 @@ void GenerateBackupSummary(JobControlRecord *jcr, ClientDbRecord *cr, int msg_ty
" SD termination status: %s\n"
" Accurate: %s\n"),
jcr->dir_impl->SDErrors,
sd_term_msg,
sd_term_msg.c_str(),
jcr->accurate ? _("yes") : _("no"));
} else {
if (jcr->HasBase) {
Expand Down Expand Up @@ -1091,8 +1090,8 @@ void GenerateBackupSummary(JobControlRecord *jcr, ClientDbRecord *cr, int msg_ty
" SD termination status: %s\n"),
jcr->JobErrors,
jcr->dir_impl->SDErrors,
fd_term_msg,
sd_term_msg);
fd_term_msg.c_str(),
sd_term_msg.c_str());

if (me->secure_erase_cmdline) {
Mmsg(temp," Dir Secure Erase Cmd: %s\n", me->secure_erase_cmdline);
Expand Down
7 changes: 3 additions & 4 deletions core/src/dird/migrate.cc
Expand Up @@ -1515,7 +1515,7 @@ static inline void GenerateMigrateSummary(JobControlRecord* jcr,
double kbps;
utime_t RunTime;
JobControlRecord* mig_jcr = jcr->dir_impl->mig_jcr;
char term_code[100], sd_term_msg[100];
char term_code[100];
char sdt[MAX_TIME_LENGTH], edt[MAX_TIME_LENGTH];
char ec1[30], ec2[30], ec3[30], ec4[30], ec5[30], elapsed[50];
char ec6[50], ec7[50], ec8[50];
Expand All @@ -1526,8 +1526,7 @@ static inline void GenerateMigrateSummary(JobControlRecord* jcr,
bstrftimes(edt, sizeof(edt), jcr->dir_impl->jr.EndTime);
RunTime = jcr->dir_impl->jr.EndTime - jcr->dir_impl->jr.StartTime;

JobstatusToAscii(jcr->dir_impl->SDJobStatus, sd_term_msg,
sizeof(sd_term_msg));
std::string sd_term_msg = JobstatusToAscii(jcr->dir_impl->SDJobStatus);
if (jcr->dir_impl->previous_jr.JobId != 0) {
// Copy/Migrate worker Job.
if (RunTime <= 0) {
Expand Down Expand Up @@ -1605,7 +1604,7 @@ static inline void GenerateMigrateSummary(JobControlRecord* jcr,
mig_jcr ? mig_jcr->VolumeName : _("*None*"), jcr->VolSessionId,
jcr->VolSessionTime, edit_uint64_with_commas(mr->VolBytes, ec4),
edit_uint64_with_suffix(mr->VolBytes, ec5), jcr->dir_impl->SDErrors,
sd_term_msg, kBareosVersionStrings.JoblogMessage,
sd_term_msg.c_str(), kBareosVersionStrings.JoblogMessage,
JobTriggerToString(jcr->dir_impl->job_trigger).c_str(), term_code);
} else {
// Copy/Migrate selection only Job.
Expand Down
15 changes: 7 additions & 8 deletions core/src/dird/restore.cc
Expand Up @@ -482,7 +482,6 @@ void GenerateRestoreSummary(JobControlRecord* jcr,
{
char sdt[MAX_TIME_LENGTH], edt[MAX_TIME_LENGTH];
char ec1[30], ec2[30], ec3[30], elapsed[50];
char fd_term_msg[100], sd_term_msg[100];
utime_t RunTime;
double kbps;
PoolMem temp, secure_erase_status;
Expand All @@ -497,10 +496,8 @@ void GenerateRestoreSummary(JobControlRecord* jcr,
}
if (kbps < 0.05) { kbps = 0; }

JobstatusToAscii(jcr->dir_impl->FDJobStatus, fd_term_msg,
sizeof(fd_term_msg));
JobstatusToAscii(jcr->dir_impl->SDJobStatus, sd_term_msg,
sizeof(sd_term_msg));
std::string fd_term_msg = JobstatusToAscii(jcr->dir_impl->FDJobStatus);
std::string sd_term_msg = JobstatusToAscii(jcr->dir_impl->SDJobStatus);

ClientDbRecord cr;
bstrncpy(cr.Name, jcr->dir_impl->res.client->resource_name_, sizeof(cr.Name));
Expand Down Expand Up @@ -540,7 +537,8 @@ void GenerateRestoreSummary(JobControlRecord* jcr,
edit_uint64_with_commas((uint64_t)jcr->dir_impl->ExpectedFiles, ec1),
edit_uint64_with_commas((uint64_t)jcr->dir_impl->jr.JobFiles, ec2),
edit_uint64_with_commas(jcr->dir_impl->jr.JobBytes, ec3),
(float)kbps, sd_term_msg, kBareosVersionStrings.JoblogMessage,
(float)kbps, sd_term_msg.c_str(),
kBareosVersionStrings.JoblogMessage,
JobTriggerToString(jcr->dir_impl->job_trigger).c_str(), TermMsg);
break;
default:
Expand Down Expand Up @@ -587,8 +585,9 @@ void GenerateRestoreSummary(JobControlRecord* jcr,
edit_uint64_with_commas((uint64_t)jcr->dir_impl->ExpectedFiles, ec1),
edit_uint64_with_commas((uint64_t)jcr->dir_impl->jr.JobFiles, ec2),
edit_uint64_with_commas(jcr->dir_impl->jr.JobBytes, ec3),
(float)kbps, jcr->JobErrors, fd_term_msg, sd_term_msg,
secure_erase_status.c_str(), kBareosVersionStrings.JoblogMessage,
(float)kbps, jcr->JobErrors, fd_term_msg.c_str(),
sd_term_msg.c_str(), secure_erase_status.c_str(),
kBareosVersionStrings.JoblogMessage,
JobTriggerToString(jcr->dir_impl->job_trigger).c_str(), TermMsg);
break;
}
Expand Down
14 changes: 7 additions & 7 deletions core/src/dird/verify.cc
Expand Up @@ -435,7 +435,7 @@ void VerifyCleanup(JobControlRecord* jcr, int TermCode)
int JobLevel;
char sdt[50], edt[50];
char ec1[30], ec2[30];
char term_code[100], fd_term_msg[100], sd_term_msg[100];
char term_code[100];
const char* TermMsg;
int msg_type;
const char* Name;
Expand Down Expand Up @@ -492,12 +492,11 @@ void VerifyCleanup(JobControlRecord* jcr, int TermCode)
Name = "";
}

JobstatusToAscii(jcr->dir_impl->FDJobStatus, fd_term_msg,
sizeof(fd_term_msg));
std::string fd_term_msg = JobstatusToAscii(jcr->dir_impl->FDJobStatus);
std::string sd_term_msg = JobstatusToAscii(jcr->dir_impl->SDJobStatus);

switch (JobLevel) {
case L_VERIFY_VOLUME_TO_CATALOG:
JobstatusToAscii(jcr->dir_impl->SDJobStatus, sd_term_msg,
sizeof(sd_term_msg));
Jmsg(jcr, msg_type, 0,
_("%s %s %s (%s):\n"
" Build OS: %s\n"
Expand Down Expand Up @@ -527,7 +526,8 @@ void VerifyCleanup(JobControlRecord* jcr, int TermCode)
jcr->dir_impl->previous_jr.JobId, Name, sdt, edt,
edit_uint64_with_commas(jcr->dir_impl->ExpectedFiles, ec1),
edit_uint64_with_commas(jcr->JobFiles, ec2), jcr->JobErrors,
fd_term_msg, sd_term_msg, kBareosVersionStrings.JoblogMessage,
fd_term_msg.c_str(), sd_term_msg.c_str(),
kBareosVersionStrings.JoblogMessage,
JobTriggerToString(jcr->dir_impl->job_trigger).c_str(), TermMsg);
break;
default:
Expand Down Expand Up @@ -557,7 +557,7 @@ void VerifyCleanup(JobControlRecord* jcr, int TermCode)
jcr->dir_impl->res.client->resource_name_,
jcr->dir_impl->previous_jr.JobId, Name, sdt, edt,
edit_uint64_with_commas(jcr->JobFiles, ec1), jcr->JobErrors,
fd_term_msg, kBareosVersionStrings.JoblogMessage,
fd_term_msg.c_str(), kBareosVersionStrings.JoblogMessage,
JobTriggerToString(jcr->dir_impl->job_trigger).c_str(), TermMsg);
break;
}
Expand Down
116 changes: 53 additions & 63 deletions core/src/lib/util.cc
Expand Up @@ -359,98 +359,88 @@ bool ConvertTimeoutToTimespec(timespec& timeout, int timeout_in_seconds)
}

// Convert a JobStatus code into a human readable form
void JobstatusToAscii(int JobStatus, char* msg, int maxlen)
std::string JobstatusToAscii(int JobStatus)
{
const char* jobstat;
char buf[100];

switch (JobStatus) {
case JS_Created:
jobstat = _("Created");
break;
return "Created";

case JS_Running:
jobstat = _("Running");
break;
return "Running";

case JS_Blocked:
jobstat = _("Blocked");
break;
return "Blocked";

case JS_Terminated:
jobstat = _("OK");
break;
return "OK";

case JS_Incomplete:
jobstat = _("Error: incomplete job");
break;
return "Error: incomplete job";

case JS_FatalError:
jobstat = _("Fatal Error");
break;
return "Fatal Error";

case JS_ErrorTerminated:
jobstat = _("Error");
break;
return "Error";

case JS_Error:
jobstat = _("Non-fatal error");
break;
return "Non-fatal error";

case JS_Warnings:
jobstat = _("OK -- with warnings");
break;
return "OK -- with warnings";

case JS_Canceled:
jobstat = _("Canceled");
break;
return "Canceled";

case JS_Differences:
jobstat = _("Verify differences");
break;
return "Verify differences";

case JS_WaitFD:
jobstat = _("Waiting on FD");
break;
return "Waiting on FD";

case JS_WaitSD:
jobstat = _("Wait on SD");
break;
return "Wait on SD";

case JS_WaitMedia:
jobstat = _("Wait for new Volume");
break;
return "Wait for new Volume";

case JS_WaitMount:
jobstat = _("Waiting for mount");
break;
return "Waiting for mount";

case JS_WaitStoreRes:
jobstat = _("Waiting for Storage resource");
break;
return "Waiting for Storage resource";

case JS_WaitJobRes:
jobstat = _("Waiting for Job resource");
break;
return "Waiting for Job resource";

case JS_WaitClientRes:
jobstat = _("Waiting for Client resource");
break;
return "Waiting for Client resource";

case JS_WaitMaxJobs:
jobstat = _("Waiting on Max Jobs");
break;
return "Waiting on Max Jobs";

case JS_WaitStartTime:
jobstat = _("Waiting for Start Time");
break;
return "Waiting for Start Time";

case JS_WaitPriority:
jobstat = _("Waiting on Priority");
break;
return "Waiting on Priority";

case JS_DataCommitting:
jobstat = _("SD committing Data");
break;
return "SD committing Data";

case JS_DataDespooling:
jobstat = _("SD despooling Data");
break;
return "SD despooling Data";

case JS_AttrDespooling:
jobstat = _("SD despooling Attributes");
break;
return "SD despooling Attributes";

case JS_AttrInserting:
jobstat = _("Dir inserting Attributes");
break;
return "Dir inserting Attributes";
case 0:
return "";
default:
if (JobStatus == 0) {
buf[0] = 0;
} else {
Bsnprintf(buf, sizeof(buf), _("Unknown Job termination status=%d"),
JobStatus);
}
jobstat = buf;
break;
return "Unknown Job termination status=" + std::to_string(JobStatus);
}
bstrncpy(msg, jobstat, maxlen);
}

// Convert Job Termination Status into a string
Expand Down
3 changes: 1 addition & 2 deletions core/src/lib/util.h
Expand Up @@ -58,8 +58,7 @@ char* encode_time(utime_t time, char* buf);
bool ConvertTimeoutToTimespec(timespec& timeout, int timeout_in_seconds);
char* encode_mode(mode_t mode, char* buf);
int DoShellExpansion(char* name, int name_len);
void JobstatusToAscii(int JobStatus, char* msg, int maxlen);
void JobstatusToAsciiGui(int JobStatus, char* msg, int maxlen);
std::string JobstatusToAscii(int JobStatus);
int RunProgram(char* prog, int wait, POOLMEM*& results);
int RunProgramFullOutput(char* prog, int wait, POOLMEM*& results);
char* action_on_purge_to_string(int aop, PoolMem& ret);
Expand Down

0 comments on commit 679db6a

Please sign in to comment.