Update Dockerfile and stage-test script to run tests for charms 55/13155/5
authorDario Faccin <dario.faccin@canonical.com>
Fri, 31 Mar 2023 14:47:35 +0000 (16:47 +0200)
committerbeierlm <mark.beierl@canonical.com>
Wed, 5 Apr 2023 17:26:09 +0000 (19:26 +0200)
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 <dario.faccin@canonical.com>
Dockerfile
devops-stages/stage-test.sh
installers/charm/osm-lcm/tox.ini
installers/charm/osm-mon/src/charm.py
installers/charm/osm-mon/tox.ini
installers/charm/osm-nbi/tox.ini
installers/charm/osm-ng-ui/tox.ini
installers/charm/osm-pol/tox.ini
installers/charm/osm-ro/tox.ini
installers/charm/vca-integrator-operator/tox.ini

index 931da3e..dda7a41 100644 (file)
@@ -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
index b455932..d37d40f 100755 (executable)
 
 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
index 0268da8..16c1359 100644 (file)
@@ -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
index 176f896..e07d607 100755 (executable)
@@ -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"],
index b8effce..46b127d 100644 (file)
@@ -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
index bae1f1f..e24bef5 100644 (file)
@@ -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
index 5fd7849..1f7ecb7 100644 (file)
@@ -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
index 0268da8..16c1359 100644 (file)
@@ -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
index 70089f8..0451ff1 100644 (file)
@@ -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
index 6ef1fe3..605d690 100644 (file)
@@ -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