]> git.immae.eu Git - perso/Immae/Projets/Puppet.git/blame - python/buy_ovh_vps_ssd.py
Add a way to specify a port for backup hosts
[perso/Immae/Projets/Puppet.git] / python / buy_ovh_vps_ssd.py
CommitLineData
4aa9e5f6
IB
1# -*- encoding: utf-8 -*-
2import json
3try:
4 from ovh import ovh
5except ImportError:
6 # In case it's installed globally
7 import ovh
8import sys
9import ovh_helper
10
11# Credentials are stored in ~/.ovh.conf
12# See ovh/README.rst
13client = ovh.Client()
14
15# Create a cart
16cart = client.post('/order/cart', ovhSubsidiary="FR")
17cart_id = cart["cartId"]
18
19# Assign it to my user
20client.post('/order/cart/{}/assign'.format(cart_id))
21
22# list of vps:
23# client.get('/order/cart/{}/vps'.format(cart_id))
24item = client.post('/order/cart/{}/vps'.format(cart_id),
25 duration="P1M",
26 planCode="vps_ssd_model1",
27 pricingMode="default",
28 quantity=1)
29item_id = item["itemId"]
30
31# Datacenter, OS, auto-renew
32client.post('/order/cart/{}/item/{}/configuration'.format(cart_id, item_id),
33 label="vps_ssd_datacenter",
34 value="gra")
35client.post('/order/cart/{}/item/{}/configuration'.format(cart_id, item_id),
36 label="vps_ssd_os",
37 value="linux--archlinux--64--en")
38client.post('/order/cart/{}/item/{}/configuration'.format(cart_id, item_id),
39 label="AUTO_RENEW_VPS",
40 value=False)
41
42#summary = client.get('/order/cart/{}/summary'.format(cart_id))
43#checkout = client.get('/order/cart/{}/checkout'.format(cart_id))
44
45# Checkout
46order = client.post('/order/cart/{}/checkout'.format(cart_id),
47 waiveRetractationPeriod=True)
48order_id = order["orderId"]
49print(order_id)
50
ef18bb0b
IB
51payment_mean = client.get('/me/order/{}/availableRegisteredPaymentMean'.format(order_id))[0]['paymentMean']
52payment_mean_id = client.get('/me/paymentMean/{}'.format(payment_mean))[0]
4aa9e5f6 53
ef18bb0b
IB
54payment_mean_status = client.get('/me/paymentMean/{}/{}'.format(payment_mean, payment_mean_id))
55
56if payment_mean_status["state"] != "valid":
57 raise "Bouh"
58
59paid_order = client.post('/me/order/{}/payWithRegisteredPaymentMean'.format(order_id),
60 paymentMean=payment_mean, paymentMeanId=payment_mean_id)
61
62if 'paymentDate' in paid_order:
63 print("successful")