Connect with Joyent‘s SmartDataCenter CloudAPI via Python, using secure http-signature signed requests. It enables you to programmatically provision and otherwise control machines within Joyent‘s public cloud.
This is a third-party effort.
This module currently supports:
It attempts to provide Pythonic objects (for Data Centers, Machines and Snapshots) and convenience methods only when appropriate, and otherwise deals with string identifiers or dicts as lightweight objects.
Optional:
We assume that json is present because requests now requires py2.6 and up.
pip install smartdc
This requires a Joyent Public Cloud account with valid payment information and at least one SSH key uploaded. The example as presented should cost a maximum of 0.01USD:
from smartdc import DataCenter
sdc = DataCenter(location='us-sw-1', key_id='/accountname/keys/keyname')
sdc.datasets()
sm = sdc.create_machine(name='test', dataset='sdc:sdc:standard:1.0.7',
package='g3-standard-0.25-smartos')
sm.poll_until('running')
import urllib2
urllib2.urlopen('http://' + sm.public_ips[0]).headers.dict
sm.stop()
sm.poll_until('stopped')
sm.delete()
Connecting with Telefónica’s InstantServers:
from smartdc import DataCenter, TELEFONICA_LOCATIONS
mad = DataCenter(location='eu-mad-1',
known_locations=TELEFONICA_LOCATIONS,
key_id='/accountname/keys/keyname')
mad.default_package()
A colleague and I wanted something Pythonic to fit into our preferred toolchain, and the easiest approach was to build it myself. Requests made some aspects stupidly easy, which is why I created the dependency for the first version. The colleague wanted integration with ssh-agent, and using ssh was the easiest path to that.
MIT