]>
Commit | Line | Data |
---|---|---|
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: "..." |