From ae76ddc1906bbd5e13ea5ba3521a31991c0212f3 Mon Sep 17 00:00:00 2001 From: Bikalpa Dhakal Date: Tue, 10 Feb 2026 09:04:28 +0545 Subject: [PATCH 1/8] Update backup tests to use new GCS Integrator --- tests/integration/ha/test_backups.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/integration/ha/test_backups.py b/tests/integration/ha/test_backups.py index 6d96d2d6aa..400afc6463 100644 --- a/tests/integration/ha/test_backups.py +++ b/tests/integration/ha/test_backups.py @@ -378,18 +378,24 @@ async def test_small_deployment_build_and_deploy( if cloud_name == "azure": backup_integrator = AZURE_INTEGRATOR backup_integrator_channel = AZURE_INTEGRATOR_CHANNEL + backup_integrator_revision = None elif cloud_name == "gcs": backup_integrator = GCS_INTEGRATOR backup_integrator_channel = GCS_INTEGRATOR_CHANNEL + backup_integrator_revision = 28 else: backup_integrator = S3_INTEGRATOR backup_integrator_channel = S3_INTEGRATOR_CHANNEL - + backup_integrator_revision = None await asyncio.gather( ops_test.model.deploy( TLS_CERTIFICATES_APP_NAME, channel=TLS_STABLE_CHANNEL, config=config ), - ops_test.model.deploy(backup_integrator, channel=backup_integrator_channel), + ops_test.model.deploy( + backup_integrator, + channel=backup_integrator_channel, + revision=backup_integrator_revision, + ), ops_test.model.deploy(charm, num_units=3, series=series, config=CONFIG_OPTS), ) From 51341bdab095f69a138a704dcba1f38a320d2fa4 Mon Sep 17 00:00:00 2001 From: Bikalpa Dhakal Date: Tue, 10 Feb 2026 09:53:22 +0545 Subject: [PATCH 2/8] Fix backup tests to include new gcs-integrator everywhere --- tests/integration/ha/test_backups.py | 9 ++++++++- .../config/opensearch-security/internal_users.yml | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/integration/ha/test_backups.py b/tests/integration/ha/test_backups.py index 400afc6463..f88a51287a 100644 --- a/tests/integration/ha/test_backups.py +++ b/tests/integration/ha/test_backups.py @@ -454,18 +454,25 @@ async def test_large_deployment_build_and_deploy( if cloud_name == "azure": backup_integrator = AZURE_INTEGRATOR backup_integrator_channel = AZURE_INTEGRATOR_CHANNEL + backup_integrator_revision = None elif cloud_name == "gcs": backup_integrator = GCS_INTEGRATOR backup_integrator_channel = GCS_INTEGRATOR_CHANNEL + backup_integrator_revision = 28 else: backup_integrator = S3_INTEGRATOR backup_integrator_channel = S3_INTEGRATOR_CHANNEL + backup_integrator_revision = None await asyncio.gather( ops_test.model.deploy( TLS_CERTIFICATES_APP_NAME, channel=TLS_STABLE_CHANNEL, config=tls_config ), - ops_test.model.deploy(backup_integrator, channel=backup_integrator_channel), + ops_test.model.deploy( + backup_integrator, + channel=backup_integrator_channel, + revision=backup_integrator_revision, + ), ops_test.model.deploy( charm, application_name="main", diff --git a/tests/unit/resources/config/opensearch-security/internal_users.yml b/tests/unit/resources/config/opensearch-security/internal_users.yml index 0a80ae83f3..97fa1b1de2 100644 --- a/tests/unit/resources/config/opensearch-security/internal_users.yml +++ b/tests/unit/resources/config/opensearch-security/internal_users.yml @@ -10,7 +10,7 @@ _meta: ## Demo users admin: - hash: $2b$12$mAXCJ7AiHGDGxLiqwQ4HCefDIeyQIVsjT8zBhm2qZg6TCnBVnZ9lq + hash: $2b$12$Pqj6sCr9RYYus0Pp2qklu.r9fOXmx0lnCJkNqpnCmgACjiblhKLOO reserved: false backend_roles: - admin @@ -19,6 +19,6 @@ admin: - all_access description: Admin user kibanaserver: - hash: $2b$12$p54pyKyc0tWo.yoAlKfk5ekpLJhzEuwL./yIJURFWF5o4aXwcDVbu + hash: $2b$12$NLp9n6IrxhxVcaTMThPtn./JR410BOKFNndL27hovwonckVp38XcC reserved: false description: Kibanaserver user From e8df68be54047008e477f7921956abf12d166ccf Mon Sep 17 00:00:00 2001 From: Bikalpa Dhakal Date: Tue, 10 Feb 2026 11:23:02 +0545 Subject: [PATCH 3/8] Deploy GCS integrator from PR branch everywhere --- tests/integration/ha/test_backups.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/integration/ha/test_backups.py b/tests/integration/ha/test_backups.py index f88a51287a..39fff533b2 100644 --- a/tests/integration/ha/test_backups.py +++ b/tests/integration/ha/test_backups.py @@ -856,12 +856,15 @@ async def test_restore_to_new_cluster( if cloud_name == "azure": backup_integrator = AZURE_INTEGRATOR backup_integrator_channel = AZURE_INTEGRATOR_CHANNEL + backup_integrator_revision = None elif cloud_name == "gcs": backup_integrator = GCS_INTEGRATOR backup_integrator_channel = GCS_INTEGRATOR_CHANNEL + backup_integrator_revision = 28 else: backup_integrator = S3_INTEGRATOR backup_integrator_channel = S3_INTEGRATOR_CHANNEL + backup_integrator_revision = None logging.info("Destroying the application") await asyncio.gather( @@ -879,7 +882,11 @@ async def test_restore_to_new_cluster( ops_test.model.deploy( TLS_CERTIFICATES_APP_NAME, channel=TLS_STABLE_CHANNEL, config=config ), - ops_test.model.deploy(backup_integrator, channel=backup_integrator_channel), + ops_test.model.deploy( + backup_integrator, + channel=backup_integrator_channel, + revision=backup_integrator_revision, + ), ops_test.model.deploy(charm, num_units=3, series=series, config=CONFIG_OPTS), ) @@ -1114,7 +1121,7 @@ async def _ensure_only_gcs_integrator_related(ops_test: OpsTest, app: str) -> No await _drop_azure_relation_if_any(ops_test, app) if GCS_INTEGRATOR not in ops_test.model.applications: - await ops_test.model.deploy(GCS_INTEGRATOR, channel=GCS_INTEGRATOR_CHANNEL) + await ops_test.model.deploy(GCS_INTEGRATOR, channel=GCS_INTEGRATOR_CHANNEL, revision=28) await wait_until( ops_test, apps=[GCS_INTEGRATOR], From 0c1a5b3921335b12c6388dcc9062ff0a167182a4 Mon Sep 17 00:00:00 2001 From: Bikalpa Dhakal Date: Wed, 11 Feb 2026 18:09:29 +0545 Subject: [PATCH 4/8] Upgrade gcs integrator charm to revision 48 --- tests/integration/ha/test_backups.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/integration/ha/test_backups.py b/tests/integration/ha/test_backups.py index 39fff533b2..757816a80b 100644 --- a/tests/integration/ha/test_backups.py +++ b/tests/integration/ha/test_backups.py @@ -382,7 +382,7 @@ async def test_small_deployment_build_and_deploy( elif cloud_name == "gcs": backup_integrator = GCS_INTEGRATOR backup_integrator_channel = GCS_INTEGRATOR_CHANNEL - backup_integrator_revision = 28 + backup_integrator_revision = 48 else: backup_integrator = S3_INTEGRATOR backup_integrator_channel = S3_INTEGRATOR_CHANNEL @@ -458,7 +458,7 @@ async def test_large_deployment_build_and_deploy( elif cloud_name == "gcs": backup_integrator = GCS_INTEGRATOR backup_integrator_channel = GCS_INTEGRATOR_CHANNEL - backup_integrator_revision = 28 + backup_integrator_revision = 48 else: backup_integrator = S3_INTEGRATOR backup_integrator_channel = S3_INTEGRATOR_CHANNEL @@ -860,7 +860,7 @@ async def test_restore_to_new_cluster( elif cloud_name == "gcs": backup_integrator = GCS_INTEGRATOR backup_integrator_channel = GCS_INTEGRATOR_CHANNEL - backup_integrator_revision = 28 + backup_integrator_revision = 48 else: backup_integrator = S3_INTEGRATOR backup_integrator_channel = S3_INTEGRATOR_CHANNEL From 79afe34ae2054d7b90283f8925227008553f8f0b Mon Sep 17 00:00:00 2001 From: Bikalpa Dhakal Date: Fri, 13 Feb 2026 12:28:15 +0545 Subject: [PATCH 5/8] Update the gcs integrator revision --- tests/integration/ha/test_backups.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/integration/ha/test_backups.py b/tests/integration/ha/test_backups.py index 757816a80b..f0798e2cc3 100644 --- a/tests/integration/ha/test_backups.py +++ b/tests/integration/ha/test_backups.py @@ -382,7 +382,7 @@ async def test_small_deployment_build_and_deploy( elif cloud_name == "gcs": backup_integrator = GCS_INTEGRATOR backup_integrator_channel = GCS_INTEGRATOR_CHANNEL - backup_integrator_revision = 48 + backup_integrator_revision = 63 else: backup_integrator = S3_INTEGRATOR backup_integrator_channel = S3_INTEGRATOR_CHANNEL @@ -458,7 +458,7 @@ async def test_large_deployment_build_and_deploy( elif cloud_name == "gcs": backup_integrator = GCS_INTEGRATOR backup_integrator_channel = GCS_INTEGRATOR_CHANNEL - backup_integrator_revision = 48 + backup_integrator_revision = 63 else: backup_integrator = S3_INTEGRATOR backup_integrator_channel = S3_INTEGRATOR_CHANNEL @@ -860,7 +860,7 @@ async def test_restore_to_new_cluster( elif cloud_name == "gcs": backup_integrator = GCS_INTEGRATOR backup_integrator_channel = GCS_INTEGRATOR_CHANNEL - backup_integrator_revision = 48 + backup_integrator_revision = 63 else: backup_integrator = S3_INTEGRATOR backup_integrator_channel = S3_INTEGRATOR_CHANNEL From b4932aa12903dbe1aa59fbc6dd7adf26fa146bed Mon Sep 17 00:00:00 2001 From: Bikalpa Dhakal Date: Fri, 13 Feb 2026 12:33:53 +0545 Subject: [PATCH 6/8] Temporarily disable cache --- .github/workflows/ci.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5ace5a913d..a8ff0bb6c8 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -177,6 +177,7 @@ jobs: uses: canonical/data-platform-workflows/.github/workflows/build_charm.yaml@v32.1.0 with: path-to-charm-directory: ${{ matrix.path }} + cache: false # TODO: enable caching when suppported integration-test: name: Integration test charm From bdf860ac7ba2c69fde87c9435bcb4efc33ff9de8 Mon Sep 17 00:00:00 2001 From: Bikalpa Dhakal Date: Fri, 13 Feb 2026 12:51:54 +0545 Subject: [PATCH 7/8] Remove jproperties as dependency --- .gitignore | 2 ++ poetry.lock | 19 ++----------------- pyproject.toml | 1 - 3 files changed, 4 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 52f74b287f..e757408dd9 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,5 @@ override.tf.json .terraformrc terraform.rc .env + +coverage.xml \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 2ca96b9e32..5f3d7dcc59 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. [[package]] name = "allure-pytest" @@ -1640,21 +1640,6 @@ files = [ {file = "jmespath-1.1.0.tar.gz", hash = "sha256:472c87d80f36026ae83c6ddd0f1d05d4e510134ed462851fd5f754c8c3cbb88d"}, ] -[[package]] -name = "jproperties" -version = "2.1.2" -description = "Java Property file parser and writer for Python" -optional = false -python-versions = ">=2.7" -groups = ["main"] -files = [ - {file = "jproperties-2.1.2-py2.py3-none-any.whl", hash = "sha256:4108e868353a9f4a12bb86a92df5462d0e18d00119169533972ce473029be79a"}, - {file = "jproperties-2.1.2.tar.gz", hash = "sha256:036fcd52c10a8a1c21e6fa2a1c292c93892e759b76490acc4809213a36ddc329"}, -] - -[package.dependencies] -six = ">=1.13,<2.0" - [[package]] name = "jsonschema" version = "4.26.0" @@ -3639,4 +3624,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.1" python-versions = "^3.10" -content-hash = "5f3523173e00b01d6510c1dfe36a0600904a25492df6b0aa12e21ccaacb5f87a" +content-hash = "b1ad1fceb35b3ebb95e5a279afe9653e768ff2059e0384a55154c8fa9aec41ab" diff --git a/pyproject.toml b/pyproject.toml index 32ff5e0e2c..f7841ef5e9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,7 +15,6 @@ requests = "2.32.4" # Official name: ruamel.yaml, but due to Poetry GH#109 - replace dots with dashs ruamel-yaml = "0.18.14" shortuuid = "1.0.13" -jproperties = "2.1.2" pydantic = "^1.10.17, <2" cryptography = "^45.0.4" jsonschema = "^4.24.0" From f7bee6e5ab109dd9de15907475a01010ffe6eb72 Mon Sep 17 00:00:00 2001 From: Bikalpa Dhakal Date: Fri, 13 Feb 2026 15:12:18 +0545 Subject: [PATCH 8/8] Update revision for gcs-integrator --- tests/integration/ha/test_backups.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/ha/test_backups.py b/tests/integration/ha/test_backups.py index f0798e2cc3..e02041de9f 100644 --- a/tests/integration/ha/test_backups.py +++ b/tests/integration/ha/test_backups.py @@ -1121,7 +1121,7 @@ async def _ensure_only_gcs_integrator_related(ops_test: OpsTest, app: str) -> No await _drop_azure_relation_if_any(ops_test, app) if GCS_INTEGRATOR not in ops_test.model.applications: - await ops_test.model.deploy(GCS_INTEGRATOR, channel=GCS_INTEGRATOR_CHANNEL, revision=28) + await ops_test.model.deploy(GCS_INTEGRATOR, channel=GCS_INTEGRATOR_CHANNEL, revision=63) await wait_until( ops_test, apps=[GCS_INTEGRATOR],