From ab74c76f89f199084c1788f06dbf70c3401811d6 Mon Sep 17 00:00:00 2001 From: Amber Charitos Date: Tue, 12 Nov 2024 14:09:36 +0000 Subject: [PATCH 1/3] use actual value of java_home to prevent misinterpretation as string --- src/charm.py | 7 ++++++- src/relations/opensearch.py | 8 ++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/charm.py b/src/charm.py index 26ac555..42984a5 100755 --- a/src/charm.py +++ b/src/charm.py @@ -225,6 +225,11 @@ def set_truststore_password(self, container): Args: container: The application container. """ + out, _ = container.exec( + ["/bin/sh", "-c", "echo $JAVA_HOME"] + ).wait_output() + java_home = out.strip() + command = [ "keytool", "-storepass", @@ -233,7 +238,7 @@ def set_truststore_password(self, container): "-new", self._state.truststore_pwd, "-keystore", - "$JAVA_HOME/lib/security/cacerts", + f"{java_home}/lib/security/cacerts", ] try: container.exec(command).wait_output() diff --git a/src/relations/opensearch.py b/src/relations/opensearch.py index 8f72c23..65fd432 100644 --- a/src/relations/opensearch.py +++ b/src/relations/opensearch.py @@ -87,6 +87,10 @@ def update_certificates(self, relation_broken=False) -> None: certificate = self.charm._state.opensearch_certificate truststore_pwd = self.charm._state.truststore_pwd + out, _ = container.exec( + ["/bin/sh", "-c", "echo $JAVA_HOME"] + ).wait_output() + java_home = out.strip() if not relation_broken and certificate: container.push("/opensearch.crt", certificate) @@ -94,7 +98,7 @@ def update_certificates(self, relation_broken=False) -> None: "keytool", "-importcert", "-keystore", - "$JAVA_HOME/lib/security/cacerts", + f"{java_home}/lib/security/cacerts", "-file", "/opensearch.crt", "-alias", @@ -108,7 +112,7 @@ def update_certificates(self, relation_broken=False) -> None: "keytool", "-delete", "-keystore", - "$JAVA_HOME/lib/security/cacerts", + f"{java_home}/lib/security/cacerts", "-alias", CERTIFICATE_NAME, "-storepass", From b7870c2b73659077d60d4253b329ae4ccd2e462f Mon Sep 17 00:00:00 2001 From: Amber Charitos Date: Tue, 12 Nov 2024 14:15:38 +0000 Subject: [PATCH 2/3] upgrade juju version --- tox.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index 98c7141..73bddd4 100644 --- a/tox.ini +++ b/tox.ini @@ -32,7 +32,7 @@ passenv = description = Run integration tests deps = ipdb==0.13.9 - juju==3.5.2.0 + juju==3.5.2.1 pytest==7.1.3 pytest-operator==0.29.0 pytest-asyncio==0.21 @@ -44,7 +44,7 @@ commands = description = Run integration tests deps = ipdb==0.13.9 - juju==3.5.2.0 + juju==3.5.2.1 pytest==7.1.3 pytest-operator==0.22.0 pytest-asyncio==0.21 From 704a47b1c21eb110a133b758c615b17c0c3038e6 Mon Sep 17 00:00:00 2001 From: Amber Charitos Date: Tue, 12 Nov 2024 14:26:36 +0000 Subject: [PATCH 3/3] add harness.handle_exec() to unit test --- tests/unit/test_charm.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/unit/test_charm.py b/tests/unit/test_charm.py index 763f64c..a05fa46 100644 --- a/tests/unit/test_charm.py +++ b/tests/unit/test_charm.py @@ -519,6 +519,9 @@ def simulate_usersync_lifecycle(harness): harness.charm.on.ranger_pebble_ready.emit(container) harness.update_config({"charm-function": "usersync"}) + harness.handle_exec( + "ranger", ["/bin/sh"], result="/usr/lib/jvm/java-21-openjdk-amd64/" + ) # Simulate LDAP readiness. rel_id = harness.add_relation("ldap", "comsys-openldap-k8s") @@ -543,6 +546,9 @@ def simulate_admin_lifecycle(harness): container = harness.model.unit.get_container("ranger") harness.charm.on.ranger_pebble_ready.emit(container) + harness.handle_exec( + "ranger", ["/bin/sh"], result="/usr/lib/jvm/java-21-openjdk-amd64/" + ) harness.handle_exec("ranger", ["keytool"], result=0) # Simulate database readiness.