Create App: https://eu.api.ovh.com/createApp/
Python wrapper project: https://github.com/ovh/python-ovh
Web API control panel: https://eu.api.ovh.com/console/#/
# Where to find the ID of your application created from the portal /me/api/application # If you use the python script to get the customer_key # You can find the ID here, filtering by application ID /me/api/credential # Here you can find your serviceName (project ID) # - I got mad to understand what it was before! /cloud/project
Example of ovh.conf file
[default] endpoint=ovh-eu [ovh-eu] application_key=my_app_key application_secret=my_application_secret ;consumer_key=my_consumer_key ;consumer_key needs to be uncommented once you have got it
Custom python script to allow access only to a specific project under my Cloud OVH account
# -*- encoding: utf-8 -*- import ovh # create a client using configuration client = ovh.Client() # Request full access to /cloud/project/<PROJECT_ID>/ ck = client.new_consumer_key_request() ck.add_recursive_rules(ovh.API_READ_WRITE, '/cloud/project/<PROJECT_ID>/') ## Request full access to ALL #ck = client.new_consumer_key_request() # ck.add_recursive_rules(ovh.API_READ_WRITE, '/') # Request token validation = ck.request() print "Please visit %s to authenticate" % validation['validationUrl'] raw_input("and press Enter to continue...") # Print customerKey print "Btw, your 'consumerKey' is '%s'" % validation['consumerKey']
How to create a script
- Create the app from the link above
- Get the keys and store them safely
- Install the OVH python wrapper
- Create ovh.conf file and use the keys from your app
- Use the python example (or mine) to get the customerKey
- Update ovh.conf with the customKey
- Create your script and have fun! 🙂
Script example to get a list of snapshots:
# -*- encoding: utf-8 -*- import json import ovh serviceName="<PROJECT_ID>" region="GRA3" # Auth client = ovh.Client() result = client.get("/cloud/project/%s/snapshot" % serviceName, flavorType=None, region="%s" % region, ) # Pretty print print json.dumps(result, indent=4)