Comparing version 0.1.0 to 0.1.1
@@ -8,2 +8,3 @@ var util = require('util'); | ||
// Get CloudFoundry App infomation | ||
VMC.prototype.appInfo = function(name, callback) { | ||
@@ -16,2 +17,3 @@ var path = '/apps/' + name; | ||
// Get all our CloudFoundry Apps.. | ||
VMC.prototype.apps = function(callback) { | ||
@@ -22,2 +24,3 @@ var path = '/apps'; | ||
// Updates an Apps details | ||
VMC.prototype.updateApp = function(name, app, callback) { | ||
@@ -28,2 +31,3 @@ var path = '/apps/' + name; | ||
// Start App | ||
VMC.prototype.start = function(name, callback) { | ||
@@ -41,2 +45,3 @@ var self = this; | ||
// Stop App | ||
VMC.prototype.stop = function(name, callback) { | ||
@@ -51,2 +56,3 @@ var self = this; | ||
// Restart App | ||
VMC.prototype.restart = function(name, callback) { | ||
@@ -60,2 +66,3 @@ var self = this; | ||
// Get CF System Services | ||
VMC.prototype.systemServices = function(callback) { | ||
@@ -65,2 +72,3 @@ this.get('/info/services', callback); | ||
// Get CF Provisioned Services | ||
VMC.prototype.provisionedServices = function(callback) { | ||
@@ -70,2 +78,3 @@ this.get('/services', callback); | ||
// Create a new Provisioned Service | ||
VMC.prototype.createService = function(service, vendor, callback) { | ||
@@ -81,2 +90,3 @@ var self = this; | ||
// Delete existing Provisioned Service | ||
VMC.prototype.deleteService = function(service, callback) { | ||
@@ -97,2 +107,3 @@ var self = this; | ||
// Bind an App to a Service | ||
VMC.prototype.bindService = function(service, appName, callback) { | ||
@@ -110,38 +121,48 @@ var self = this; | ||
// Push App to CloudFoundry | ||
VMC.prototype.push = function(name, dir, callback) { | ||
var self = this; | ||
// TODO - error checking dir, etc.. | ||
// TODO - needs 'app_exits' equivalent | ||
// TODO - check app limits/capacity/etc (all checks in apps.rb.push | ||
var path = '/apps'; | ||
var manifest = {resources: { | ||
memory:64 | ||
}, | ||
instances:1, | ||
name: name, | ||
staging:{ | ||
framework:'node', | ||
runtime: null | ||
}, | ||
uris:[name + self.rootTarget] // TODO | ||
}; | ||
if (!require('path').existsSync(dir)) return callback(new Error('Directory does not exist: ' + dir)); | ||
this.post(path, manifest, function(err, data){ | ||
if (err) return callback(err); | ||
self.upload(dir, name, callback); | ||
this.appInfo(name, function(err, app){ | ||
if(err && err.status !== 404) return callback(err); | ||
if(app) return callback(new Error("App: " + name +" already exists, use 'update' instead")); | ||
// TODO - check app limits/capacity/etc (all checks in apps.rb.push | ||
var path = '/apps'; | ||
var manifest = {resources: { | ||
memory:64 | ||
}, | ||
instances:1, | ||
name: name, | ||
staging:{ | ||
framework:'node', | ||
runtime: null | ||
}, | ||
uris:[name + self.rootTarget] | ||
}; | ||
self.post(path, manifest, function(err, data){ | ||
if (err) return callback(err); | ||
self.upload(dir, name, callback); | ||
}); | ||
}); | ||
}; | ||
VMC.prototype.update = function(dir, name, callback) { | ||
// Update existing App | ||
VMC.prototype.update = function(name, dir, callback) { | ||
var self = this; | ||
// TODO - error checking dir, etc.. | ||
// TODO - needs 'app_exits' equivalent | ||
// TODO - check app limits/capacity/etc (all checks in apps.rb.push | ||
self.upload(dir, name, function(err, data){ | ||
if (!require('path').existsSync(dir)) return callback(new Error('Directory does not exist: ' + dir)); | ||
this.appInfo(name, function(err, app){ | ||
if(err) return callback(err); | ||
//console.log("UPDATE APP BITS: " + util.inspect(data)); | ||
self.restart(name, callback); | ||
}); | ||
// TODO - check app limits/capacity/etc (all checks in apps.rb.push | ||
self.upload(dir, name, function(err, data){ | ||
if(err) return callback(err); | ||
self.restart(name, callback); | ||
}); | ||
}); | ||
}; | ||
// Delete App.. deletes any provisioned services also | ||
// TODO - pass flag to not delete an apps services by default.. | ||
@@ -166,2 +187,3 @@ VMC.prototype.deleteApp = function(name, callback) { | ||
// Get App environment variables | ||
VMC.prototype.env = function(name, callback) { | ||
@@ -174,2 +196,3 @@ this.appInfo(name, function(err, app){ | ||
// Add environment variable to App. Note restarts app if already running | ||
VMC.prototype.addEnv = function(name, variable, value, callback) { | ||
@@ -194,2 +217,3 @@ var self = this; | ||
// Delete App environment variable. Note restarts app if already running. | ||
VMC.prototype.delEnv = function(name, variable, callback) { | ||
@@ -219,2 +243,3 @@ var self = this; | ||
// Login to CloudFoundry | ||
VMC.prototype.login = function(callback) { | ||
@@ -233,2 +258,3 @@ var self = this; | ||
// 'Constructor' function | ||
function VMC(target, user, pwd) { | ||
@@ -243,3 +269,3 @@ if (target == undefined || user == undefined || pwd == undefined) { | ||
this.isSecure = uri.protocol === 'https' ? true : false; | ||
this.isSecure = uri.protocol === 'https'; | ||
@@ -280,2 +306,3 @@ if (uri.port == undefined) { | ||
// TODO - get system tmp dir | ||
// Note: this requires that 'zip' is available in your path | ||
var zipFile = '/tmp/' + name + '.zip'; | ||
@@ -282,0 +309,0 @@ vmcutils.zip(dir, zipFile, function(err, data){ |
{ | ||
"name": "vmcjs", | ||
"description": "Node.js VMC library", | ||
"version": "0.1.0", | ||
"version": "0.1.1", | ||
"author": "Damian Beresford <Damian.Beresford@feedhenry.com>", | ||
@@ -6,0 +6,0 @@ "repository" : { "type" : "git", |
14658
425