diff --git a/.github/workflows/charm-release.yaml b/.github/workflows/charm-release.yaml index e8207ecde..f335dadc2 100644 --- a/.github/workflows/charm-release.yaml +++ b/.github/workflows/charm-release.yaml @@ -28,6 +28,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 + with: + fetch-depth: 0 - name: Build local images run: make jimm-image - name: Upload charm to charmhub @@ -51,6 +53,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 + with: + fetch-depth: 0 - uses: actions/download-artifact@master with: name: jimm-snap diff --git a/charms/jimm-k8s/src/charm.py b/charms/jimm-k8s/src/charm.py index 36b842614..4d3f19d19 100755 --- a/charms/jimm-k8s/src/charm.py +++ b/charms/jimm-k8s/src/charm.py @@ -387,6 +387,14 @@ def _on_dashboard_relation_joined(self, event: RelationJoinedEvent): def _on_database_event(self, event: DatabaseEvent) -> None: """Database event handler.""" + if event.username is None or event.password is None: + event.defer() + logger.info( + "(postgresql) Relation data is not complete (missing `username` or `password` field); " + "deferring the event." + ) + return + # get the first endpoint from a comma separate list ep = event.endpoints.split(",", 1)[0] # compose the db connection string diff --git a/charms/jimm/src/charm.py b/charms/jimm/src/charm.py index 81509d8cf..d3c2fd830 100755 --- a/charms/jimm/src/charm.py +++ b/charms/jimm/src/charm.py @@ -177,6 +177,14 @@ def _on_database_event(self, event: DatabaseRequiresEvent): event.defer() return + if event.username is None or event.password is None: + event.defer() + logger.info( + "(postgresql) Relation data is not complete (missing `username` or `password` field); " + "deferring the event." + ) + return + # get the first endpoint from a comma separate list host = event.endpoints.split(",", 1)[0] # compose the db connection string