blob: e653536bc2f18aa6c738bebbbca30c6f4a32413f [file] [log] [blame]
Adam Israelb0943662018-08-02 15:32:00 -04001import sys
2from juju import loop
3from juju.controller import Controller
4
5
6async def main(cloud_name, credential_name):
7 controller = Controller()
8 model = None
9 print('Connecting to controller')
10 # connect to current controller with current user, per Juju CLI
11 await controller.connect()
12 try:
13 print('Adding model')
14 model = await controller.add_model(
15 'test',
16 cloud_name=cloud_name,
17 credential_name=credential_name)
18
19 # verify credential
20 print("Verify model's credential: {}".format(
21 model.info.cloud_credential_tag))
22
23 # verify we can deploy
24 print('Deploying ubuntu')
25 app = await model.deploy('ubuntu-10')
26
27 print('Waiting for active')
28 await model.block_until(
29 lambda: app.units and all(unit.workload_status == 'active'
30 for unit in app.units))
31
32 print('Removing ubuntu')
33 await app.remove()
34 finally:
35 print('Cleaning up')
36 if model:
37 print('Removing model')
38 model_uuid = model.info.uuid
39 await model.disconnect()
40 await controller.destroy_model(model_uuid)
41 print('Disconnecting')
42 await controller.disconnect()
43
44
45if __name__ == '__main__':
46 assert len(sys.argv) > 2, 'Please provide a cloud and credential name'
47 loop.run(main(sys.argv[1], sys.argv[2]))