Example #1
0
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()
Example #2
0
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',
    )
Example #3
0
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()
Example #4
0
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))))
Example #5
0
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)
Example #6
0
async def watch_model():
    model = Model()
    await model.connect_current()

    model.add_observer(on_model_change)