sts-sponsors team mailing list archive
-
sts-sponsors team
-
Mailing list archive
-
Message #03779
[Merge] ~adam-collard/maas-ci/+git/system-tests:vault-journal-output into ~maas-committers/maas-ci/+git/system-tests:master
Adam Collard has proposed merging ~adam-collard/maas-ci/+git/system-tests:vault-journal-output into ~maas-committers/maas-ci/+git/system-tests:master.
Commit message:
Log vault journal output on error.
Requested reviews:
MAAS Committers (maas-committers)
For more details, see:
https://code.launchpad.net/~adam-collard/maas-ci/+git/system-tests/+merge/434066
--
Your team MAAS Committers is requested to review the proposed merge of ~adam-collard/maas-ci/+git/system-tests:vault-journal-output into ~maas-committers/maas-ci/+git/system-tests:master.
diff --git a/systemtests/fixtures.py b/systemtests/fixtures.py
index c60ef46..eb9790c 100644
--- a/systemtests/fixtures.py
+++ b/systemtests/fixtures.py
@@ -15,7 +15,7 @@ from .api import MAAS_CONTAINER_CERTS_PATH, UnauthenticatedMAASAPIClient
from .config import ADMIN_EMAIL, ADMIN_PASSWORD, ADMIN_USER
from .lxd import CLILXD, get_lxd
from .region import MAASRegion
-from .vault import Vault
+from .vault import Vault, VaultNotReadyError
if TYPE_CHECKING:
from logging import Logger
@@ -292,7 +292,8 @@ def vault(maas_container: str, config: dict[str, Any]) -> Optional[Vault]:
if not snap_channel:
return None
- lxd = get_lxd(getLogger(f"{LOG_NAME}.vault"))
+ vault_logger = getLogger(f"{LOG_NAME}.vault")
+ lxd = get_lxd(vault_logger)
lxd.execute(maas_container, ["apt", "install", "--yes", "ssl-cert"])
lxd.execute(
maas_container, ["snap", "install", "vault", f"--channel={snap_channel}"]
@@ -351,7 +352,14 @@ def vault(maas_container: str, config: dict[str, Any]) -> Optional[Vault]:
secrets_path="maas",
lxd=lxd,
)
- vault.ensure_initialized()
+ try:
+ vault.ensure_initialized()
+ except VaultNotReadyError as e:
+ journalctl = lxd.execute(
+ maas_container, ["journalctl", "--unit=vault", "--no-pager"]
+ )
+ vault_logger.exception(f"{e}\n{journalctl.stdout}")
+ raise
vault.ensure_setup()
return vault
diff --git a/systemtests/vault.py b/systemtests/vault.py
index 21b15a4..9cb2848 100644
--- a/systemtests/vault.py
+++ b/systemtests/vault.py
@@ -11,6 +11,10 @@ from .lxd import CLILXD
from .utils import retries
+class VaultNotReadyError(Exception):
+ pass
+
+
@dataclass
class Vault:
"""Vault CLI wrapper to be run inside a container."""
@@ -39,7 +43,7 @@ class Vault:
with suppress(subprocess.CalledProcessError):
return self.status()
- raise RuntimeError("Vault never became ready")
+ raise VaultNotReadyError(f"Vault at {self.addr} never became ready")
def status(self) -> dict[str, Any]:
"""Return the Vault status."""
Follow ups