@yawetse/pkgcloud
Version:
An infrastructure-as-a-service agnostic cloud library for node.js
165 lines (108 loc) • 4.63 kB
Markdown
Creating a client is straight-forward:
``` js
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.*
[](README.md)
**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:
```js
{
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:
```js
{
type: 'HARD' // optional (defaults to 'SOFT')
}
```
Returns callback with a confirmation
Rebuilds the specifed server with options
Options include:
```js
{
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:
```js
{
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)`