From b669001eaaef17a33a7cb760749bbb82e1641c3c Mon Sep 17 00:00:00 2001 From: Vsevolod Fedorov Date: Wed, 22 Nov 2023 13:19:55 +0300 Subject: [PATCH] Merge global defaults for jobs also Currently, global defaults are merged to custom defaults for job templates, but not for jobs. Unify this behaviour. Change-Id: I26fb2678df7f4225571bf7c3cd4be7041ce99217 --- jenkins_jobs/root_base.py | 9 +++------ tests/yamlparser/job_fixtures/concat_defaults003_job.xml | 6 ++++-- .../yamlparser/job_fixtures/concat_defaults003_job.yaml | 3 ++- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/jenkins_jobs/root_base.py b/jenkins_jobs/root_base.py index c5069232b..b7a897d1b 100644 --- a/jenkins_jobs/root_base.py +++ b/jenkins_jobs/root_base.py @@ -80,7 +80,7 @@ class RootBase: expanded_contents["description"] = amended_description return expanded_contents - def _pick_defaults(self, name, merge_global=True): + def _pick_defaults(self, name): try: defaults = self._defaults[name] except KeyError: @@ -93,16 +93,13 @@ class RootBase: ) if name == "global": return defaults - if merge_global: - return defaults.merged_with_global(self._pick_defaults("global")) - else: - return defaults + return defaults.merged_with_global(self._pick_defaults("global")) class NonTemplateRootMixin: def top_level_generate_items(self): try: - defaults = self._pick_defaults(self.defaults_name, merge_global=False) + defaults = self._pick_defaults(self.defaults_name) item_params = LocDict.merge( defaults.params, self.params, diff --git a/tests/yamlparser/job_fixtures/concat_defaults003_job.xml b/tests/yamlparser/job_fixtures/concat_defaults003_job.xml index a1b2b7970..c7a9e79da 100644 --- a/tests/yamlparser/job_fixtures/concat_defaults003_job.xml +++ b/tests/yamlparser/job_fixtures/concat_defaults003_job.xml @@ -5,7 +5,7 @@ false false false - false + true true @@ -15,5 +15,7 @@ - + + + diff --git a/tests/yamlparser/job_fixtures/concat_defaults003_job.yaml b/tests/yamlparser/job_fixtures/concat_defaults003_job.yaml index 67688f977..7c9361225 100644 --- a/tests/yamlparser/job_fixtures/concat_defaults003_job.yaml +++ b/tests/yamlparser/job_fixtures/concat_defaults003_job.yaml @@ -1,4 +1,5 @@ -# Global defaults are not used, not merged to custom ones if used from a job. +# Global defaults are merged to custom ones if used from jobs, +# not just from job templates. - defaults: name: global