Skip to content
This repository has been archived by the owner on Apr 2, 2024. It is now read-only.

Latest commit

 

History

History
98 lines (78 loc) · 2.97 KB

getting-started-compute.md

File metadata and controls

98 lines (78 loc) · 2.97 KB

HP Helion icon

Getting started with pkgcloud & HP Helion Cloud

The HP node.js SDK is available as part of pkgcloud, a multi-provider cloud provisioning package

Pkgcloud currently supports HP Helion Cloud Compute and HP Helion Cloud Object Storage, and HP Helion Cloud Networking.

To install pkgcloud from the command line:

npm install pkgcloud

Don't have npm or node yet? Get it now.

Using pkgcloud

In this example, we're going to create a HP Helion Cloud Compute client, create two servers, and then output their details to the command line.

Note: We're going to use underscore.js for some convenience functions.

var pkgcloud = require('pkgcloud'),
    _ = require('underscore');

// create our client with your openstack credentials
var client = pkgcloud.compute.createClient({
  provider: 'hp',
  username: 'your-user-name',
  apiKey: 'your-api-key',
  region: 'region of identity service',
  authUrl: 'https://your-identity-service'
});

// first we're going to get our flavors
client.getFlavors(function (err, flavors) {
    if (err) {
        console.dir(err);
        return;
    }

    // then get our base images
    client.getImages(function (err, images) {
        if (err) {
            console.dir(err);
            return;
        }

         // Pick a medium instance flavor
         // see here for more instance flavors: http://www.hpcloud.com/products-services/hp-cloud-compute-13_5
        var flavor = _.findWhere(flavors, { name: 'standard.medium' });

        // Pick an image based on CentOS 6.3
        var image = _.findWhere(images, { name: 'CentOS 6.3 Server 64-bit 20130116' });

        // Create our first server
        client.createServer({
            name: 'server1',
            image: image,
            flavor: flavor
        }, handleServerResponse);

        // Create our second server
        client.createServer({
            name: 'server2',
            image: image,
            flavor: flavor
        }, handleServerResponse);
    });
});

// This function will handle our server creation,
// as well as waiting for the server to come online after we've
// created it.
function handleServerResponse(err, server) {
    if (err) {
        console.dir(err);
        return;
    }

    console.log('SERVER CREATED: ' + server.name + ', waiting for active status');

    // Wait for status: ACTIVE on our server, and then callback
    server.setWait({ status: 'ACTIVE' }, 5000, function (err) {
        if (err) {
            console.dir(err);
            return;
        }

        console.log('SERVER INFO');
        console.log(server.name);
        console.log(server.status);
        console.log(server.id);

        console.log('Make sure you DELETE server: ' + server.id +
            ' in order to not accrue billing charges');
    });
}