import asyncio
import logging
+import shlex
from pathlib import Path
import pytest
KAFKA_APP = "kafka"
MONGO_DB_CHARM = "mongodb-k8s"
MONGO_DB_APP = "mongodb"
+RO_CHARM = "osm-ro"
RO_APP = "ro"
ZOOKEEPER_CHARM = "zookeeper-k8s"
ZOOKEEPER_APP = "zookeeper"
async def test_lcm_is_deployed(ops_test: OpsTest):
charm = await ops_test.build_charm(".")
resources = {"lcm-image": METADATA["resources"]["lcm-image"]["upstream-source"]}
- ro_charm = await ops_test.build_charm("../osm-ro/")
- ro_resources = {"ro-image": "opensourcemano/ro"}
+ ro_deploy_cmd = f"juju deploy {RO_CHARM} {RO_APP} --resource ro-image=opensourcemano/ro:testing-daily --channel=latest/beta --series=jammy"
await asyncio.gather(
ops_test.model.deploy(
- charm, resources=resources, application_name=LCM_APP, series="focal"
- ),
- ops_test.model.deploy(
- ro_charm, resources=ro_resources, application_name=RO_APP, series="focal"
+ charm, resources=resources, application_name=LCM_APP, series="jammy"
),
+ # RO charm has to be deployed differently since
+ # bug https://github.com/juju/python-libjuju/issues/822
+ # deploys different charms wrt cli
+ ops_test.run(*shlex.split(ro_deploy_cmd), check=True),
ops_test.model.deploy(KAFKA_CHARM, application_name=KAFKA_APP, channel="stable"),
- ops_test.model.deploy(MONGO_DB_CHARM, application_name=MONGO_DB_APP, channel="edge"),
+ ops_test.model.deploy(MONGO_DB_CHARM, application_name=MONGO_DB_APP, channel="5/edge"),
ops_test.model.deploy(ZOOKEEPER_CHARM, application_name=ZOOKEEPER_APP, channel="stable"),
)
logger.info("Adding relations for other components")
await ops_test.model.add_relation(KAFKA_APP, ZOOKEEPER_APP)
- await ops_test.model.add_relation(RO_APP, MONGO_DB_APP)
+ await ops_test.model.add_relation(
+ "{}:mongodb".format(RO_APP), "{}:database".format(MONGO_DB_APP)
+ )
await ops_test.model.add_relation(RO_APP, KAFKA_APP)
- logger.info("Adding relations")
- await ops_test.model.add_relation(LCM_APP, MONGO_DB_APP)
+ logger.info("Adding relations for LCM")
+ await ops_test.model.add_relation(
+ "{}:mongodb".format(LCM_APP), "{}:database".format(MONGO_DB_APP)
+ )
await ops_test.model.add_relation(LCM_APP, KAFKA_APP)
await ops_test.model.add_relation(LCM_APP, RO_APP)
@pytest.mark.abort_on_fail
async def test_lcm_integration_vca(ops_test: OpsTest):
await asyncio.gather(
- ops_test.model.deploy(VCA_CHARM, application_name=VCA_APP, channel="beta"),
+ ops_test.model.deploy(
+ VCA_CHARM, application_name=VCA_APP, channel="latest/beta", series="jammy"
+ ),
)
async with ops_test.fast_forward():
await ops_test.model.wait_for_idle(