From 69da835d04e741f4e85da3c473ba86c8801931fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Bouya?= Date: Fri, 16 Mar 2018 19:14:29 +0100 Subject: Merge install scripts --- python/reinstall_ovh_cloud_instance.py | 46 ++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 python/reinstall_ovh_cloud_instance.py (limited to 'python/reinstall_ovh_cloud_instance.py') diff --git a/python/reinstall_ovh_cloud_instance.py b/python/reinstall_ovh_cloud_instance.py new file mode 100644 index 0000000..c0d2617 --- /dev/null +++ b/python/reinstall_ovh_cloud_instance.py @@ -0,0 +1,46 @@ +# -*- encoding: utf-8 -*- +import json +try: + from ovh import ovh +except ImportError: + # In case it's installed globally + import ovh +import sys +from ovh_helper import find_cloud_instance + +# Credentials are stored in ~/.ovh.conf +# See ovh/README.rst +client = ovh.Client() + +project, instance = find_cloud_instance(client, sys.argv[-1]) + +current_image = instance["imageId"] +available_images = client.get('/cloud/project/{}/image'.format(project), + osType="linux", + region=instance["region"]) +available_images_ids = list(map(lambda x: x["id"], available_images)) + +def print_images(available_images): + for image in available_images: + print("{}: {}".format(image["name"], image["id"])) + +def reinstall(image_id): + return client.post('/cloud/project/{}/instance/{}/reinstall'.format(project, instance["id"]), + imageId=image_id) + +if "--get-state" in sys.argv: + print(instance["status"]) +elif "--use-current" in sys.argv: + if current_image in available_images_ids: + print("Current image still available, using it") + print(reinstall(current_image)) + else: + print("Current image no more available. Chose among:") + print_images(available_images) +elif sys.argv[-1] in available_templates: + print("Chosen image available, using it") + print(reinstall(current_image)) +else: + print("Chosen image not available. Chose among:") + print_images(available_images) + -- cgit v1.2.3