smc-hub
Version:
CoCalc: Backend webserver component
52 lines • 2.16 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.COCALC_MODES = void 0;
var database_1 = require("./database");
var logger_1 = require("../logger");
var connect_to_project = require("../local_hub_connection").connect_to_project;
var single_user_1 = __importDefault(require("smc-hub/project-control/single-user"));
var multi_user_1 = __importDefault(require("smc-hub/project-control/multi-user"));
var kucalc_1 = __importDefault(require("smc-hub/project-control/kucalc"));
var kubernetes_1 = __importDefault(require("smc-hub/project-control/kubernetes"));
exports.COCALC_MODES = [
"single-user",
"multi-user",
"kucalc",
"kubernetes",
];
function init(program) {
var winston = logger_1.getLogger("project-control");
winston.info("creating project control client");
var getProject;
switch (program.mode) {
case "single-user":
getProject = single_user_1.default;
break;
case "multi-user":
getProject = multi_user_1.default;
break;
case "kucalc":
getProject = kucalc_1.default;
break;
case "kubernetes":
getProject = kubernetes_1.default;
break;
default:
throw Error("invalid mode \"" + program.mode + "\"");
}
winston.info("project controller created with mode " + program.mode);
database_1.database.compute_server = getProject;
// This is used by the database when handling certain writes to make sure
// that the there is a connection to the corresponding project, so that
// the project can respond. // TODO: obviously, this is ugly!
database_1.database.ensure_connection_to_project = function (project_id, cb) {
winston.debug("database.ensure_connection_to_project -- project_id=" + project_id);
connect_to_project(project_id, database_1.database, getProject, cb);
};
return getProject;
}
exports.default = init;
//# sourceMappingURL=project-control.js.map