Merge pull request +11424 from c9/monitor-workspaces

Workspace monitor & autofixer
pull/248/head
Tim Robinson 2016-01-27 17:25:20 -05:00
commit 6da1d01339
3 zmienionych plików z 131 dodań i 0 usunięć

31
node_modules/c9/docker-helpers.js wygenerowano vendored 100644
Wyświetl plik

@ -0,0 +1,31 @@
var dockerHelpers = {
getUsernameFromContainerName: function (containerName) {
if (containerName.split("-").length < 3) return "";
return containerName.replace(/^container-/, "")
.replace(/-[a-zA-Z]+$/, "")
.replace(/-[0-9]+$/, "")
.split("-")[0];
},
getProjectNameFromContainerName: function (containerName) {
if (containerName.split("-").length < 3) return "";
return containerName.replace(/^container-/, "")
.replace(/-[a-zA-Z]+$/, "")
.replace(/-[0-9]+$/, "")
.split("-")
.splice(1)
.join("-");
},
getProjectIdFromContainerName: function (containerName) {
if (containerName.split("-").length < 3) return "";
return containerName.replace(/^container-/, "")
.replace(/-[a-zA-Z]+$/, "")
.split("-")
.splice(-1)
.join("-");
}
}
module.exports = dockerHelpers;

60
node_modules/c9/docker-helpers_test.js wygenerowano vendored 100644
Wyświetl plik

@ -0,0 +1,60 @@
"use strict";
"use mocha";
require("c9/inline-mocha")(module);
var assert = require("assert");
var faker = require("faker");
var dockerHelpers = require("c9/docker-helpers");
describe("docker-helpers", function() {
describe("getUsernameFromContainerName", function () {
it("should work", function() {
assert.equal(dockerHelpers.getUsernameFromContainerName("container-stefko-demo-project-884917"), "stefko");
assert.equal(dockerHelpers.getUsernameFromContainerName("container-scollins-booking_admin-1667108-yORDDrjnsOiiLveG"), "scollins");
assert.equal(dockerHelpers.getUsernameFromContainerName("jakrawczt-test-3-jkr-1633955"), "jakrawczt");
assert.equal(dockerHelpers.getUsernameFromContainerName("thn85-p18-1016460"), "thn85");
assert.equal(dockerHelpers.getUsernameFromContainerName("thn85-proj-18239823-1016490"), "thn85");
assert.equal(dockerHelpers.getUsernameFromContainerName("artawil-etutor_11plus-wp-1422098"), "artawil");
assert.equal(dockerHelpers.getUsernameFromContainerName("container-johns66139-nice-access-bot-1753521-SDcuzVdxeUNhwhpo"), "johns66139");
assert.equal(dockerHelpers.getUsernameFromContainerName("johns66139-nice-access-bot-1753521-SDcuzVdxeUNhwhpo"), "johns66139");
assert.equal(dockerHelpers.getUsernameFromContainerName("yuro_yaya-nice-access-bot-1753521"), "yuro_yaya");
assert.equal(dockerHelpers.getUsernameFromContainerName("d9canary"), "");
assert.equal(dockerHelpers.getUsernameFromContainerName("selenium-9213"), "");
assert.equal(dockerHelpers.getUsernameFromContainerName("/selenium-9213"), "");
});
});
describe("getProjectNameFromContainerName", function() {
it("should work", function() {
assert.equal(dockerHelpers.getProjectNameFromContainerName("container-stefko-demo-project-884917"), "demo-project");
assert.equal(dockerHelpers.getProjectNameFromContainerName("container-scollins-booking_admin-1667108-yORDDrjnsOiiLveG"), "booking_admin");
assert.equal(dockerHelpers.getProjectNameFromContainerName("jakrawczt-test-3-jkr-1633955"), "test-3-jkr");
assert.equal(dockerHelpers.getProjectNameFromContainerName("thn85-p18-1016460"), "p18");
assert.equal(dockerHelpers.getProjectNameFromContainerName("thn85-proj-18239823-1016490"), "proj-18239823");
assert.equal(dockerHelpers.getProjectNameFromContainerName("artawil-etutor_11plus-wp-1422098"), "etutor_11plus-wp");
assert.equal(dockerHelpers.getProjectNameFromContainerName("container-johns66139-nice-access-bot-1753521-SDcuzVdxeUNhwhpo"), "nice-access-bot");
assert.equal(dockerHelpers.getProjectNameFromContainerName("johns66139-nice-access-bot-1753521-SDcuzVdxeUNhwhpo"), "nice-access-bot");
assert.equal(dockerHelpers.getProjectNameFromContainerName("d9canary"), "");
assert.equal(dockerHelpers.getProjectNameFromContainerName("selenium-9213"), "");
assert.equal(dockerHelpers.getProjectNameFromContainerName("/selenium-9213"), "");
});
});
describe("getProjectIdFromContainerName", function() {
it("should work", function() {
assert.equal(dockerHelpers.getProjectIdFromContainerName("container-stefko-demo-project-884917"), "884917");
assert.equal(dockerHelpers.getProjectIdFromContainerName("container-scollins-booking_admin-1667108-yORDDrjnsOiiLveG"), "1667108");
assert.equal(dockerHelpers.getProjectIdFromContainerName("jakrawczt-test-3-jkr-1633955"), "1633955");
assert.equal(dockerHelpers.getProjectIdFromContainerName("thn85-p18-1016460"), "1016460");
assert.equal(dockerHelpers.getProjectIdFromContainerName("thn85-proj-18239823-1016490"), "1016490");
assert.equal(dockerHelpers.getProjectIdFromContainerName("artawil-etutor_11plus-wp-1422098"), "1422098");
assert.equal(dockerHelpers.getProjectIdFromContainerName("container-johns66139-nice-access-bot-1753521-SDcuzVdxeUNhwhpo"), "1753521");
assert.equal(dockerHelpers.getProjectIdFromContainerName("johns66139-nice-access-bot-1753521-SDcuzVdxeUNhwhpo"), "1753521");
assert.equal(dockerHelpers.getProjectIdFromContainerName("d9canary"), "");
assert.equal(dockerHelpers.getProjectIdFromContainerName("selenium-9213"), "");
assert.equal(dockerHelpers.getProjectIdFromContainerName("/selenium-9213"), "");
});
});
});

40
node_modules/c9/gce.js wygenerowano vendored 100644
Wyświetl plik

@ -0,0 +1,40 @@
var childProcess = require("child_process");
function findServers(pattern, options, callback) {
if (!callback && typeof options == "function") {
return findServers(pattern, {}, options);
}
childProcess.exec("gssh --print-names " + pattern, function (err, stdout) {
if (err) return callback(err);
var serverNames = stdout.split("\n")
.filter(function(name) { return !!name; })
.map(function (name) { return name.replace(/ubuntu@/, ""); });
return callback(null, serverNames);
});
}
function runCommand(pattern, command, options, callback) {
if (!callback && typeof options == "function") {
return runCommand(pattern, command, {}, options);
}
var parallel = ""
if (options.parallel) {
parallel = " -P"
}
var gsshCommand = "gssh " + parallel + " " + pattern + " '" + command + "'";
childProcess.exec(gsshCommand, function (err, stdout) {
return callback(err, stdout);
});
}
module.exports = {
find: findServers,
run: runCommand
}