-import asyncio
+"""
+This example:
-from juju.model import Model
-from juju.client.connection import Connection
+1. Connects to the current model
+2. Watches the model and prints all changes
+3. Runs forever (kill with Ctrl-C)
+"""
+import asyncio
-loop = asyncio.get_event_loop()
-conn = loop.run_until_complete(Connection.connect_current())
+from juju.model import Model
-def on_model_change(delta, old, new, model):
+async def on_model_change(delta, old, new, model):
print(delta.entity, delta.type, delta.data)
print(old)
print(new)
print(model)
+
async def watch_model():
- model = Model(conn)
+ model = Model()
+ await model.connect_current()
+
model.add_observer(on_model_change)
- await model.watch()
-loop.run_until_complete(watch_model())
+
+loop = asyncio.get_event_loop()
+loop.create_task(watch_model())
+loop.run_forever()