diff --git a/test/ci-bootstrap.py b/test/ci-bootstrap.py index b52bbc83f82bd7cde4306e96c21cd6ac4caff344..efa65b8e6f1f66b1ffe4e41fcfb01e5092c0d74b 100755 --- a/test/ci-bootstrap.py +++ b/test/ci-bootstrap.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -""" +r""" Used by CI to bootstrap a new cluster and run tests. Prerequisites @@ -8,12 +8,15 @@ Prerequisites - ansible-runner - requests - tabulate + - psutil Env vars needed: - COSMOS_API_TOKEN In Debian: - apt-get install -y --no-install-recommends ansible gcc libc6-dev + apt-get install -y --no-install-recommends ansible gcc libc6-dev \ + python3-distutils python3-pip python3-setuptools python3-wheel \ + python3-psutil pip3 install ansible-runner requests tabulate """ @@ -29,6 +32,25 @@ import traceback import yaml +def init_logging(log, loglevel): + """ + Configure logging. + + - debug and info go to stdout + - warning and above go to stderr + """ + log.setLevel(loglevel) + stdout = logging.StreamHandler(sys.stdout) + stdout.setLevel(loglevel) + stdout.addFilter(lambda record: record.levelno <= logging.INFO) + + stderr = logging.StreamHandler() + stderr.setLevel(logging.WARNING) + + log.addHandler(stdout) + log.addHandler(stderr) + + if __name__ == "__main__": # Parse command line arguments @@ -70,11 +92,11 @@ if __name__ == "__main__": # Setup logging for this script log = logging.getLogger(__name__) - cosmos.init_logging(log, loglevel) + init_logging(log, loglevel) # Setup logging for cosmos module log_cosmos = logging.getLogger('cosmos') - cosmos.init_logging(log_cosmos, loglevel) + init_logging(log_cosmos, loglevel) # Start bootstrapping if args.create_droplet: diff --git a/test/cosmos.py b/test/cosmos.py index b51896e9967cc532602fef88fdd5ede0a29ceb25..8a45d830687b0b6e54d3fcc20df471f87c7b5251 100755 --- a/test/cosmos.py +++ b/test/cosmos.py @@ -13,25 +13,6 @@ from time import sleep # Helper functions -def init_logging(log, loglevel): - """ - Configure logging. - - - debug and info go to stdout - - warning and above go to stderr - """ - log.setLevel(loglevel) - stdout = logging.StreamHandler(sys.stdout) - stdout.setLevel(loglevel) - stdout.addFilter(lambda record: record.levelno <= logging.INFO) - - stderr = logging.StreamHandler() - stderr.setLevel(logging.WARNING) - - log.addHandler(stdout) - log.addHandler(stderr) - - def request_api(resource: str, request_type: str = 'GET', data: str = ''): """Query the cosmos API.""" @@ -287,11 +268,12 @@ def wait_for_state(id: int, state): status = status_droplet(id) -log = logging.getLogger(__name__) # When called from from ipython, setup # logging to console try: __IPYTHON__ - init_logging(log, logging.INFO) + log = logging.getLogger() + log.addHandler(logging.StreamHandler()) + log.setLevel(logging.INFO) except NameError: - pass + log = logging.getLogger(__name__)