Skip to content

Commit

Permalink
ci: Make CI compatible with juju controller 3.1.6
Browse files Browse the repository at this point in the history
The juju.model.deploy(bundle) command somehow cause error if the
controller version is 3.1.6
  • Loading branch information
jneo8 committed Oct 23, 2023
1 parent 746e227 commit 8be7e96
Showing 1 changed file with 42 additions and 30 deletions.
72 changes: 42 additions & 30 deletions tests/functional/test_charm.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
# See LICENSE file for licensing details.

import asyncio
import inspect
import logging
import os
from enum import Enum
from pathlib import Path

Expand All @@ -21,6 +23,12 @@
TIMEOUT = 600


def get_this_script_dir() -> Path:
filename = inspect.getframeinfo(inspect.currentframe()).filename # type: ignore[arg-type]
path = os.path.dirname(os.path.abspath(filename))
return Path(path)


class AppStatus(str, Enum):
"""Various workload status messages for the app."""

Expand All @@ -43,36 +51,40 @@ async def test_build_and_deploy(ops_test: OpsTest, series, sync_helper):
charm = await ops_test.build_charm(".")
assert charm, "Charm was not built successfully."

await asyncio.gather(
ops_test.model.deploy(
ops_test.render_bundle(
"tests/functional/bundle.yaml.j2",
charm=charm,
series=series,
resources={
"storcli-deb": "empty-resource",
"perccli-deb": "empty-resource",
"sas2ircu-bin": "empty-resource",
"sas3ircu-bin": "empty-resource",
},
)
),
ops_test.model.wait_for_idle(
apps=[APP_NAME],
status="blocked",
timeout=TIMEOUT,
),
ops_test.model.wait_for_idle(
apps=[GRAFANA_AGENT_APP_NAME],
status="blocked",
timeout=TIMEOUT,
),
ops_test.model.wait_for_idle(
apps=[PRINCIPAL_APP_NAME],
status="active",
raise_on_blocked=True,
timeout=TIMEOUT,
),
bundle_template_path = get_this_script_dir() / "bundle.yaml.j2"

logger.info("Rendering bundle %s", bundle_template_path)
bundle = ops_test.render_bundle(
bundle_template_path,
charm=charm,
series=series,
resources={
"storcli-deb": "empty-resource",
"perccli-deb": "empty-resource",
"sas2ircu-bin": "empty-resource",
"sas3ircu-bin": "empty-resource",
},
)
juju_cmd = ["deploy", "-m", ops_test.model_full_name, str(bundle)]

rc, stdout, stderr = await ops_test.juju(*juju_cmd)
assert rc == 0, f"Bundle deploy failed: {(stderr or stdout).strip()}"

await ops_test.model.wait_for_idle(
apps=[PRINCIPAL_APP_NAME],
status="active",
raise_on_blocked=True,
timeout=TIMEOUT,
)
await ops_test.model.wait_for_idle(
apps=[GRAFANA_AGENT_APP_NAME],
status="blocked",
timeout=TIMEOUT,
)
await ops_test.model.wait_for_idle(
apps=[APP_NAME],
status="blocked",
timeout=TIMEOUT,
)

# Test initial workload status
Expand Down

0 comments on commit 8be7e96

Please sign in to comment.