de0460c20db922e9a369ab6b1c2f244a21b1c628
[osm/N2VC.git] / examples / controller.py
1 """
2 This example:
3
4 1. Connects to current controller.
5 2. Creates a new model.
6 3. Deploys an application on the new model.
7
8 """
9 import asyncio
10 import logging
11
12 from juju.model import Model, ModelObserver
13 from juju.controller import Controller
14
15
16 class MyModelObserver(ModelObserver):
17 async def on_change(self, delta, old, new, model):
18 pass
19
20
21 async def run():
22 controller = Controller()
23 await controller.connect_current()
24 model = await controller.add_model(
25 'libjuju-test',
26 'cloud-aws',
27 'cloudcred-aws_tvansteenburgh@external_aws-tim',
28 )
29 await model.deploy(
30 'ubuntu-0',
31 service_name='ubuntu',
32 series='trusty',
33 channel='stable',
34 )
35 await model.disconnect()
36 await controller.disconnect()
37 model.loop.stop()
38
39
40 logging.basicConfig(level=logging.DEBUG)
41 ws_logger = logging.getLogger('websockets.protocol')
42 ws_logger.setLevel(logging.INFO)
43 loop = asyncio.get_event_loop()
44 loop.set_debug(False)
45 loop.create_task(run())
46 loop.run_forever()