From 8063e7570858d6238d5b9991dacc97d681a91b38 Mon Sep 17 00:00:00 2001 From: Marco van Wieringen Date: Fri, 19 Aug 2016 09:31:07 +0200 Subject: [PATCH] dird: Resource edits get lost depending on order When a user gives an explicit pool to use we should not apply any pool overrides anymore. Fixes #689: Interactive job modification not working as expected, resource edits get lost depending on mod order --- src/dird/ua.h | 1 + src/dird/ua_run.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/dird/ua.h b/src/dird/ua.h index efe2e53512e..9e6a3fcff58 100644 --- a/src/dird/ua.h +++ b/src/dird/ua.h @@ -172,6 +172,7 @@ class RUN_CTX { int Priority; int files; bool level_override; + bool pool_override; bool spool_data; bool accurate; bool ignoreduplicatecheck; diff --git a/src/dird/ua_run.c b/src/dird/ua_run.c index 7c0badf7832..45f560f7511 100644 --- a/src/dird/ua_run.c +++ b/src/dird/ua_run.c @@ -600,7 +600,7 @@ int modify_job_parameters(UAContext *ua, JCR *jcr, RUN_CTX &rc) select_job_level(ua, jcr); switch (jcr->getJobType()) { case JT_BACKUP: - if (!jcr->is_JobLevel(L_VIRTUAL_FULL)) { + if (!rc.pool_override && !jcr->is_JobLevel(L_VIRTUAL_FULL)) { apply_pool_overrides(jcr, true); rc.pool = jcr->res.pool; rc.level_override = true; @@ -691,6 +691,7 @@ int modify_job_parameters(UAContext *ua, JCR *jcr, RUN_CTX &rc) if (rc.pool) { jcr->res.pool = rc.pool; rc.level_override = false; + rc.pool_override = true; Dmsg1(100, "Set new pool=%s\n", jcr->res.pool->name()); goto try_again; }