Fix livemodel example
authorTim Van Steenburgh <tvansteenburgh@gmail.com>
Fri, 7 Oct 2016 16:11:06 +0000 (12:11 -0400)
committerTim Van Steenburgh <tvansteenburgh@gmail.com>
Fri, 7 Oct 2016 16:11:06 +0000 (12:11 -0400)
examples/livemodel.py

index 2330a58..7f184c3 100644 (file)
@@ -1,22 +1,30 @@
-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()