diff options
Diffstat (limited to 'python/reinstall_vps_server.py')
-rw-r--r-- | python/reinstall_vps_server.py | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/python/reinstall_vps_server.py b/python/reinstall_vps_server.py new file mode 100644 index 0000000..2eea203 --- /dev/null +++ b/python/reinstall_vps_server.py | |||
@@ -0,0 +1,82 @@ | |||
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: "..." | ||