115 lines
3.2 KiB
Python
115 lines
3.2 KiB
Python
# Copyright 2021 Red Hat, Inc.
|
|
#
|
|
# 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 logging
|
|
import sys
|
|
from tripleo_repos.utils import load_logging
|
|
from tripleo_repos.get_hash.tripleo_hash_info import TripleOHashInfo
|
|
import tripleo_repos.get_hash.exceptions as exc
|
|
|
|
|
|
def _validate_args(parsed_args):
|
|
if parsed_args.os_version == 'centos7' and (
|
|
parsed_args.component is not None
|
|
):
|
|
raise exc.TripleOHashInvalidParameter(
|
|
'Cannot specify component for centos 7'
|
|
)
|
|
|
|
|
|
def main():
|
|
load_logging(module_name="tripleo-get-hash")
|
|
config = TripleOHashInfo.load_config()
|
|
parser = argparse.ArgumentParser(description='tripleo-get-hash.py')
|
|
parser.add_argument(
|
|
'--component',
|
|
help=('Use this to specify a component '
|
|
'This is NOT valid for Centos 7.'),
|
|
choices=config['tripleo_ci_components'],
|
|
)
|
|
parser.add_argument(
|
|
'--dlrn-url',
|
|
help=(
|
|
'The URL for the delorean server to use. Defaults to '
|
|
'https://trunk.rdoproject.org'
|
|
),
|
|
)
|
|
parser.add_argument(
|
|
'--os-version',
|
|
default='centos8',
|
|
choices=config['os_versions'],
|
|
help=('The operating system and version to fetch the build tag for'),
|
|
)
|
|
parser.add_argument(
|
|
'--tag',
|
|
default='current-tripleo',
|
|
choices=config['rdo_named_tags'],
|
|
help=('The known tag to retrieve the hash_info for'),
|
|
)
|
|
parser.add_argument(
|
|
'--release',
|
|
default='master',
|
|
help=('The release of OpenStack you want the hash info for. '
|
|
'Default master'),
|
|
choices=config['tripleo_releases'],
|
|
)
|
|
parser.add_argument(
|
|
'--verbose',
|
|
action='store_true',
|
|
help=('Enable verbose log level for debugging'),
|
|
)
|
|
|
|
args = parser.parse_args()
|
|
|
|
if args.verbose:
|
|
logging.getLogger().setLevel(logging.DEBUG)
|
|
logging.debug("Logging level set to DEBUG")
|
|
_validate_args(args)
|
|
|
|
if args.dlrn_url is not None:
|
|
logging.debug(
|
|
"Overriding configuration dlrn_url. Original value {}. "
|
|
"New value {}".format(config['dlrn_url'], args.dlrn_url)
|
|
)
|
|
config['dlrn_url'] = args.dlrn_url
|
|
logging.debug(
|
|
"Proceeding with the following configuration: {}".format(config)
|
|
)
|
|
|
|
tripleo_hash_info = TripleOHashInfo(
|
|
args.os_version,
|
|
args.release,
|
|
args.component,
|
|
args.tag,
|
|
config,
|
|
)
|
|
print(tripleo_hash_info)
|
|
return tripleo_hash_info
|
|
|
|
|
|
def cli_entrypoint():
|
|
try:
|
|
main()
|
|
sys.exit(0)
|
|
except KeyboardInterrupt:
|
|
logging.info("Exiting on user interrupt")
|
|
raise
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|