summaryrefslogtreecommitdiffstats
path: root/jenkins_jobs
diff options
context:
space:
mode:
authorAnil Belur <askb23@gmail.com>2018-01-25 07:46:40 +1000
committerAnil Belur <askb23@gmail.com>2018-01-25 17:18:12 +1000
commitad61af1670ceb1ab3522fc71e8842ac9301cf125 (patch)
tree832ba41442f8a16ad718b52825e00949c8719996 /jenkins_jobs
parent05e1d8eea150a4f7724da8113008acbd387a35cf (diff)
downloadpython-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.py38
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: