A python wrapper for the CloudShare REST API.
Project description
CloudShare API v3 SDK
Quickstart
pip install cloudshare
Then just import cloudshare
and use the function cloudshare.req()
described below.
Interface
This library is written for python 3.
def req(hostname, method, apiId, apiKey, path="", queryParams=None, content=None)
Required parameters are the hostname
, method
, apiId
and apiKey
.
hostname
is usually use.cloudshare.com
unless your using some mock or proxy.
method
is one of "GET", "POST", "PUT", "DELETE", depends on the context of the call.
apiId
and apiKey
are valid CloudShare credentials.
path
is what comes after the '/api/v3'
part of the request url (e.g 'envs'
, 'vms/actions/executePath'
)
queryParams
are a dict of values that translate to a query string and concatenated to the request url
content
is a dict that's encoded to JSON and sent in the body section of the request, in POST and PUT requests.
Examples
example.py
Enter your credentials in the two global variables API_ID
and API_KEY
and run it with python example.py
. The script tries to run the command echo hello world
on the first machine on the first environment it finds (visible to the user's credentials).
List your environments
import cloudshare
res = cloudshare.req(hostname='use.cloudshare.com',
method='GET',
path='envs',
apiId='Your API ID',
apiKey='You API Key')
if (res.status / 100 != 2):
raise Exception(res.status, res.content)
print 'hi! these are my environments:'
print [e['name'] for e in res.content]
Get one environment
import cloudshare
res = cloudshare.req(hostname='use.cloudshare.com',
method='GET',
path='envs/' + envId,
apiId='Your API ID',
apiKey='You API Key')
if (res.status / 100 != 2):
raise Exception(res.status, res.content)
print 'look at my environment details:'
print res.content
Suspend an environment
import cloudshare
res = cloudshare.req(hostname='use.cloudshare.com',
method='PUT',
path='envs/actions/suspend',
queryParams={'envId': envId},
apiId='Your API ID',
apiKey='Your API Key')
if (res.status / 100 != 2):
raise Exception(res.content)
print res.content
Building from source
make setup
make build test
Let's Encrypt Certificates
You might need to install these root certificates if they were not updated by the OS
https://letsencrypt.org/certs/isrgrootx1.der
https://letsencrypt.org/certs/isrg-root-x2.der
https://letsencrypt.org/certs/lets-encrypt-r3.der
More info here:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.