""" This example: 1. Connects to current controller. 2. Creates a new model. 3. Deploys an application on the new model. 4. Disconnects from the model 5. Destroys the model """ import logging from juju.controller import Controller from juju import loop async def main(): controller = Controller() # connect to current controller with current user, per Juju CLI await controller.connect() model = await controller.add_model( 'my-test-model', 'aws', 'aws-tim', ) await model.deploy( 'ubuntu-0', application_name='ubuntu', series='trusty', channel='stable', ) await model.disconnect() await controller.destroy_model(model.info.uuid) await controller.disconnect() if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG) ws_logger = logging.getLogger('websockets.protocol') ws_logger.setLevel(logging.INFO) loop.run(main())