From 06a5a17aabd2bc03d8e428f5eb73e6e60dd82178 Mon Sep 17 00:00:00 2001 From: Gregory Schiano Date: Mon, 10 Jul 2023 10:27:47 +0200 Subject: [PATCH 1/3] Pin pydantic to 1.X --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index ee02315..d655c17 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ jsonschema >= 4.17 ops >= 2.2 -pydantic >= 1.10 +pydantic >= 1.10,<2 From 80748120b13339b3e5eeb13d4998ccea4b581964 Mon Sep 17 00:00:00 2001 From: Gregory Schiano Date: Mon, 10 Jul 2023 10:40:45 +0200 Subject: [PATCH 2/3] Fix linting due to new ops version --- src/charm.py | 20 ++++++++++---------- src/databases.py | 8 ++++---- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/charm.py b/src/charm.py index f4217bf..98913d1 100755 --- a/src/charm.py +++ b/src/charm.py @@ -150,7 +150,7 @@ def _on_config_changed(self, event: ops.EventBase) -> None: return self._restart_flask_application() - def _flask_layer(self) -> dict: + def _flask_layer(self) -> ops.pebble.LayerDict: """Generate the pebble layer definition for flask application. Returns: @@ -163,8 +163,8 @@ def _flask_layer(self) -> dict: self._update_app_and_unit_status(ops.BlockedStatus(exc.msg)) # Returning an empty dict will cancel add_layer() when used with combine=True return {} - return { - "services": { + return ops.pebble.LayerDict( + services={ FLASK_SERVICE_NAME: { "override": "replace", "summary": "Flask application service", @@ -173,15 +173,15 @@ def _flask_layer(self) -> dict: "environment": environment, } }, - } + ) def _on_statsd_prometheus_exporter_pebble_ready(self, _event: ops.PebbleReadyEvent) -> None: """Handle the statsd-prometheus-exporter-pebble-ready event.""" statsd_container = self.unit.get_container("statsd-prometheus-exporter") - statsd_layer = { - "summary": "statsd exporter layer", - "description": "statsd exporter layer", - "services": { + statsd_layer = ops.pebble.LayerDict( + summary="statsd exporter layer", + description="statsd exporter layer", + services={ "statsd-prometheus-exporter": { "override": "replace", "summary": "statsd exporter service", @@ -190,14 +190,14 @@ def _on_statsd_prometheus_exporter_pebble_ready(self, _event: ops.PebbleReadyEve "startup": "enabled", } }, - "checks": { + checks={ "container-ready": { "override": "replace", "level": "ready", "http": {"url": "http://localhost:9102/metrics"}, }, }, - } + ) statsd_container.add_layer("statsd-prometheus-exporter", statsd_layer, combine=True) statsd_container.replan() diff --git a/src/databases.py b/src/databases.py index 974af77..45a8f90 100644 --- a/src/databases.py +++ b/src/databases.py @@ -74,11 +74,11 @@ def _on_database_requires_event(self, event: DatabaseRequiresEvent) -> None: if FLASK_SERVICE_NAME in plan.services: flask_service = plan.services[FLASK_SERVICE_NAME].to_dict() flask_service["environment"].update(self.get_uris()) - new_layer = { - "services": { + new_layer = ops.pebble.LayerDict( + services={ FLASK_SERVICE_NAME: flask_service, - }, - } + } + ) container.add_layer("flask-app", new_layer, combine=True) container.replan() From 9860cd59d6dd006a37a8e3f934328129cf376414 Mon Sep 17 00:00:00 2001 From: Gregory Schiano Date: Mon, 10 Jul 2023 12:56:08 +0200 Subject: [PATCH 3/3] Pining jsonschema due to transient dependency to rust compiler --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d655c17..6009b22 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ -jsonschema >= 4.17 +jsonschema >= 4.17,<4.18 ops >= 2.2 pydantic >= 1.10,<2