]> git.immae.eu Git - perso/Immae/Projets/Puppet.git/blob - python/reinstall_vps_server.py
Add install scripts
[perso/Immae/Projets/Puppet.git] / python / reinstall_vps_server.py
1 # -*- encoding: utf-8 -*-
2 import json
3 from ovh import ovh
4 import sys
5 import ovh_helper
6
7 # Credentials are stored in ~/.ovh.conf
8 # See ovh/README.rst
9 client = ovh.Client()
10
11 vps_list = client.get('/vps/')
12 if sys.argv[-1] in vps_list:
13 vps = sys.argv[-1]
14 else:
15 print("VPS not in list:")
16 for vps in vps_list:
17 print(vps)
18 sys.exit(1)
19
20 current_distribution = client.get('/vps/{}/distribution'.format(vps))
21
22 available_templates = client.get('/vps/{}/templates'.format(vps))
23
24 def print_templates(client, vps, available_templates):
25 for tid in available_templates:
26 template = client.get('/vps/{}/templates/{}'.format(vps, tid))
27 print("{}: {}".format(template["id"], template["distribution"]))
28
29
30 if "--get-state" in sys.argv:
31 print(client.get('/vps/{}'.format(vps))["state"])
32 elif "--use-current" in sys.argv:
33 if current_distribution['id'] in available_templates:
34 print("Current template still available, using it")
35 result = client.post('/vps/{}/reinstall'.format(vps), templateId=current_distribution['id'])
36 print(result)
37 ovh_helper.show_progress(client, vps, "reinstallVm")
38 else:
39 print("Current template no more available. Chose among:")
40 print_templates(client, vps, available_templates)
41 elif sys.argv[-1] in available_templates:
42 print("Chosen template available, using it")
43 result = client.post('/vps/{}/reinstall'.format(vps), templateId=int(sys.argv[-1]))
44 print(result)
45 ovh_helper.show_progress(client, vps, "reinstallVm")
46 else:
47 print("Chosen template not available. Chose among:")
48 print_templates(client, vps, available_templates)
49
50 # Buy new:
51 # POST /order/cart
52 # ovhSubsidiary FR
53 # POST /order/cart/{cartId}/assign
54 # GET /vps/datacenter?country=FR
55 # Get list of vps:
56 # GET /order/cart/{cartId}/vps
57 # POST /order/cart/{cartId}/vps
58 # duration "P1M"
59 # planCode "vps_ssd_model1"
60 # pricingMode "default"
61 # quantity 1
62 # POST /order/cart/{cartId}/item/{item}/configuration
63 # label: "vps_ssd_datacenter"
64 # value: "gra"
65 # POST /order/cart/{cartId}/item/{item}/configuration
66 # label: "vps_ssd_os"
67 # value: "linux--archlinux--64--en"
68 # POST /order/cart/{cartId}/item/{item}/configuration
69 # label: "AUTO_RENEW_VPS"
70 # value: false
71 # GET /order/cart/{carId}/summary
72 # GET /order/cart/{cartId}/checkout
73 # POST /order/cart/{cartId}/checkout
74 # waiveRetractationPeriod
75
76 # /me/paymentMean ? /me/order/{orderId}/debt/pay ?
77
78 # Reboot in rescue:
79 # PUT /vps/{serviceName}
80 # netbootMode "rescue" / "local"
81 # changer son nom:
82 # displayName: "..."