##Using the OpenStack Compute provider
Creating a client is straight-forward:
var openstack = pkgcloud.compute.createClient({
provider: 'openstack', // required
username: 'your-user-name', // required
password: 'your-password', // required
authUrl: 'your identity service url' // required
});
Note: Due to variances between OpenStack deployments, you may or may not need a region
option.
More options for creating clients
Servers
Lists all servers that are available to use on your OpenStack account
Callback returns f(err, servers)
where servers
is an Array
Creates a server with the options specified
Options are as follows:
{
name: 'serverName', // required
flavor: 'flavor1', // required
image: 'image1', // required
personality: [] // optional
}
Returns the server in the callback f(err, server)
Destroys the specified server
Takes server or serverId as an argument and returns the id of the destroyed server in the callback f(err, serverId)
Gets specified server
Takes server or serverId as an argument and returns the server in the callback
f(err, server)
Reboots the specifed server with options
Options include:
{
type: 'HARD' // optional (defaults to 'SOFT')
}
Returns callback with a confirmation
Rebuilds the specifed server with options
Options include:
{
image: '45a01744-2bcf-4a23-ae88-63317f768a2f', // required; image ID or instance of pkgcloud.core.compute.Image
accessIPv4: '123.45.67.89' // optional; IPv4 address of server
accessIPv6: 'f0::09', // optional; IPv6 address of server
adminPass: 'foobar', // optional; administrator password for the server
metadata: { group: 'webservers' }, // optional; metadata key/value pairs
personality: [ { path: '/etc/banner.txt', contents: 'ICAgICAgDQo' } ], // optional; personality files - path and contents
'OS-DCF:diskConfig': 'AUTO' // optional; disk configuration value ("AUTO" | "MANUAL")
}
Returns callback with a confirmation
Note about backwards compatiblity:
For backwards compatibility, it is also possible to pass an image ID or instance of pkgcloud.core.compute.Image
as the value of the options
argument.
Get the current version of the api returned in a callback f(err, version)
Get the current API limits returned in a callback f(err, limits)
flavors
Returns a list of all possible server flavors available in the callback f(err, flavors)
Returns the specified flavor of OpenStack Images by ID or flavor
object in the callback f(err, flavor)
images
Returns a list of the images available for your account
f(err, images)
Returns the image specified
f(err, image)
Creates an Image based on a server
Options include:
{
name: 'imageName', // required
server: 'serverId' // required
}
Returns the newly created image
f(err, image)
Destroys the specified image and returns a confirmation
f(err, {ok: imageId})
Attaching a volume to a compute instance requires using an openstack compute client, as well as possessing a volume
or volumeId
. Detaching volumes behaves the same way.
Gets an array of volumeAttachments for the provided server.
f(err, volumeAttachments)
Gets the details for a provided server and attachment. attachment
may either be the attachmentId
or an object with attachmentId
as a property.
f(err, volumeAttachment)
Attaches the provided volume
to the server
. volume
may either be the volumeId
or an instance of Volume
.
f(err, volumeAttachment)
Detaches the provided attachment
from the server. attachment
may either be the attachmentId
or an object with attachmentId
as a property. If the volume
is mounted this call will return an err.
f(err)