rename to 'sdc'
This commit is contained in:
parent
0317fdb0db
commit
d10b13cbfa
@ -1 +1 @@
|
|||||||
# node-joyentcloud CLI Changelog
|
# node-sdc CLI Changelog
|
||||||
|
4
Makefile
4
Makefile
@ -1,13 +1,13 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 2014, Joyent, Inc. All rights reserved.
|
# Copyright (c) 2014, Joyent, Inc. All rights reserved.
|
||||||
#
|
#
|
||||||
# Makefile for node-joyentcloud
|
# Makefile for node-sdc
|
||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Vars, Tools, Files, Flags
|
# Vars, Tools, Files, Flags
|
||||||
#
|
#
|
||||||
JS_FILES := bin/joyentcloud \
|
JS_FILES := bin/sdc \
|
||||||
$(shell find lib -name '*.js' | grep -v '/tmp/')
|
$(shell find lib -name '*.js' | grep -v '/tmp/')
|
||||||
JSL_CONF_NODE = tools/jsl.node.conf
|
JSL_CONF_NODE = tools/jsl.node.conf
|
||||||
JSL_FILES_NODE = $(JS_FILES)
|
JSL_FILES_NODE = $(JS_FILES)
|
||||||
|
12
README.md
12
README.md
@ -1,17 +1,19 @@
|
|||||||
`joyent` is a CLI for the Joyent Public Cloud (https://my.joyentcloud.com).
|
`sdc` is a CLI for Joyent SmartDataCenter and the
|
||||||
|
Joyent Public Cloud (<https://my.joyentcloud.com>,
|
||||||
|
<http://www.joyent.com/products/compute-service>).
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
1. Install [node.js](http://nodejs.org/).
|
1. Install [node.js](http://nodejs.org/).
|
||||||
2. `npm install -g joyent`
|
2. `npm install -g sdc`
|
||||||
|
|
||||||
Verify that installed and is on your PATH:
|
Verify that installed and is on your PATH:
|
||||||
|
|
||||||
$ joyent --version
|
$ sdc --version
|
||||||
joyent CLI 1.0.0
|
sdc CLI 1.0.0
|
||||||
|
|
||||||
Before you can used the CLI you'll need a Joyent account, an SSH key uploaded
|
Before you can used the CLI you'll need a Joyent account, an SSH key uploaded
|
||||||
and `joyent` configured with those account details.
|
and `sdc` configured with those account details.
|
||||||
|
|
||||||
# Setup
|
# Setup
|
||||||
|
|
||||||
|
1
TODO.md
1
TODO.md
@ -1,5 +1,6 @@
|
|||||||
# first
|
# first
|
||||||
|
|
||||||
|
- lib/cloudapi2.js and drop using node-smartdc
|
||||||
- machines:
|
- machines:
|
||||||
- short default output
|
- short default output
|
||||||
- long '-l' output, -H, -o, -s
|
- long '-l' output, -H, -o, -s
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2014 Joyent Inc. All rights reserved.
|
* Copyright (c) 2014 Joyent Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* joyentcloud
|
* sdc command
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var p = console.log;
|
var p = console.log;
|
22
lib/cli.js
22
lib/cli.js
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2014 Joyent Inc. All rights reserved.
|
* Copyright (c) 2014 Joyent Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* The 'joyentcloud' CLI class.
|
* The 'sdc' CLI class.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var p = console.log;
|
var p = console.log;
|
||||||
@ -21,14 +21,14 @@ var cmdln = require('cmdln'),
|
|||||||
|
|
||||||
var common = require('./common');
|
var common = require('./common');
|
||||||
var errors = require('./errors');
|
var errors = require('./errors');
|
||||||
var JoyentCloud = require('./joyentcloud');
|
var SDC = require('./sdc');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//---- globals
|
//---- globals
|
||||||
|
|
||||||
var pkg = require('../package.json');
|
var pkg = require('../package.json');
|
||||||
var name = 'joyentcloud';
|
var name = 'sdc';
|
||||||
var log = bunyan.createLogger({
|
var log = bunyan.createLogger({
|
||||||
name: name,
|
name: name,
|
||||||
serializers: bunyan.stdSerializers,
|
serializers: bunyan.stdSerializers,
|
||||||
@ -75,11 +75,11 @@ CLI.prototype.init = function (opts, args, callback) {
|
|||||||
log.src = true;
|
log.src = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.__defineGetter__('jc', function () {
|
this.__defineGetter__('sdc', function () {
|
||||||
if (self._jc === undefined) {
|
if (self._sdc === undefined) {
|
||||||
self._jc = new JoyentCloud({log: log, profile: opts.profile});
|
self._sdc = new SDC({log: log, profile: opts.profile});
|
||||||
}
|
}
|
||||||
return self._jc;
|
return self._sdc;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Cmdln class handles `opts.help`.
|
// Cmdln class handles `opts.help`.
|
||||||
@ -95,8 +95,8 @@ CLI.prototype.do_profile = function (subcmd, opts, args, callback) {
|
|||||||
return callback(new Error('too many args: ' + args));
|
return callback(new Error('too many args: ' + args));
|
||||||
}
|
}
|
||||||
|
|
||||||
var profs = common.deepObjCopy(this.jc.profiles);
|
var profs = common.deepObjCopy(this.sdc.profiles);
|
||||||
var currProfileName = this.jc.profile.name;
|
var currProfileName = this.sdc.profile.name;
|
||||||
for (var i = 0; i < profs.length; i++) {
|
for (var i = 0; i < profs.length; i++) {
|
||||||
profs[i].curr = (profs[i].name === currProfileName ? '*' : ' ');
|
profs[i].curr = (profs[i].name === currProfileName ? '*' : ' ');
|
||||||
profs[i].dcs = (profs[i].dcs ? profs[i].dcs : ['all'])
|
profs[i].dcs = (profs[i].dcs ? profs[i].dcs : ['all'])
|
||||||
@ -143,7 +143,7 @@ CLI.prototype.do_dcs = function (subcmd, opts, args, callback) {
|
|||||||
return callback(new Error('too many args: ' + args));
|
return callback(new Error('too many args: ' + args));
|
||||||
}
|
}
|
||||||
|
|
||||||
var dcs = this.jc.config.dcs;
|
var dcs = this.sdc.config.dcs;
|
||||||
var dcsArray = Object.keys(dcs).map(
|
var dcsArray = Object.keys(dcs).map(
|
||||||
function (n) { return {name: n, url: dcs[n]}; });
|
function (n) { return {name: n, url: dcs[n]}; });
|
||||||
if (opts.json) {
|
if (opts.json) {
|
||||||
@ -190,7 +190,7 @@ CLI.prototype.do_machines = function (subcmd, opts, args, callback) {
|
|||||||
|
|
||||||
var machines = [];
|
var machines = [];
|
||||||
var errs = [];
|
var errs = [];
|
||||||
var res = this.jc.listMachines();
|
var res = this.sdc.listMachines();
|
||||||
res.on('data', function (dc, dcMachines) {
|
res.on('data', function (dc, dcMachines) {
|
||||||
for (var i = 0; i < dcMachines.length; i++) {
|
for (var i = 0; i < dcMachines.length; i++) {
|
||||||
dcMachines[i].dc = dc;
|
dcMachines[i].dc = dc;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2014, Joyent, Inc. All rights reserved.
|
* Copyright (c) 2014, Joyent, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Core JoyentCloud driver class.
|
* Core SDC driver class.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var p = console.log;
|
var p = console.log;
|
||||||
@ -18,17 +18,17 @@ var loadConfigSync = require('./config').loadConfigSync;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
//---- JoyentCloud class
|
//---- SDC class
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a JoyentCloud client.
|
* Create a SDC client.
|
||||||
*
|
*
|
||||||
* @param options {Object}
|
* @param options {Object}
|
||||||
* - log {Bunyan Logger}
|
* - log {Bunyan Logger}
|
||||||
* - profile {String} Optional. Name of profile to use. Defaults to
|
* - profile {String} Optional. Name of profile to use. Defaults to
|
||||||
* 'defaultProfile' in the config.
|
* 'defaultProfile' in the config.
|
||||||
*/
|
*/
|
||||||
function JoyentCloud(options) {
|
function SDC(options) {
|
||||||
assert.object(options, 'options');
|
assert.object(options, 'options');
|
||||||
assert.object(options.log, 'options.log');
|
assert.object(options.log, 'options.log');
|
||||||
assert.optionalString(options.profile, 'options.profile');
|
assert.optionalString(options.profile, 'options.profile');
|
||||||
@ -42,7 +42,7 @@ function JoyentCloud(options) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
JoyentCloud.prototype.setDefaultProfile =
|
SDC.prototype.setDefaultProfile =
|
||||||
function setDefaultProfile(name, callback) {
|
function setDefaultProfile(name, callback) {
|
||||||
if (!this.getProfile(name)) {
|
if (!this.getProfile(name)) {
|
||||||
return callback(new Error('no such profile: ' + name));
|
return callback(new Error('no such profile: ' + name));
|
||||||
@ -52,7 +52,7 @@ function setDefaultProfile(name, callback) {
|
|||||||
callback();
|
callback();
|
||||||
};
|
};
|
||||||
|
|
||||||
JoyentCloud.prototype.getProfile = function getProfile(name) {
|
SDC.prototype.getProfile = function getProfile(name) {
|
||||||
for (var i = 0; i < this.profiles.length; i++) {
|
for (var i = 0; i < this.profiles.length; i++) {
|
||||||
if (this.profiles[i].name === name) {
|
if (this.profiles[i].name === name) {
|
||||||
return this.profiles[i];
|
return this.profiles[i];
|
||||||
@ -68,7 +68,7 @@ JoyentCloud.prototype.getProfile = function getProfile(name) {
|
|||||||
* - setDefault {Boolean}
|
* - setDefault {Boolean}
|
||||||
* @param callback {Function} `function (err)`
|
* @param callback {Function} `function (err)`
|
||||||
*/
|
*/
|
||||||
JoyentCloud.prototype.createOrUpdateProfile = function createOrUpdateProfile(
|
SDC.prototype.createOrUpdateProfile = function createOrUpdateProfile(
|
||||||
profile, options, callback) {
|
profile, options, callback) {
|
||||||
assert.object(profile, 'profile');
|
assert.object(profile, 'profile');
|
||||||
if (typeof (options) === 'function') {
|
if (typeof (options) === 'function') {
|
||||||
@ -96,7 +96,7 @@ JoyentCloud.prototype.createOrUpdateProfile = function createOrUpdateProfile(
|
|||||||
callback();
|
callback();
|
||||||
};
|
};
|
||||||
|
|
||||||
JoyentCloud.prototype.deleteProfile = function deleteProfile(name, callback) {
|
SDC.prototype.deleteProfile = function deleteProfile(name, callback) {
|
||||||
var found = false;
|
var found = false;
|
||||||
for (var i = 0; i < this.profiles.length; i++) {
|
for (var i = 0; i < this.profiles.length; i++) {
|
||||||
if (this.profiles[i].name === name) {
|
if (this.profiles[i].name === name) {
|
||||||
@ -115,7 +115,7 @@ JoyentCloud.prototype.deleteProfile = function deleteProfile(name, callback) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
JoyentCloud.prototype._clientFromDc = function _clientFromDc(dc) {
|
SDC.prototype._clientFromDc = function _clientFromDc(dc) {
|
||||||
assert.string(dc, 'dc');
|
assert.string(dc, 'dc');
|
||||||
|
|
||||||
if (!this._clientFromDcCache) {
|
if (!this._clientFromDcCache) {
|
||||||
@ -168,7 +168,7 @@ JoyentCloud.prototype._clientFromDc = function _clientFromDc(dc) {
|
|||||||
*
|
*
|
||||||
* @param {Object} options Optional
|
* @param {Object} options Optional
|
||||||
*/
|
*/
|
||||||
JoyentCloud.prototype.listMachines = function listMachines(options) {
|
SDC.prototype.listMachines = function listMachines(options) {
|
||||||
var self = this;
|
var self = this;
|
||||||
if (options === undefined) {
|
if (options === undefined) {
|
||||||
options = {};
|
options = {};
|
||||||
@ -201,4 +201,4 @@ JoyentCloud.prototype.listMachines = function listMachines(options) {
|
|||||||
|
|
||||||
//---- exports
|
//---- exports
|
||||||
|
|
||||||
module.exports = JoyentCloud;
|
module.exports = SDC;
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "joyentcloud",
|
"name": "sdc",
|
||||||
"description": "Joyent Compute Service CLI (http://www.joyent.com/products/compute-service)",
|
"description": "Joyent SmartDataCenter CLI (http://www.joyent.com/products/compute-service)",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"author": "Joyent (joyent.com)",
|
"author": "Joyent (joyent.com)",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# Rsync the master in this working copy to the install on the given HN.
|
|
||||||
#
|
|
||||||
|
|
||||||
#set -o xtrace
|
|
||||||
set -o errexit
|
|
||||||
|
|
||||||
TOP=$(cd $(dirname $0)/../; pwd)
|
|
||||||
NODE=$1
|
|
||||||
[[ -z "$NODE" ]] && echo 'rsync-to: error: no headnode given' && exit 1
|
|
||||||
BASEDIR=/opt/smartdc/sdcadm
|
|
||||||
|
|
||||||
extraOpts=
|
|
||||||
if [[ $(uname -s) != "SunOS" ]]; then
|
|
||||||
extraOpts="--exclude *.node --exclude build"
|
|
||||||
else
|
|
||||||
# Clean node_modules everytime.
|
|
||||||
ssh $NODE rm -rf $BASEDIR/node_modules
|
|
||||||
fi
|
|
||||||
|
|
||||||
for f in bin lib node_modules package.json; do
|
|
||||||
rsync -av ${TOP}/$f $NODE:$BASEDIR/$f $extraOpts
|
|
||||||
done
|
|
Reference in New Issue
Block a user