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 <dario.faccin@canonical.com>
diff --git a/Dockerfile b/Dockerfile
index 931da3e..dda7a41 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 @@
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 b455932..d37d40f 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 0268da8..16c1359 100644
--- a/installers/charm/osm-lcm/tox.ini
+++ b/installers/charm/osm-lcm/tox.ini
@@ -29,6 +29,7 @@
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 176f896..e07d607 100755
--- a/installers/charm/osm-mon/src/charm.py
+++ b/installers/charm/osm-mon/src/charm.py
@@ -151,9 +151,7 @@
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 @@
# 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 @@
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 @@
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 b8effce..46b127d 100644
--- a/installers/charm/osm-mon/tox.ini
+++ b/installers/charm/osm-mon/tox.ini
@@ -29,6 +29,7 @@
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 bae1f1f..e24bef5 100644
--- a/installers/charm/osm-nbi/tox.ini
+++ b/installers/charm/osm-nbi/tox.ini
@@ -30,6 +30,7 @@
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 5fd7849..1f7ecb7 100644
--- a/installers/charm/osm-ng-ui/tox.ini
+++ b/installers/charm/osm-ng-ui/tox.ini
@@ -30,6 +30,7 @@
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 0268da8..16c1359 100644
--- a/installers/charm/osm-pol/tox.ini
+++ b/installers/charm/osm-pol/tox.ini
@@ -29,6 +29,7 @@
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 70089f8..0451ff1 100644
--- a/installers/charm/osm-ro/tox.ini
+++ b/installers/charm/osm-ro/tox.ini
@@ -30,6 +30,7 @@
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 6ef1fe3..605d690 100644
--- a/installers/charm/vca-integrator-operator/tox.ini
+++ b/installers/charm/vca-integrator-operator/tox.ini
@@ -27,6 +27,7 @@
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