--- /dev/null
+"""
+This example:
+
+1. Connects to the current model
+2. Deploy a charm and waits until it reports itself active
+3. Destroys the unit and application
+
+"""
+from juju import loop
+from juju.model import Model
+
+
+async def main():
+ model = Model()
+ print('Connecting to model')
+ # connect to current model with current user, per Juju CLI
+ await model.connect()
+
+ try:
+ print('Deploying ubuntu')
+ application = await model.deploy(
+ 'ubuntu-10',
+ application_name='ubuntu',
+ series='trusty',
+ channel='stable',
+ )
+
+ print('Waiting for active')
+ await model.block_until(
+ lambda: all(unit.workload_status == 'active'
+ for unit in application.units))
+
+ print('Removing ubuntu')
+ await application.remove()
+ finally:
+ print('Disconnecting from model')
+ await model.disconnect()
+
+
+if __name__ == '__main__':
+ loop.run(main())