X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FN2VC.git;a=blobdiff_plain;f=modules%2Flibjuju%2Fexamples%2Fcredential.py;fp=modules%2Flibjuju%2Fexamples%2Fcredential.py;h=e653536bc2f18aa6c738bebbbca30c6f4a32413f;hp=0000000000000000000000000000000000000000;hb=b09436613925b2eb334c10f219b743868e4b3fe5;hpb=421c4a23dc5e60db9596b79ea87cdc19cc463e9b diff --git a/modules/libjuju/examples/credential.py b/modules/libjuju/examples/credential.py new file mode 100644 index 0000000..e653536 --- /dev/null +++ b/modules/libjuju/examples/credential.py @@ -0,0 +1,47 @@ +import sys +from juju import loop +from juju.controller import Controller + + +async def main(cloud_name, credential_name): + controller = Controller() + model = None + print('Connecting to controller') + # connect to current controller with current user, per Juju CLI + await controller.connect() + try: + print('Adding model') + model = await controller.add_model( + 'test', + cloud_name=cloud_name, + credential_name=credential_name) + + # verify credential + print("Verify model's credential: {}".format( + model.info.cloud_credential_tag)) + + # verify we can deploy + print('Deploying ubuntu') + app = await model.deploy('ubuntu-10') + + print('Waiting for active') + await model.block_until( + lambda: app.units and all(unit.workload_status == 'active' + for unit in app.units)) + + print('Removing ubuntu') + await app.remove() + finally: + print('Cleaning up') + if model: + print('Removing model') + model_uuid = model.info.uuid + await model.disconnect() + await controller.destroy_model(model_uuid) + print('Disconnecting') + await controller.disconnect() + + +if __name__ == '__main__': + assert len(sys.argv) > 2, 'Please provide a cloud and credential name' + loop.run(main(sys.argv[1], sys.argv[2]))