CloudFrames Compute Driver Documentation¶
Connecting to the CloudFrames installation¶
This will tell you how to interpret the available arguments:
- key - The username to the cloudapi
- secret - The password to the cloudapi
- secure - This should always be False as the cloudapi doesn’t support ssl
- host - The hostname or ip address we can reach the cloudapi on
- port - The port the cloudapi runs on (defaults to 80 for http)
- url - As an alternative to the above, you can pass the full cloudapi url (e.g. http://admin:admin@cloudframes:80/appserver/xmlrpc)
Examples¶
1. Creating the connection¶
You can set up the connection using either the complete url to the api.
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
CloudFrames = get_driver(Provider.CLOUDFRAMES)
driver = CloudFrames(url='http://admin:admin@cloudframes:80/appserver/xmlrpc')
Or by specifying the individual components which would make up the url.
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
CloudFrames = get_driver(Provider.CLOUDFRAMES)
driver = CloudFrames(key='admin', secret='admin', secure=False,
host='cloudframes', port=80)
2. Implemented functionality¶
import uuid
from libcloud.compute.types import Provider, NodeState
from libcloud.compute.providers import get_driver
CloudFrames = get_driver(Provider.CLOUDFRAMES)
driver = CloudFrames(url='http://admin:admin@cloudframes:80/appserver/xmlrpc')
# get an available location
location = driver.list_locations()[0]
# and an image
image = driver.list_images()[0]
# as well as a size
size = driver.list_sizes()[0]
# use these to create a node
node = driver.create_node(image=image, name='TEST_%s' % uuid.uuid4(),
size=size, location=location)
# snapshot a node, rollback to the snapshot and destroy the snaphost
snapshot = driver.ex_snapshot_node(node)
driver.ex_rollback_node(node, snapshot)
driver.ex_destroy_snapshot(node, snapshot)
# list running nodes
nodes = [n for n in driver.list_nodes()
if n.state == NodeState.RUNNING]
# reboot node
driver.reboot_node(node)
# destroy the node
driver.destroy_node(node)