summaryrefslogtreecommitdiffstats
path: root/jenkins_jobs/cli/subcommand/update.py
diff options
context:
space:
mode:
Diffstat (limited to 'jenkins_jobs/cli/subcommand/update.py')
-rw-r--r--jenkins_jobs/cli/subcommand/update.py119
1 files changed, 65 insertions, 54 deletions
diff --git a/jenkins_jobs/cli/subcommand/update.py b/jenkins_jobs/cli/subcommand/update.py
index 5884648e..374089dc 100644
--- a/jenkins_jobs/cli/subcommand/update.py
+++ b/jenkins_jobs/cli/subcommand/update.py
@@ -30,22 +30,19 @@ logger = logging.getLogger(__name__)
class UpdateSubCommand(base.BaseSubCommand):
-
def parse_arg_path(self, parser):
parser.add_argument(
- 'path',
- nargs='?',
+ "path",
+ nargs="?",
default=sys.stdin,
- help="colon-separated list of paths to YAML files "
- "or directories")
+ help="colon-separated list of paths to YAML files " "or directories",
+ )
def parse_arg_names(self, parser):
- parser.add_argument(
- 'names',
- help='name(s) of job(s)', nargs='*')
+ parser.add_argument("names", help="name(s) of job(s)", nargs="*")
def parse_args(self, subparser):
- update = subparser.add_parser('update')
+ update = subparser.add_parser("update")
self.parse_option_recursive_exclude(update)
@@ -53,51 +50,59 @@ class UpdateSubCommand(base.BaseSubCommand):
self.parse_arg_names(update)
update.add_argument(
- '--delete-old',
- action='store_true',
- dest='delete_old',
+ "--delete-old",
+ action="store_true",
+ dest="delete_old",
default=False,
- help='delete obsolete jobs')
+ help="delete obsolete jobs",
+ )
update.add_argument(
- '-p', '--plugin-info',
- dest='plugins_info_path',
+ "-p",
+ "--plugin-info",
+ dest="plugins_info_path",
default=None,
- help='path to plugin info YAML file. Can be used to provide '
- 'previously retrieved plugins info when connecting credentials '
- 'don\'t have permissions to query.')
+ help="path to plugin info YAML file. Can be used to provide "
+ "previously retrieved plugins info when connecting credentials "
+ "don't have permissions to query.",
+ )
update.add_argument(
- '--workers',
+ "--workers",
type=int,
default=1,
- dest='n_workers',
+ dest="n_workers",
help="number of workers to use, 0 for autodetection and 1 "
- "for just one worker.")
+ "for just one worker.",
+ )
update.add_argument(
- '--existing-only',
- action='store_true',
+ "--existing-only",
+ action="store_true",
default=False,
- dest='existing_only',
- help='update existing jobs only')
+ dest="existing_only",
+ help="update existing jobs only",
+ )
update_type = update.add_mutually_exclusive_group()
update_type.add_argument(
- '-j', '--jobs-only',
- action='store_const',
- dest='update',
- const='jobs',
- help='update only jobs')
+ "-j",
+ "--jobs-only",
+ action="store_const",
+ dest="update",
+ const="jobs",
+ help="update only jobs",
+ )
update_type.add_argument(
- '-v', '--views-only',
- action='store_const',
- dest='update',
- const='views',
- help='update only views')
+ "-v",
+ "--views-only",
+ action="store_const",
+ dest="update",
+ const="views",
+ help="update only views",
+ )
def _generate_xmljobs(self, options, jjb_config=None):
builder = JenkinsManager(jjb_config)
- logger.info("Updating jobs in {0} ({1})".format(
- options.path, options.names))
+ logger.info("Updating jobs in {0} ({1})".format(options.path, options.names))
orig = time.time()
# Generate XML
@@ -109,45 +114,51 @@ class UpdateSubCommand(base.BaseSubCommand):
parser.load_files(options.path)
registry.set_parser_data(parser.data)
- job_data_list, view_data_list = parser.expandYaml(
- registry, options.names)
+ job_data_list, view_data_list = parser.expandYaml(registry, options.names)
xml_jobs = xml_job_generator.generateXML(job_data_list)
xml_views = xml_view_generator.generateXML(view_data_list)
jobs = parser.jobs
step = time.time()
- logging.debug('%d XML files generated in %ss',
- len(jobs), str(step - orig))
+ logging.debug("%d XML files generated in %ss", len(jobs), str(step - orig))
return builder, xml_jobs, xml_views
def execute(self, options, jjb_config):
if options.n_workers < 0:
raise JenkinsJobsException(
- 'Number of workers must be equal or greater than 0')
+ "Number of workers must be equal or greater than 0"
+ )
- builder, xml_jobs, xml_views = self._generate_xmljobs(
- options, jjb_config)
+ builder, xml_jobs, xml_views = self._generate_xmljobs(options, jjb_config)
- if options.update == 'jobs':
+ if options.update == "jobs":
jobs, num_updated_jobs = builder.update_jobs(
- xml_jobs, n_workers=options.n_workers,
- existing_only=options.existing_only)
+ xml_jobs,
+ n_workers=options.n_workers,
+ existing_only=options.existing_only,
+ )
logger.info("Number of jobs updated: %d", num_updated_jobs)
- elif options.update == 'views':
+ elif options.update == "views":
views, num_updated_views = builder.update_views(
- xml_views, n_workers=options.n_workers,
- existing_only=options.existing_only)
+ xml_views,
+ n_workers=options.n_workers,
+ existing_only=options.existing_only,
+ )
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,
- existing_only=options.existing_only)
+ xml_jobs,
+ n_workers=options.n_workers,
+ existing_only=options.existing_only,
+ )
logger.info("Number of jobs updated: %d", num_updated_jobs)
views, num_updated_views = builder.update_views(
- xml_views, n_workers=options.n_workers,
- existing_only=options.existing_only)
+ xml_views,
+ n_workers=options.n_workers,
+ existing_only=options.existing_only,
+ )
logger.info("Number of views updated: %d", num_updated_views)
keep_jobs = [job.name for job in xml_jobs]