From: Kern Sibbald Date: Sun, 22 Jul 2007 10:14:48 +0000 (+0000) Subject: kes Change abort_on_error and AbortJobOnError to fail_on_error X-Git-Tag: Release-7.0.0~5966 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=b949eb324782d294fa8d906bb07307fd5311f82e;p=bacula%2Fbacula kes Change abort_on_error and AbortJobOnError to fail_on_error and FailJobOnError in RunScripts. kes Minor tweaks of code formating in RunScripts, principally to avoid depassing 80 columns. git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@5219 91ce42f0-d328-0410-95d8-f526ca767f89 --- diff --git a/bacula/src/dird/dird_conf.c b/bacula/src/dird/dird_conf.c index 74b55992d0..6f0f63d99c 100644 --- a/bacula/src/dird/dird_conf.c +++ b/bacula/src/dird/dird_conf.c @@ -616,10 +616,10 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm dump_resource(-R_SCHEDULE, (RES *)res->res_job.schedule, sendit, sock); } if (res->res_job.RestoreWhere && !res->res_job.RegexWhere) { - sendit(sock, _(" --> Where=%s\n"), NPRT(res->res_job.RestoreWhere)); + sendit(sock, _(" --> Where=%s\n"), NPRT(res->res_job.RestoreWhere)); } if (res->res_job.RegexWhere) { - sendit(sock, _(" --> RegexWhere=%s\n"), NPRT(res->res_job.RegexWhere)); + sendit(sock, _(" --> RegexWhere=%s\n"), NPRT(res->res_job.RegexWhere)); } if (res->res_job.RestoreBootstrap) { sendit(sock, _(" --> Bootstrap=%s\n"), NPRT(res->res_job.RestoreBootstrap)); @@ -642,7 +642,7 @@ void dump_resource(int type, RES *reshdr, void sendit(void *sock, const char *fm sendit(sock, _(" --> Target=%s\n"), NPRT(script->target)); sendit(sock, _(" --> RunOnSuccess=%u\n"), script->on_success); sendit(sock, _(" --> RunOnFailure=%u\n"), script->on_failure); - sendit(sock, _(" --> AbortJobOnError=%u\n"), script->abort_on_error); + sendit(sock, _(" --> FailJobOnError=%u\n"), script->fail_on_error); sendit(sock, _(" --> RunWhen=%u\n"), script->when); } } @@ -1322,34 +1322,34 @@ void save_resource(int type, RES_ITEM *items, int pass) res->res_job.run_cmds = res_all.res_job.run_cmds; res->res_job.RunScripts = res_all.res_job.RunScripts; - /* TODO: JobDefs where/regexwhere doesn't work well (but this - * is not very useful) - * We have to set_bit(index, res_all.hdr.item_present); - * or something like that - */ + /* TODO: JobDefs where/regexwhere doesn't work well (but this + * is not very useful) + * We have to set_bit(index, res_all.hdr.item_present); + * or something like that + */ /* we take RegexWhere before all other options */ - if (!res->res_job.RegexWhere - && - (res->res_job.strip_prefix || - res->res_job.add_suffix || - res->res_job.add_prefix)) - { - int len = bregexp_get_build_where_size(res->res_job.strip_prefix, - res->res_job.add_prefix, - res->res_job.add_suffix); - res->res_job.RegexWhere = (char *) bmalloc (len * sizeof(char)); - bregexp_build_where(res->res_job.RegexWhere, len, - res->res_job.strip_prefix, - res->res_job.add_prefix, - res->res_job.add_suffix); - /* TODO: test bregexp */ - } - - if (res->res_job.RegexWhere && res->res_job.RestoreWhere) { - free(res->res_job.RestoreWhere); - res->res_job.RestoreWhere = NULL; - } + if (!res->res_job.RegexWhere + && + (res->res_job.strip_prefix || + res->res_job.add_suffix || + res->res_job.add_prefix)) + { + int len = bregexp_get_build_where_size(res->res_job.strip_prefix, + res->res_job.add_prefix, + res->res_job.add_suffix); + res->res_job.RegexWhere = (char *) bmalloc (len * sizeof(char)); + bregexp_build_where(res->res_job.RegexWhere, len, + res->res_job.strip_prefix, + res->res_job.add_prefix, + res->res_job.add_suffix); + /* TODO: test bregexp */ + } + + if (res->res_job.RegexWhere && res->res_job.RestoreWhere) { + free(res->res_job.RestoreWhere); + res->res_job.RestoreWhere = NULL; + } break; case R_COUNTER: @@ -1717,7 +1717,7 @@ static void store_short_runscript(LEX *lc, RES_ITEM *item, int index, int pass) if (strcmp(item->name, "runbeforejob") == 0) { script->when = SCRIPT_Before; - script->abort_on_error = true; + script->fail_on_error = true; script->set_target(""); } else if (strcmp(item->name, "runafterjob") == 0) { @@ -1737,7 +1737,7 @@ static void store_short_runscript(LEX *lc, RES_ITEM *item, int index, int pass) script->old_proto = true; script->when = SCRIPT_Before; script->set_target("%c"); - script->abort_on_error = true; + script->fail_on_error = true; } else if (strcmp(item->name, "runafterfailedjob") == 0) { script->when = SCRIPT_After; @@ -1782,7 +1782,8 @@ static RES_ITEM runscript_items[] = { {"target", store_runscript_target,{(char **)&res_runscript}, 0, 0, 0}, {"runsonsuccess", store_runscript_bool, {(char **)&res_runscript.on_success},0, 0, 0}, {"runsonfailure", store_runscript_bool, {(char **)&res_runscript.on_failure},0, 0, 0}, - {"abortjobonerror",store_runscript_bool, {(char **)&res_runscript.abort_on_error},0, 0, 0}, + {"failjobonerror",store_runscript_bool, {(char **)&res_runscript.fail_on_error},0, 0, 0}, + {"abortjobonerror",store_runscript_bool, {(char **)&res_runscript.fail_on_error},0, 0, 0}, {"runswhen", store_runscript_when, {(char **)&res_runscript.when}, 0, 0, 0}, {"runsonclient", store_runscript_target,{(char **)&res_runscript}, 0, 0, 0}, /* TODO */ {NULL, NULL, {0}, 0, 0, 0} @@ -1802,7 +1803,7 @@ static void store_runscript(LEX *lc, RES_ITEM *item, int index, int pass) Dmsg1(200, "store_runscript: begin store_runscript pass=%i\n", pass); - res_runscript.reset_default(); /* setting on_success, on_failure, abort_on_error */ + res_runscript.reset_default(); /* setting on_success, on_failure, fail_on_error */ token = lex_get_token(lc, T_SKIP_EOL); diff --git a/bacula/src/dird/fd_cmds.c b/bacula/src/dird/fd_cmds.c index c9ef6bd125..755810c1b0 100644 --- a/bacula/src/dird/fd_cmds.c +++ b/bacula/src/dird/fd_cmds.c @@ -549,7 +549,7 @@ int send_runscripts_commands(JCR *jcr) } else { bnet_fsend(fd, runscript, cmd->on_success, cmd->on_failure, - cmd->abort_on_error, + cmd->fail_on_error, cmd->when, msg); diff --git a/bacula/src/filed/job.c b/bacula/src/filed/job.c index fed4e2f5f0..090a10ea83 100644 --- a/bacula/src/filed/job.c +++ b/bacula/src/filed/job.c @@ -530,7 +530,7 @@ static int runscript_cmd(JCR *jcr) { BSOCK *dir = jcr->dir_bsock; POOLMEM *msg = get_memory(dir->msglen+1); - int on_success, on_failure, abort_on_error; + int on_success, on_failure, fail_on_error; RUNSCRIPT *cmd = new_runscript() ; @@ -538,7 +538,7 @@ static int runscript_cmd(JCR *jcr) /* Note, we cannot sscanf into bools */ if (sscanf(dir->msg, runscript, &on_success, &on_failure, - &abort_on_error, + &fail_on_error, &cmd->when, msg) != 5) { pm_strcpy(jcr->errmsg, dir->msg); @@ -550,7 +550,7 @@ static int runscript_cmd(JCR *jcr) } cmd->on_success = on_success; cmd->on_failure = on_failure; - cmd->abort_on_error = abort_on_error; + cmd->fail_on_error = fail_on_error; unbash_spaces(msg); cmd->set_command(msg); diff --git a/bacula/src/lib/runscript.c b/bacula/src/lib/runscript.c index 341e849652..4ce5867550 100644 --- a/bacula/src/lib/runscript.c +++ b/bacula/src/lib/runscript.c @@ -63,7 +63,7 @@ void RUNSCRIPT::reset_default(bool free_strings) command = NULL; on_success = true; on_failure = false; - abort_on_error = true; + fail_on_error = true; when = SCRIPT_Never; old_proto = false; /* TODO: drop this with bacula 1.42 */ } @@ -103,7 +103,7 @@ int run_scripts(JCR *jcr, alist *runscripts, const char *label) RUNSCRIPT *script; bool runit; - bool status; + bool ok; int when; @@ -120,33 +120,29 @@ int run_scripts(JCR *jcr, alist *runscripts, const char *label) foreach_alist(script, runscripts) { Dmsg2(200, "runscript: try to run %s:%s\n", NPRT(script->target), NPRT(script->command)); - runit=false; + runit = false; if ((script->when & SCRIPT_Before) && (when & SCRIPT_Before)) { - if ( (script->on_success && (jcr->JobStatus == JS_Running || jcr->JobStatus == JS_Created)) - || - (script->on_failure && job_canceled(jcr)) + if ((script->on_success + && (jcr->JobStatus == JS_Running || jcr->JobStatus == JS_Created)) + || (script->on_failure && job_canceled(jcr)) ) { - Dmsg4(200, "runscript: Run it because SCRIPT_Before (%s,%i,%i,%c)\n", script->command, - script->on_success, - script->on_failure, - jcr->JobStatus ); - + Dmsg4(200, "runscript: Run it because SCRIPT_Before (%s,%i,%i,%c)\n", + script->command, script->on_success, script->on_failure, + jcr->JobStatus ); runit = true; } } if ((script->when & SCRIPT_After) && (when & SCRIPT_After)) { - if ( (script->on_success && (jcr->JobStatus == JS_Terminated)) - || - (script->on_failure && job_canceled(jcr)) + if ((script->on_success && (jcr->JobStatus == JS_Terminated)) + || (script->on_failure && job_canceled(jcr)) ) { - Dmsg4(200, "runscript: Run it because SCRIPT_After (%s,%i,%i,%c)\n", script->command, - script->on_success, - script->on_failure, - jcr->JobStatus ); + Dmsg4(200, "runscript: Run it because SCRIPT_After (%s,%i,%i,%c)\n", + script->command, script->on_success, script->on_failure, + jcr->JobStatus ); runit = true; } } @@ -157,14 +153,10 @@ int run_scripts(JCR *jcr, alist *runscripts, const char *label) /* we execute it */ if (runit) { - status = script->run(jcr, label); + ok = script->run(jcr, label); /* cancel running job properly */ - if ( script->abort_on_error - && (status == false) - && (jcr->JobStatus == JS_Created || jcr->JobStatus == JS_Running) - ) - { + if (script->fail_on_error && !ok) { set_jcr_job_status(jcr, JS_ErrorTerminated); } } @@ -268,6 +260,6 @@ void RUNSCRIPT::debug() Dmsg1(200, _(" --> Target=%s\n"), NPRT(target)); Dmsg1(200, _(" --> RunOnSuccess=%u\n"), on_success); Dmsg1(200, _(" --> RunOnFailure=%u\n"), on_failure); - Dmsg1(200, _(" --> AbortJobOnError=%u\n"), abort_on_error); + Dmsg1(200, _(" --> FailJobOnError=%u\n"), fail_on_error); Dmsg1(200, _(" --> RunWhen=%u\n"), when); } diff --git a/bacula/src/lib/runscript.h b/bacula/src/lib/runscript.h index 6b8d8523e0..ff66d336ba 100644 --- a/bacula/src/lib/runscript.h +++ b/bacula/src/lib/runscript.h @@ -68,9 +68,9 @@ public: POOLMEM *target; /* host target */ int when; /* SCRIPT_Before|Script_After BEFORE/AFTER JOB*/ char level; /* Base|Full|Incr...|All (NYI) */ - bool on_success; /* executre command on job success (After) */ - bool on_failure; /* executre command on job failure (After) */ - bool abort_on_error; /* abort job on error (Before) */ + bool on_success; /* execute command on job success (After) */ + bool on_failure; /* execute command on job failure (After) */ + bool fail_on_error; /* abort job on error (Before) */ /* TODO : drop this with bacula 1.42 */ bool old_proto; /* used by old 1.3X protocol */ diff --git a/bacula/src/version.h b/bacula/src/version.h index be204d93f9..b49f9ae369 100644 --- a/bacula/src/version.h +++ b/bacula/src/version.h @@ -4,8 +4,8 @@ #undef VERSION #define VERSION "2.1.29" -#define BDATE "21 July 2007" -#define LSMDATE "21Jul07" +#define BDATE "22 July 2007" +#define LSMDATE "22Jul07" #define PROG_COPYRIGHT "Copyright (C) %d-2007 Free Software Foundation Europe e.V.\n" #define BYEAR "2007" /* year for copyright messages in progs */ diff --git a/bacula/technotes-2.1 b/bacula/technotes-2.1 index 28828f7716..f2405ff22b 100644 --- a/bacula/technotes-2.1 +++ b/bacula/technotes-2.1 @@ -1,6 +1,11 @@ Technical notes on version 2.1 General: +22Jul07 +kes Change abort_on_error and AbortJobOnError to fail_on_error + and FailJobOnError in RunScripts. +kes Minor tweaks of code formating in RunScripts, principally to + avoid depassing 80 columns. 21Jul07 kes Eliminate one #ifdef Win32 in bsmtp kes Implement grow tool to grow a file for testing very large databases.