diff options
author | Anil Belur <askb23@gmail.com> | 2018-01-25 07:46:40 +1000 |
---|---|---|
committer | Anil Belur <askb23@gmail.com> | 2018-01-25 17:18:12 +1000 |
commit | ad61af1670ceb1ab3522fc71e8842ac9301cf125 (patch) | |
tree | 832ba41442f8a16ad718b52825e00949c8719996 /jenkins_jobs | |
parent | 05e1d8eea150a4f7724da8113008acbd387a35cf (diff) | |
download | python-jenkins-job-builder-ad61af1670ceb1ab3522fc71e8842ac9301cf125.tar.gz python-jenkins-job-builder-ad61af1670ceb1ab3522fc71e8842ac9301cf125.tar.xz python-jenkins-job-builder-ad61af1670ceb1ab3522fc71e8842ac9301cf125.zip |
Add views and jobs only options for update
JJB 2.0 update does not allow updating only views
or jobs which would be useful, which is implemented with
delete and delete-all. This patch add's thoses flags
for the update option.
Change-Id: I3712c8552ea83a4c29c05461894c4464aa41230f
Signed-off-by: Anil Belur <askb23@gmail.com>
Diffstat (limited to 'jenkins_jobs')
-rw-r--r-- | jenkins_jobs/cli/subcommand/update.py | 38 |
1 files changed, 31 insertions, 7 deletions
diff --git a/jenkins_jobs/cli/subcommand/update.py b/jenkins_jobs/cli/subcommand/update.py index a7aefa54..7f2ad7c6 100644 --- a/jenkins_jobs/cli/subcommand/update.py +++ b/jenkins_jobs/cli/subcommand/update.py @@ -72,6 +72,18 @@ class UpdateSubCommand(base.BaseSubCommand): dest='n_workers', help="number of workers to use, 0 for autodetection and 1 " "for just one worker.") + update.add_argument( + '-j', '--jobs-only', + action='store_true', dest='add_jobs', + default=False, + help='update only jobs' + ) + update.add_argument( + '-v', '--views-only', + action='store_true', dest='add_views', + default=False, + help='update only views' + ) def _generate_xmljobs(self, options, jjb_config=None): builder = JenkinsManager(jjb_config) @@ -104,6 +116,10 @@ class UpdateSubCommand(base.BaseSubCommand): def execute(self, options, jjb_config): + if options.add_jobs and options.add_views: + raise JenkinsJobsException( + '"--views-only" and "--jobs-only" cannot be used together.') + if options.n_workers < 0: raise JenkinsJobsException( 'Number of workers must be equal or greater than 0') @@ -111,13 +127,21 @@ class UpdateSubCommand(base.BaseSubCommand): builder, xml_jobs, xml_views = self._generate_xmljobs( options, jjb_config) - jobs, num_updated_jobs = builder.update_jobs( - xml_jobs, n_workers=options.n_workers) - logger.info("Number of jobs updated: %d", num_updated_jobs) - - views, num_updated_views = builder.update_views( - xml_views, n_workers=options.n_workers) - logger.info("Number of views updated: %d", num_updated_views) + if options.add_jobs: + jobs, num_updated_jobs = builder.update_jobs( + xml_jobs, n_workers=options.n_workers) + logger.info("Number of jobs updated: %d", num_updated_jobs) + elif options.add_views: + views, num_updated_views = builder.update_views( + xml_views, n_workers=options.n_workers) + logger.info("Number of views updated: %d", num_updated_views) + else: + jobs, num_updated_jobs = builder.update_jobs( + xml_jobs, n_workers=options.n_workers) + logger.info("Number of jobs updated: %d", num_updated_jobs) + views, num_updated_views = builder.update_views( + xml_views, n_workers=options.n_workers) + logger.info("Number of views updated: %d", num_updated_views) keep_jobs = [job.name for job in xml_jobs] if options.delete_old: |