Permalink
Fetching contributors…
Cannot retrieve contributors at this time
51 lines (36 sloc) 1.09 KB
"""
This example:
1. Connects to current model and resets it.
2. Deploys a git unit.
3. Runs an action against the unit.
4. Waits for the action results to come back, then exits.
"""
import asyncio
import logging
from juju import loop
from juju.model import Model
async def run_action(unit):
logging.debug('Running action on unit %s', unit.name)
# unit.run() returns a juju.action.Action instance
action = await unit.run_action('add-repo', repo='myrepo')
# wait for the action to complete
action = await action.wait()
logging.debug("Action results: %s", action.results)
async def main():
model = Model()
await model.connect()
await model.reset(force=True)
app = await model.deploy(
'git',
application_name='git',
series='trusty',
channel='stable',
)
for unit in app.units:
await run_action(unit)
await model.disconnect()
if __name__ == '__main__':
logging.basicConfig(level=logging.DEBUG)
ws_logger = logging.getLogger('websockets.protocol')
ws_logger.setLevel(logging.INFO)
loop.run(main())