8 def deploy_openvim_without_relations():
10 deployment = amulet.Deployment()
11 deployment.add("mysql", series="trusty")
12 deployment.add("openvim-controller", series="xenial")
13 deployment.add("openvim-compute", charm="local:xenial/openvim-compute", series="xenial")
14 deployment.expose("openvim-controller")
15 deployment.setup(timeout=900)
16 deployment.sentry.wait()
19 deployment.relate("openvim-controller:db", "mysql:db")
20 deployment.relate("openvim-controller:compute", "openvim-compute:compute")
22 def get_openvim_connection():
23 address = deployment.sentry["openvim-controller"][0].info["public-address"]
24 return openvim.connect(address)
26 def get_first_unit_status(service):
27 service_status = deployment.sentry.get_status()["openvim-controller"]
28 unit_status = next(iter(service_status.values()))
31 def test_controller_blocks_without_mysql():
32 unit_status = get_first_unit_status("openvim-controller")
33 workload_status = unit_status["workload-status"]
34 assert workload_status["current"] == "blocked"
35 assert workload_status["message"] == "mysql database required"
37 def test_adding_compute_unit():
38 deployment.add_unit("openvim-compute")
39 deployment.sentry.wait(timeout=900)
40 c = get_openvim_connection()
41 assert len(c.get_hosts()) == 2
43 if __name__ == "__main__":
44 deploy_openvim_without_relations()
45 test_controller_blocks_without_mysql()
47 test_adding_compute_unit()