5a98ebb8bb
Resolves flake8 BLK related issues. "BLK100 Black would make changes." "BLK999 Unexpected exception: ..." Change-Id: Ic6d4265e3d02b2f2a15ab851eaed98288c62730c Signed-off-by: Thanh Ha <zxiiro@gmail.com>
115 lines
3.4 KiB
Python
115 lines
3.4 KiB
Python
#!/usr/bin/env python
|
|
# Copyright (C) 2015 Wayne Warren
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import argparse
|
|
import os
|
|
|
|
import jenkins_jobs.version
|
|
|
|
from stevedore import extension
|
|
|
|
|
|
def __version__():
|
|
return (
|
|
"Jenkins Job Builder version: %s"
|
|
% jenkins_jobs.version.version_info.version_string()
|
|
)
|
|
|
|
|
|
def create_parser():
|
|
"""Create an ArgumentParser object usable by JenkinsJobs."""
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument(
|
|
"--conf",
|
|
dest="conf",
|
|
default=os.environ.get("JJB_CONF", None),
|
|
help="configuration file [JJB_CONF]",
|
|
)
|
|
parser.add_argument(
|
|
"-l",
|
|
"--log_level",
|
|
dest="log_level",
|
|
default=os.environ.get("JJB_LOG_LEVEL", "info"),
|
|
help="log level (default: %(default)s) [JJB_LOG_LEVEL]",
|
|
)
|
|
parser.add_argument(
|
|
"--ignore-cache",
|
|
action="store_true",
|
|
dest="ignore_cache",
|
|
default=None,
|
|
help="ignore the cache and update the jobs anyhow (that will "
|
|
"only flush the specified jobs cache)",
|
|
)
|
|
parser.add_argument(
|
|
"--flush-cache",
|
|
action="store_true",
|
|
dest="flush_cache",
|
|
default=None,
|
|
help="flush all the cache entries before updating",
|
|
)
|
|
parser.add_argument(
|
|
"--version",
|
|
dest="version",
|
|
action="version",
|
|
version=__version__(),
|
|
help="show version",
|
|
)
|
|
parser.add_argument(
|
|
"--allow-empty-variables",
|
|
action="store_true",
|
|
dest="allow_empty_variables",
|
|
default=None,
|
|
help="Don't fail if any of the variables inside any string are "
|
|
"not defined, replace with empty string instead.",
|
|
)
|
|
parser.add_argument(
|
|
"--server",
|
|
"-s",
|
|
dest="section",
|
|
default=os.environ.get("JJB_SECTION", "jenkins"),
|
|
help="The Jenkins server ini section to use. Defaults to 'jenkins' "
|
|
"[JJB_SECTION]",
|
|
)
|
|
parser.add_argument(
|
|
"--user",
|
|
"-u",
|
|
default=os.environ.get("JJB_USER", None),
|
|
help="The Jenkins user to use for authentication. This overrides "
|
|
"the user specified in the configuration file. [JJB_USER]",
|
|
)
|
|
parser.add_argument(
|
|
"--password",
|
|
"-p",
|
|
default=os.environ.get("JJB_PASSWORD", None),
|
|
help="Password or API token to use for authenticating towards Jenkins."
|
|
" This overrides the password specified in the configuration file."
|
|
" [JJB_PASSWORD]",
|
|
)
|
|
|
|
subparser = parser.add_subparsers(
|
|
dest="command", help="update, test, list or delete job"
|
|
)
|
|
|
|
extension_manager = extension.ExtensionManager(
|
|
namespace="jjb.cli.subcommands", invoke_on_load=True
|
|
)
|
|
|
|
def parse_subcommand_args(ext, subparser):
|
|
ext.obj.parse_args(subparser)
|
|
|
|
extension_manager.map(parse_subcommand_args, subparser)
|
|
|
|
return parser
|