X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=modules%2Flibjuju%2Fexamples%2Flivemodel.py;fp=modules%2Flibjuju%2Fexamples%2Flivemodel.py;h=1b10ac92352542c3eb5444c1c1a6631fc824c377;hb=e2051cca7dac12aa09f6ed33555dcc4548c4b52b;hp=0000000000000000000000000000000000000000;hpb=9d18c22a0dc9e295adda50601fc5e2f45d2c9b8a;p=osm%2FN2VC.git diff --git a/modules/libjuju/examples/livemodel.py b/modules/libjuju/examples/livemodel.py new file mode 100644 index 0000000..1b10ac9 --- /dev/null +++ b/modules/libjuju/examples/livemodel.py @@ -0,0 +1,31 @@ +""" +This example: + +1. Connects to the current model +2. Watches the model and prints all changes +3. Runs forever (kill with Ctrl-C) + +""" +from juju.model import Model +from juju import loop + + +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() + # connect to current model with current user, per Juju CLI + await model.connect() + + model.add_observer(on_model_change) + + +if __name__ == '__main__': + # Run loop until the process is manually stopped (watch_model will loop + # forever). + loop.run(watch_model())