X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fdird%2Fadmin.c;h=3cce05617aaeb6dd4dc012f607f5414329bf3810;hb=44566f589dd96e4414e38ec4bf7d76b22fbcd9aa;hp=0b4f0144f1bc067c4e65147ea37f07a07a0262fb;hpb=4ae3c1943f1b187a84c78b38586d11c1bdc41e16;p=bacula%2Fbacula diff --git a/bacula/src/dird/admin.c b/bacula/src/dird/admin.c index 0b4f0144f1..3cce05617a 100644 --- a/bacula/src/dird/admin.c +++ b/bacula/src/dird/admin.c @@ -11,22 +11,17 @@ */ /* - Copyright (C) 2000-2003 Kern Sibbald and John Walker + Copyright (C) 2003-2006 Kern Sibbald This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of - the License, or (at your option) any later version. + modify it under the terms of the GNU General Public License + version 2 as amended with additional clauses defined in the + file LICENSE in the main source directory. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public - License along with this program; if not, write to the Free - Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - MA 02111-1307, USA. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + the file LICENSE for additional details. */ @@ -35,98 +30,89 @@ #include "ua.h" -/* Forward referenced functions */ -static void admin_cleanup(JCR *jcr, int TermCode); - -/* External functions */ +bool do_admin_init(JCR *jcr) +{ + free_rstorage(jcr); + return true; +} -/* - * Returns: 0 on failure - * 1 on success +/* + * Returns: false on failure + * true on success */ -int do_admin(JCR *jcr) +bool do_admin(JCR *jcr) { jcr->jr.JobId = jcr->JobId; - jcr->jr.StartTime = jcr->start_time; - if (!db_update_job_start_record(jcr, jcr->db, &jcr->jr)) { - Jmsg(jcr, M_ERROR, 0, "%s", db_strerror(jcr->db)); - goto bail_out; - } jcr->fname = (char *)get_pool_memory(PM_FNAME); /* Print Job Start message */ Jmsg(jcr, M_INFO, 0, _("Start Admin JobId %d, Job=%s\n"), - jcr->JobId, jcr->Job); + jcr->JobId, jcr->Job); set_jcr_job_status(jcr, JS_Running); admin_cleanup(jcr, JS_Terminated); - return 0; - -bail_out: - admin_cleanup(jcr, JS_ErrorTerminated); - return 0; + return true; } + /* * Release resources allocated during backup. */ -static void admin_cleanup(JCR *jcr, int TermCode) +void admin_cleanup(JCR *jcr, int TermCode) { char sdt[50], edt[50]; char term_code[100]; - char *term_msg; + const char *term_msg; int msg_type; MEDIA_DBR mr; - utime_t RunTime; Dmsg0(100, "Enter backup_cleanup()\n"); memset(&mr, 0, sizeof(mr)); set_jcr_job_status(jcr, TermCode); - update_job_end_record(jcr); /* update database */ - + update_job_end_record(jcr); /* update database */ + if (!db_get_job_record(jcr, jcr->db, &jcr->jr)) { - Jmsg(jcr, M_WARNING, 0, _("Error getting job record for stats: %s"), - db_strerror(jcr->db)); + Jmsg(jcr, M_WARNING, 0, _("Error getting job record for stats: %s"), + db_strerror(jcr->db)); set_jcr_job_status(jcr, JS_ErrorTerminated); } - msg_type = M_INFO; /* by default INFO message */ + msg_type = M_INFO; /* by default INFO message */ switch (jcr->JobStatus) { - case JS_Terminated: - term_msg = _("Admin OK"); - break; - case JS_FatalError: - case JS_ErrorTerminated: - term_msg = _("*** Admin Error ***"); - msg_type = M_ERROR; /* Generate error message */ - break; - case JS_Canceled: - term_msg = _("Admin Canceled"); - break; - default: - term_msg = term_code; - sprintf(term_code, _("Inappropriate term code: %c\n"), jcr->JobStatus); - break; + case JS_Terminated: + term_msg = _("Admin OK"); + break; + case JS_FatalError: + case JS_ErrorTerminated: + term_msg = _("*** Admin Error ***"); + msg_type = M_ERROR; /* Generate error message */ + break; + case JS_Canceled: + term_msg = _("Admin Canceled"); + break; + default: + term_msg = term_code; + sprintf(term_code, _("Inappropriate term code: %c\n"), jcr->JobStatus); + break; } bstrftime(sdt, sizeof(sdt), jcr->jr.StartTime); bstrftime(edt, sizeof(edt), jcr->jr.EndTime); - RunTime = jcr->jr.EndTime - jcr->jr.StartTime; - - Jmsg(jcr, msg_type, 0, _("Bacula " VERSION " (" LSMDATE "): %s\n\ -JobId: %d\n\ -Job: %s\n\ -Start time: %s\n\ -End time: %s\n\ -Termination: %s\n\n"), - edt, - jcr->jr.JobId, - jcr->jr.Job, - sdt, - edt, - term_msg); + + Jmsg(jcr, msg_type, 0, _("Bacula " VERSION " (" LSMDATE "): %s\n" +" JobId: %d\n" +" Job: %s\n" +" Start time: %s\n" +" End time: %s\n" +" Termination: %s\n\n"), + edt, + jcr->jr.JobId, + jcr->jr.Job, + sdt, + edt, + term_msg); Dmsg0(100, "Leave admin_cleanup()\n"); }