Do not delete unmanaged jobs when --views-only option specified
Change-Id: I54e4d62db56824bfa020bbc1a711b95a5b15fcc5
This commit is contained in:
parent
2aa0ac5462
commit
1f320ad9f9
@ -7,6 +7,7 @@ Release 6.2.0
|
|||||||
Bugs fixed
|
Bugs fixed
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
* Do not delete obsolete jobs when `--views-only` option specified.
|
||||||
* Add readthedocs configuration file. RTD now requires it. Fixes documentation build on RTD.
|
* Add readthedocs configuration file. RTD now requires it. Fixes documentation build on RTD.
|
||||||
|
|
||||||
Release 6.1.0
|
Release 6.1.0
|
||||||
|
@ -144,7 +144,8 @@ class UpdateSubCommand(base.JobsSubCommand):
|
|||||||
)
|
)
|
||||||
logger.info("Number of views updated: %d", num_updated_views)
|
logger.info("Number of views updated: %d", num_updated_views)
|
||||||
|
|
||||||
keep_jobs = [job.name for job in xml_jobs]
|
|
||||||
if options.delete_old:
|
if options.delete_old:
|
||||||
n = builder.delete_old_managed(keep=keep_jobs)
|
if options.update in {"jobs", "all"}:
|
||||||
logger.info("Number of jobs deleted: %d", n)
|
keep_jobs = [job.name for job in xml_jobs]
|
||||||
|
n = builder.delete_old_managed(keep=keep_jobs)
|
||||||
|
logger.info("Number of jobs deleted: %d", n)
|
||||||
|
@ -138,6 +138,58 @@ def test_update_jobs_and_delete_old(
|
|||||||
assert jenkins_delete_job.call_count == len(calls)
|
assert jenkins_delete_job.call_count == len(calls)
|
||||||
|
|
||||||
|
|
||||||
|
def test_update_jobs_and_delete_old_views_only(
|
||||||
|
mocker, fixtures_dir, default_config_file, execute_jenkins_jobs
|
||||||
|
):
|
||||||
|
"""Test update behaviour with --delete-old option
|
||||||
|
with --views-only option specified.
|
||||||
|
No jobs should be deleted.
|
||||||
|
"""
|
||||||
|
mocker.patch("jenkins_jobs.builder.jenkins.Jenkins.job_exists")
|
||||||
|
jenkins_get_all_jobs = mocker.patch(
|
||||||
|
"jenkins_jobs.builder.jenkins.Jenkins.get_all_jobs"
|
||||||
|
)
|
||||||
|
jenkins_reconfig_job = mocker.patch(
|
||||||
|
"jenkins_jobs.builder.jenkins.Jenkins.reconfig_job"
|
||||||
|
)
|
||||||
|
jenkins_delete_job = mocker.patch("jenkins_jobs.builder.jenkins.Jenkins.delete_job")
|
||||||
|
|
||||||
|
mocker.patch("jenkins_jobs.builder.jenkins.Jenkins.view_exists")
|
||||||
|
mocker.patch("jenkins_jobs.builder.jenkins.Jenkins.get_views")
|
||||||
|
jenkins_reconfig_view = mocker.patch(
|
||||||
|
"jenkins_jobs.builder.jenkins.Jenkins.reconfig_view"
|
||||||
|
)
|
||||||
|
|
||||||
|
yaml_jobs = ["job-1", "job-2", "job-3"]
|
||||||
|
extra_managed_jobs = ["old-job-1", "old-job-2"]
|
||||||
|
unmanaged_jobs = ["unmanaged"]
|
||||||
|
|
||||||
|
jenkins_get_all_jobs.return_value = [
|
||||||
|
{"fullname": name} for name in yaml_jobs + extra_managed_jobs + unmanaged_jobs
|
||||||
|
]
|
||||||
|
mocker.patch(
|
||||||
|
"jenkins_jobs.builder.JenkinsManager.is_managed",
|
||||||
|
side_effect=(lambda name: name not in unmanaged_jobs),
|
||||||
|
)
|
||||||
|
|
||||||
|
path = fixtures_dir / "update-both.yaml"
|
||||||
|
args = [
|
||||||
|
"--conf",
|
||||||
|
default_config_file,
|
||||||
|
"update",
|
||||||
|
"--delete-old",
|
||||||
|
"--views-only",
|
||||||
|
str(path),
|
||||||
|
]
|
||||||
|
|
||||||
|
execute_jenkins_jobs(args)
|
||||||
|
|
||||||
|
assert jenkins_reconfig_job.call_count == 0
|
||||||
|
assert jenkins_delete_job.call_count == 0
|
||||||
|
|
||||||
|
assert jenkins_reconfig_view.call_count == 3
|
||||||
|
|
||||||
|
|
||||||
def test_update_views(mocker, fixtures_dir, default_config_file, execute_jenkins_jobs):
|
def test_update_views(mocker, fixtures_dir, default_config_file, execute_jenkins_jobs):
|
||||||
"""
|
"""
|
||||||
Test update_job is called for project with views
|
Test update_job is called for project with views
|
||||||
|
Loading…
x
Reference in New Issue
Block a user