Files
zaza-openstack-tests/zaza/controller.py
David Ames ea120ee0a5 Add controller module
The controller module allows us to run commands against the controller
including listing all models and getting the cloud configuration name.
2018-05-14 10:49:49 -07:00

48 lines
1.2 KiB
Python

import logging
from juju.controller import Controller
from zaza import sync_wrapper
async def async_add_model(model_name):
controller = Controller()
await controller.connect()
logging.debug("Adding model {}".format(model_name))
model = await controller.add_model(model_name)
await model.connect()
model_name = model.info.name
await model.disconnect()
await controller.disconnect()
return model_name
add_model = sync_wrapper(async_add_model)
async def async_destroy_model(model_name):
controller = Controller()
await controller.connect()
logging.debug("Destroying model {}".format(model_name))
await controller.destroy_model(model_name)
await controller.disconnect()
destroy_model = sync_wrapper(async_destroy_model)
async def async_get_cloud():
controller = Controller()
await controller.connect()
cloud = await controller.get_cloud()
await controller.disconnect()
return cloud
get_cloud = sync_wrapper(async_get_cloud)
async def async_list_models():
controller = Controller()
await controller.connect()
models = await controller.list_models()
await controller.disconnect()
return models
list_models = sync_wrapper(async_list_models)