Esta web utiliza cookies, puedes ver nuestra política de cookies aquí. Si continuas navegando estás aceptándola

API OVH con Python


OVH es uno de los ISPs de mayor importancia a nivel mundial, proporciona servicios de todo tipo, desde servidores y dominios a cuentas de mail o servidores con GPUs para procesamiento gráfico. En este artículo aprenderemos como utilizar su API desde un script en python, de este modo seremos capaces de automatizar multitud de tareas administrativas.

 

El primer paso será crear una app, para ello nos dirigimos a:

https://eu.api.ovh.com/createApp/

Nos proporcionarán dos parámetros:

  • APPLICATION_KEY
  • APPLICATION_SECRET

Asignamos los permisos que necesita nuestra app:

curl -XPOST -H"X-Ovh-Application: APPLICATION_KEY" -H "Content-type: application/json" https://eu.api.ovh.com/1.0/auth/credential  -d '{
    "accessRules": [{"method":"GET","path":"/*"},{"method":"POST","path":"/*"},{"method":"PUT","path":"/*"},{"method":"DELETE","path":"/*"}]
}'

Nos responderá con una URL y un CONSUMER_KEY:

"validationUrl":"https://eu.api.ovh.com/auth/?credentialToken=CREDENTIAL_TOKEN","consumerKey":"CONSUMER_KEY","state":"pendingValidation"}

Visitamos la validationUrl y le damos el tiempo de validez que necesitemos.

Instalamos la librería de python para poder interactuar con la API:

pip install ovh

Escribimos un script de test:

vi test.py

import ovh
import json
APPLICATION_KEY = 'XXXXXXXXXXXXXXX'
APPLICATION_SECRET = 'YYYYYYYYYYYYYYY'
CONSUMER_KEY = 'ZZZZZZZZZZZZZZZZZZZ'
client = ovh.Client(
    endpoint = 'ovh-eu',
    application_key = APPLICATION_KEY,
    application_secret = APPLICATION_SECRET,
    consumer_key = CONSUMER_KEY,
)
result = client.get('/me')
print json.dumps(result, indent=4)

Todas las llamadas están documentadas con ejemplos incluidos en:

https://api.ovh.com/console/

Si no queremos tener las credenciales en el propio script podemos tenerlo en un fichero externo que podríamos incluir en el gitignore, de este modo los scripts se podrían commitear a un repo de git sin subir passwords.

En el path del script:

vi ovh.conf

[default]
; general configuration: default endpoint
endpoint=ovh-eu

[ovh-eu]
application_key=APPLICATION_KEY
application_secret=APPLICATION_SECRET
consumer_key=CONSUMER_KEY

Y el script quedaría del siguiente modo:

vi test.py

import ovh
import json
client = ovh.Client()

result = client.get('/me')
print json.dumps(result, indent=4)

Autor: Kr0m -- 28/06/2017 23:24:27