X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=python%2Fget_initial_configuration_cloud_instance.py;fp=python%2Fget_initial_configuration_cloud_instance.py;h=41577163e96fe95f43d9993e59625e0a6f0a210c;hb=df0c42af3366f013afa1ee13eed04307260beae2;hp=0000000000000000000000000000000000000000;hpb=fb64d090c9bdb42bbb8b847952c167dbd4c3215a;p=perso%2FImmae%2FProjets%2FPuppet.git diff --git a/python/get_initial_configuration_cloud_instance.py b/python/get_initial_configuration_cloud_instance.py new file mode 100644 index 0000000..4157716 --- /dev/null +++ b/python/get_initial_configuration_cloud_instance.py @@ -0,0 +1,41 @@ +# -*- encoding: utf-8 -*- +import json +try: + from ovh import ovh +except ImportError: + # In case it's installed globally + import ovh +import sys + +infos = {} + +# Credentials are stored in ~/.ovh.conf +# See ovh/README.rst +client = ovh.Client() + +projects_list = client.get('/cloud/project/') +if len(projects_list) > 1: + print("More than one project is not supported, taking the first one") +project = projects_list[0] +instances_list = client.get('/cloud/project/{}/instance'.format(project)) +instances = dict(map(lambda x: (x["id"], x), instances_list)) +if sys.argv[-1] in instances: + instance = instances[sys.argv[-1]] +else: + print("Instance not in list:") + for instance in instances_list: + print("{}: {}".format(instance["name"], instance["id"])) + sys.exit(1) + +infos["ips"] = {} +for ip_infos in instance["ipAddresses"]: + ip_infos["ipAddress"] = ip_infos.pop("ip") + ip_infos["gateway"] = ip_infos.pop("gatewayIp") + + if ip_infos["version"] == 4: + infos["ips"]["v4"] = ip_infos + else: + infos["ips"]["v6"] = ip_infos + infos["ips"]["v6"]["mask"] = 128 + +print(json.dumps(infos))