MONGO_DB_APP = "mongodb"
KEYSTONE_CHARM = "osm-keystone"
KEYSTONE_APP = "keystone"
+TEMPORAL_CHARM = "osm-temporal"
+TEMPORAL_APP = "temporal"
PROMETHEUS_CHARM = "osm-prometheus"
PROMETHEUS_APP = "prometheus"
ZOOKEEPER_CHARM = "zookeeper-k8s"
ZOOKEEPER_APP = "zookeeper"
INGRESS_CHARM = "nginx-ingress-integrator"
INGRESS_APP = "ingress"
-APPS = [KAFKA_APP, MONGO_DB_APP, MARIADB_APP, ZOOKEEPER_APP, KEYSTONE_APP, PROMETHEUS_APP, NBI_APP]
+APPS = [
+ KAFKA_APP,
+ MONGO_DB_APP,
+ MARIADB_APP,
+ ZOOKEEPER_APP,
+ KEYSTONE_APP,
+ TEMPORAL_APP,
+ PROMETHEUS_APP,
+ NBI_APP,
+]
@pytest.mark.abort_on_fail
charm, resources=resources, application_name=NBI_APP, series="focal"
),
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="stable"),
+ ops_test.model.deploy(MONGO_DB_CHARM, application_name=MONGO_DB_APP, channel="edge"),
ops_test.model.deploy(MARIADB_CHARM, application_name=MARIADB_APP, channel="stable"),
ops_test.model.deploy(ZOOKEEPER_CHARM, application_name=ZOOKEEPER_APP, channel="stable"),
ops_test.model.deploy(PROMETHEUS_CHARM, application_name=PROMETHEUS_APP, channel="stable"),
# prevents setting correctly the resources
cmd = f"juju deploy {KEYSTONE_CHARM} {KEYSTONE_APP} --resource keystone-image=opensourcemano/keystone:12"
await ops_test.run(*shlex.split(cmd), check=True)
+ cmd = f"juju deploy {TEMPORAL_CHARM} {TEMPORAL_APP} --resource temporal-server-image=temporalio/auto-setup:1.20 --series focal --channel=latest/edge"
+ await ops_test.run(*shlex.split(cmd), check=True)
async with ops_test.fast_forward():
await ops_test.model.wait_for_idle(
)
assert ops_test.model.applications[NBI_APP].status == "blocked"
unit = ops_test.model.applications[NBI_APP].units[0]
- assert unit.workload_status_message == "need kafka, mongodb, prometheus, keystone relations"
+ assert (
+ unit.workload_status_message
+ == "need kafka, mongodb, prometheus, keystone, temporal relations"
+ )
logger.info("Adding relations for other components")
await ops_test.model.add_relation(KAFKA_APP, ZOOKEEPER_APP)
await ops_test.model.add_relation(MARIADB_APP, KEYSTONE_APP)
+ await ops_test.model.add_relation(MARIADB_APP, f"{TEMPORAL_APP}:db")
logger.info("Adding relations")
await ops_test.model.add_relation(NBI_APP, MONGO_DB_APP)
await ops_test.model.add_relation(NBI_APP, KAFKA_APP)
await ops_test.model.add_relation(NBI_APP, PROMETHEUS_APP)
await ops_test.model.add_relation(NBI_APP, KEYSTONE_APP)
+ await ops_test.model.add_relation(NBI_APP, TEMPORAL_APP)
async with ops_test.fast_forward():
await ops_test.model.wait_for_idle(
@pytest.mark.abort_on_fail
@pytest.mark.parametrize(
- "relation_to_remove", [KAFKA_APP, MONGO_DB_APP, PROMETHEUS_APP, KEYSTONE_APP]
+ "relation_to_remove", [KAFKA_APP, MONGO_DB_APP, PROMETHEUS_APP, KEYSTONE_APP, TEMPORAL_APP]
)
async def test_nbi_blocks_without_relation(ops_test: OpsTest, relation_to_remove):
logger.info("Removing relation: %s", relation_to_remove)