diff --git a/src/dird/dird_conf.c b/src/dird/dird_conf.c index 3a038728235..56b41682d9d 100644 --- a/src/dird/dird_conf.c +++ b/src/dird/dird_conf.c @@ -2393,42 +2393,67 @@ static void store_runscript(LEX *lc, RES_ITEM *item, int index, int pass) /* * callback function for edit_job_codes * See ../lib/util.c, function edit_job_codes, for more remaining codes + * + * %f = Filesetname + * %h = Client Address + * %p = Poolname + * %w = Write storage + * %x = Spooling (yes/no) + * %C = Cloning (yes/no) + * %D = Director name + * %V = Volume name(s) (Destination) */ extern "C" char *job_code_callback_director(JCR *jcr, const char *param) { static char yes[] = "yes"; static char no[] = "no"; switch (param[0]) { - case 'f': - if (jcr->res.fileset) { - return jcr->res.fileset->name(); - } - break; - case 'h': - if (jcr->res.client) { - return jcr->res.client->address; - } - break; - case 'p': - if (jcr->res.pool) { - return jcr->res.pool->name(); + case 'f': + if (jcr->res.fileset) { + return jcr->res.fileset->name(); + } + break; + case 'h': + if (jcr->res.client) { + return jcr->res.client->address; + } + break; + case 'p': + if (jcr->res.pool) { + return jcr->res.pool->name(); + } + break; + case 'w': + if (jcr->res.wstore) { + return jcr->res.wstore->name(); + } + break; + case 'x': + return jcr->spool_data ? yes : no; + case 'C': + return jcr->cloned ? yes : no; + case 'D': + return my_name; + case 'V': + if (jcr) { + /* + * If this is a migration/copy we need the volume name from the mig_jcr. + */ + if (jcr->mig_jcr) { + jcr = jcr->mig_jcr; } - break; - case 'w': - if (jcr->res.wstore) { - return jcr->res.wstore->name(); + + if (jcr->VolumeName) { + return jcr->VolumeName; + } else { + return _("*none*"); } - break; - case 'x': - return jcr->spool_data ? yes : no; - break; - case 'D': - return my_name; - break; - case 'C': - return jcr->cloned ? yes : no; - break; + } else { + return _("*none*"); + } + break; } + return NULL; } diff --git a/src/lib/util.c b/src/lib/util.c index 26b609aee2d..4e62a83860f 100644 --- a/src/lib/util.c +++ b/src/lib/util.c @@ -711,12 +711,11 @@ void decode_session_key(char *decode, char *session, char *key, int maxlen) * %s = Since time * %t = Job type (Backup, ...) * %r = Recipients - * %v = Volume name + * %v = Volume name(s) * * omsg = edited output message * imsg = input string containing edit codes (%x) * to = recepients list - * */ POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to, job_code_callback_t callback) { @@ -818,10 +817,10 @@ POOLMEM *edit_job_codes(JCR *jcr, char *omsg, char *imsg, const char *to, job_co break; case 'v': if (jcr) { - if (jcr->VolumeName && jcr->VolumeName[0]) { + if (jcr->VolumeName) { str = jcr->VolumeName; } else { - str = ""; + str = _("*none*"); } } else { str = _("*none*");