From 6ce504a281a36bb3e775a06437abcbe519ae9df6 Mon Sep 17 00:00:00 2001 From: Dario Faccin Date: Fri, 31 Mar 2023 16:47:35 +0200 Subject: [PATCH] Update Dockerfile and stage-test script to run tests for charms This patch updates Dockerfile to use Ubuntu 20.04 as base for building and testing charms. This patch updates stage-test script to execute testing for charms. Tests will be executed only for charms modified by the review. This patch updates tox configuration for charms setting the python interpreter to python3.8. Change-Id: Ib9046b78d6520188cc51ac776fe60ea16479f11c Signed-off-by: Dario Faccin --- Dockerfile | 8 ++++---- devops-stages/stage-test.sh | 15 +++++++------- installers/charm/osm-lcm/tox.ini | 1 + installers/charm/osm-mon/src/charm.py | 20 +++++-------------- installers/charm/osm-mon/tox.ini | 1 + installers/charm/osm-nbi/tox.ini | 1 + installers/charm/osm-ng-ui/tox.ini | 1 + installers/charm/osm-pol/tox.ini | 1 + installers/charm/osm-ro/tox.ini | 1 + .../charm/vca-integrator-operator/tox.ini | 1 + 10 files changed, 23 insertions(+), 27 deletions(-) diff --git a/Dockerfile b/Dockerfile index 931da3ec..dda7a419 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,7 +24,7 @@ # devops-stages/stage-build.sh # -FROM ubuntu:18.04 +FROM ubuntu:20.04 ARG APT_PROXY RUN if [ ! -z $APT_PROXY ] ; then \ @@ -37,13 +37,13 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ debhelper \ dh-make \ git \ - python3.8 \ + python3 \ python3-all \ python3-dev \ python3-setuptools -RUN python3 -m easy_install pip==21.0.1 -RUN pip3 install tox==3.22.0 +RUN python3 -m easy_install pip==21.3.1 +RUN pip install tox==3.24.5 ENV LC_ALL C.UTF-8 ENV LANG C.UTF-8 diff --git a/devops-stages/stage-test.sh b/devops-stages/stage-test.sh index b455932d..d37d40ff 100755 --- a/devops-stages/stage-test.sh +++ b/devops-stages/stage-test.sh @@ -16,17 +16,16 @@ set -eu -if [ $(git diff --name-only origin/$GERRIT_BRANCH -- installers/charm/ |wc -l) -eq 0 ]; then - exit 0 -fi - CURRENT_DIR=`pwd` # Execute tests for charms CHARM_PATH="./installers/charm" -CHARM_NAMES="keystone lcm mon nbi ng-ui pla pol prometheus ro grafana mongodb-exporter mysqld-exporter kafka-exporter" +CHARM_NAMES="osm-lcm osm-mon osm-nbi osm-ng-ui osm-pol osm-ro keystone prometheus grafana vca-integrator-operator" for charm in $CHARM_NAMES; do - cd $CHARM_PATH/$charm - TOX_PARALLEL_NO_SPINNER=1 tox --parallel=auto - cd $CURRENT_DIR + if [ $(git diff --name-only "origin/${GERRIT_BRANCH}" -- "installers/charm/${charm}" | wc -l) -ne 0 ]; then + echo "Running tox for ${charm}" + cd "${CHARM_PATH}/${charm}" + TOX_PARALLEL_NO_SPINNER=1 tox -e lint --parallel=auto + cd "${CURRENT_DIR}" + fi done diff --git a/installers/charm/osm-lcm/tox.ini b/installers/charm/osm-lcm/tox.ini index 0268da8a..16c1359f 100644 --- a/installers/charm/osm-lcm/tox.ini +++ b/installers/charm/osm-lcm/tox.ini @@ -29,6 +29,7 @@ tst_path = {toxinidir}/tests/ all_path = {[vars]src_path} {[vars]tst_path} [testenv] +basepython = python3.8 setenv = PYTHONPATH = {toxinidir}:{toxinidir}/lib:{[vars]src_path} PYTHONBREAKPOINT=ipdb.set_trace diff --git a/installers/charm/osm-mon/src/charm.py b/installers/charm/osm-mon/src/charm.py index 176f896e..e07d6072 100755 --- a/installers/charm/osm-mon/src/charm.py +++ b/installers/charm/osm-mon/src/charm.py @@ -151,9 +151,7 @@ class OsmMonCharm(CharmBase): def _on_get_debug_mode_information_action(self, event: ActionEvent) -> None: """Handler for the get-debug-mode-information action event.""" if not self.debug_mode.started: - event.fail( - "debug-mode has not started. Hint: juju config mon debug-mode=true" - ) + event.fail("debug-mode has not started. Hint: juju config mon debug-mode=true") return debug_info = { @@ -179,13 +177,9 @@ class OsmMonCharm(CharmBase): # Action events self.on.get_debug_mode_information_action: self._on_get_debug_mode_information_action, } - for relation in [ - self.on[rel_name] for rel_name in ["mongodb", "prometheus", "keystone"] - ]: + for relation in [self.on[rel_name] for rel_name in ["mongodb", "prometheus", "keystone"]]: event_handler_mapping[relation.relation_changed] = self._on_config_changed - event_handler_mapping[ - relation.relation_broken - ] = self._on_required_relation_broken + event_handler_mapping[relation.relation_broken] = self._on_required_relation_broken for event, handler in event_handler_mapping.items(): self.framework.observe(event, handler) @@ -219,9 +213,7 @@ class OsmMonCharm(CharmBase): if missing_relations: relations_str = ", ".join(missing_relations) one_relation_missing = len(missing_relations) == 1 - error_msg = ( - f'need {relations_str} relation{"" if one_relation_missing else "s"}' - ) + error_msg = f'need {relations_str} relation{"" if one_relation_missing else "s"}' logger.warning(error_msg) raise CharmError(error_msg) @@ -236,9 +228,7 @@ class OsmMonCharm(CharmBase): environment = { # General configuration "OSMMON_GLOBAL_LOGLEVEL": self.config["log-level"], - "OSMMON_OPENSTACK_DEFAULT_GRANULARITY": self.config[ - "openstack-default-granularity" - ], + "OSMMON_OPENSTACK_DEFAULT_GRANULARITY": self.config["openstack-default-granularity"], "OSMMON_GLOBAL_REQUEST_TIMEOUT": self.config["global-request-timeout"], "OSMMON_COLLECTOR_INTERVAL": self.config["collector-interval"], "OSMMON_EVALUATOR_INTERVAL": self.config["evaluator-interval"], diff --git a/installers/charm/osm-mon/tox.ini b/installers/charm/osm-mon/tox.ini index b8effcef..46b127d7 100644 --- a/installers/charm/osm-mon/tox.ini +++ b/installers/charm/osm-mon/tox.ini @@ -29,6 +29,7 @@ tst_path = {toxinidir}/tests/ all_path = {[vars]src_path} {[vars]tst_path} [testenv] +basepython = python3.8 setenv = PYTHONPATH = {toxinidir}:{toxinidir}/lib:{[vars]src_path} PYTHONBREAKPOINT=ipdb.set_trace diff --git a/installers/charm/osm-nbi/tox.ini b/installers/charm/osm-nbi/tox.ini index bae1f1f7..e24bef52 100644 --- a/installers/charm/osm-nbi/tox.ini +++ b/installers/charm/osm-nbi/tox.ini @@ -30,6 +30,7 @@ lib_path = {toxinidir}/lib/charms/osm_nbi all_path = {[vars]src_path} {[vars]tst_path} [testenv] +basepython = python3.8 setenv = PYTHONPATH = {toxinidir}:{toxinidir}/lib:{[vars]src_path} PYTHONBREAKPOINT=ipdb.set_trace diff --git a/installers/charm/osm-ng-ui/tox.ini b/installers/charm/osm-ng-ui/tox.ini index 5fd78491..1f7ecb7e 100644 --- a/installers/charm/osm-ng-ui/tox.ini +++ b/installers/charm/osm-ng-ui/tox.ini @@ -30,6 +30,7 @@ lib_path = {toxinidir}/lib/charms/osm_ng_ui all_path = {[vars]src_path} {[vars]tst_path} [testenv] +basepython = python3.8 setenv = PYTHONPATH = {toxinidir}:{toxinidir}/lib:{[vars]src_path} PYTHONBREAKPOINT=ipdb.set_trace diff --git a/installers/charm/osm-pol/tox.ini b/installers/charm/osm-pol/tox.ini index 0268da8a..16c1359f 100644 --- a/installers/charm/osm-pol/tox.ini +++ b/installers/charm/osm-pol/tox.ini @@ -29,6 +29,7 @@ tst_path = {toxinidir}/tests/ all_path = {[vars]src_path} {[vars]tst_path} [testenv] +basepython = python3.8 setenv = PYTHONPATH = {toxinidir}:{toxinidir}/lib:{[vars]src_path} PYTHONBREAKPOINT=ipdb.set_trace diff --git a/installers/charm/osm-ro/tox.ini b/installers/charm/osm-ro/tox.ini index 70089f8d..0451ff1a 100644 --- a/installers/charm/osm-ro/tox.ini +++ b/installers/charm/osm-ro/tox.ini @@ -30,6 +30,7 @@ lib_path = {toxinidir}/lib/charms/osm_ro all_path = {[vars]src_path} {[vars]tst_path} [testenv] +basepython = python3.8 setenv = PYTHONPATH = {toxinidir}:{toxinidir}/lib:{[vars]src_path} PYTHONBREAKPOINT=ipdb.set_trace diff --git a/installers/charm/vca-integrator-operator/tox.ini b/installers/charm/vca-integrator-operator/tox.ini index 6ef1fe35..605d6907 100644 --- a/installers/charm/vca-integrator-operator/tox.ini +++ b/installers/charm/vca-integrator-operator/tox.ini @@ -27,6 +27,7 @@ lib_path = {toxinidir}/lib/charms/osm_vca_integrator all_path = {[vars]src_path} {[vars]tst_path} {[vars]lib_path} [testenv] +basepython = python3.8 setenv = PYTHONPATH = {toxinidir}:{toxinidir}/lib:{[vars]src_path} PYTHONBREAKPOINT=ipdb.set_trace -- 2.25.1