async def main(): model = Model() # connect to current model with current user, per Juju CLI await model.connect() try: model.add_observer(MyRemoveObserver()) await model.reset(force=True) model.add_observer(MyModelObserver()) ubuntu_app = await model.deploy( 'ubuntu', application_name='ubuntu', series='trusty', channel='stable', ) ubuntu_app.on_change(asyncio.coroutine( lambda delta, old_app, new_app, model: print('App changed: {}'.format(new_app.entity_id)) )) ubuntu_app.on_remove(asyncio.coroutine( lambda delta, old_app, new_app, model: print('App removed: {}'.format(old_app.entity_id)) )) ubuntu_app.on_unit_add(asyncio.coroutine( lambda delta, old_unit, new_unit, model: print('Unit added: {}'.format(new_unit.entity_id)) )) ubuntu_app.on_unit_remove(asyncio.coroutine( lambda delta, old_unit, new_unit, model: print('Unit removed: {}'.format(old_unit.entity_id)) )) unit_a, unit_b = await ubuntu_app.add_units(count=2) unit_a.on_change(asyncio.coroutine( lambda delta, old_unit, new_unit, model: print('Unit changed: {}'.format(new_unit.entity_id)) )) await model.deploy( 'nrpe', application_name='nrpe', series='trusty', channel='stable', # subordinates must be deployed without units num_units=0, ) my_relation = await model.add_relation( 'ubuntu', 'nrpe', ) my_relation.on_remove(asyncio.coroutine( lambda delta, old_rel, new_rel, model: print('Relation removed: {}'.format(old_rel.endpoints)) )) finally: await model.disconnect()
async def run(): model = Model() await model.connect_current() await model.reset(force=True) model.add_observer(MyModelObserver()) await model.deploy( 'ubuntu-0', service_name='ubuntu', series='trusty', channel='stable', )
async def main(): model = Model() # connect to current model with current user, per Juju CLI await model.connect() try: model.add_observer(MyRemoveObserver()) await model.reset(force=True) model.add_observer(MyModelObserver()) ubuntu_app = await model.deploy( 'cs:ubuntu', application_name='ubuntu', series='trusty', channel='stable', ) ubuntu_app.on_change( asyncio.coroutine(lambda delta, old_app, new_app, model: print( 'App changed: {}'.format(new_app.entity_id)))) ubuntu_app.on_remove( asyncio.coroutine(lambda delta, old_app, new_app, model: print( 'App removed: {}'.format(old_app.entity_id)))) ubuntu_app.on_unit_add( asyncio.coroutine(lambda delta, old_unit, new_unit, model: print( 'Unit added: {}'.format(new_unit.entity_id)))) ubuntu_app.on_unit_remove( asyncio.coroutine(lambda delta, old_unit, new_unit, model: print( 'Unit removed: {}'.format(old_unit.entity_id)))) unit_a, unit_b = await ubuntu_app.add_units(count=2) unit_a.on_change( asyncio.coroutine(lambda delta, old_unit, new_unit, model: print( 'Unit changed: {}'.format(new_unit.entity_id)))) await model.deploy( 'cs:nrpe', application_name='nrpe', series='trusty', channel='stable', # subordinates must be deployed without units num_units=0, ) my_relation = await model.add_relation( 'ubuntu', 'nrpe', ) my_relation.on_remove( asyncio.coroutine(lambda delta, old_rel, new_rel, model: print( 'Relation removed: {}'.format(old_rel.endpoints)))) finally: await model.disconnect()
async def run(): model = Model() await model.connect_current() model.add_observer(MyRemoveObserver()) await model.reset(force=True) model.add_observer(MyModelObserver()) ubuntu_app = await model.deploy( 'ubuntu', service_name='ubuntu', series='trusty', channel='stable', ) ubuntu_app.on_change( asyncio.coroutine(lambda delta, old_app, new_app, model: print( 'App changed: {}'.format(new_app.entity_id)))) ubuntu_app.on_remove( asyncio.coroutine(lambda delta, old_app, new_app, model: print( 'App removed: {}'.format(old_app.entity_id)))) ubuntu_app.on_unit_add( asyncio.coroutine(lambda delta, old_unit, new_unit, model: print( 'Unit added: {}'.format(new_unit.entity_id)))) ubuntu_app.on_unit_remove( asyncio.coroutine(lambda delta, old_unit, new_unit, model: print( 'Unit removed: {}'.format(old_unit.entity_id)))) unit_a, unit_b = await ubuntu_app.add_units(count=2) unit_a.on_change( asyncio.coroutine(lambda delta, old_unit, new_unit, model: print( 'Unit changed: {}'.format(new_unit.entity_id)))) await model.deploy( 'nrpe', service_name='nrpe', series='trusty', channel='stable', num_units=1, ) my_relation = await model.add_relation( 'ubuntu', 'nrpe', ) my_relation.on_remove( asyncio.coroutine(lambda delta, old_rel, new_rel, model: print( 'Relation removed: {}'.format(old_rel.endpoints))))
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)
async def watch_model(): model = Model() await model.connect_current() model.add_observer(on_model_change)