cloudshare

A python wrapper for the CloudShare REST API.


Keywords
cloudshare, cloud, SDK, REST, API
License
Other
Install
pip install cloudshare==0.1.3

Documentation

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:

https://letsencrypt.org/certificates/