kopia lustrzana https://github.com/c9/core
Merge remote-tracking branch 'origin/master' into fix/vfs-multi-attempt
Conflicts: plugins/c9.vfs.client/endpoint.jspull/43/merge
rodzic
2957589336
commit
747ab7f543
12
package.json
12
package.json
|
@ -60,15 +60,15 @@
|
|||
"c9.ide.language.css": "#ef8a28943e",
|
||||
"c9.ide.language.generic": "#32986699ac",
|
||||
"c9.ide.language.html": "#bbe81afed1",
|
||||
"c9.ide.language.html.diff": "#24f3608d26",
|
||||
"c9.ide.language.html.diff": "#a7311cfc9f",
|
||||
"c9.ide.language.javascript": "#8479d0a9c1",
|
||||
"c9.ide.language.javascript.immediate": "#0535804ada",
|
||||
"c9.ide.language.javascript.immediate": "#9a2cce9121",
|
||||
"c9.ide.language.javascript.eslint": "#2db744b1a3",
|
||||
"c9.ide.language.javascript.tern": "#7aab8b0b6a",
|
||||
"c9.ide.language.javascript.infer": "#cfec494a3c",
|
||||
"c9.ide.language.jsonalyzer": "#dab3edfca5",
|
||||
"c9.ide.collab": "#e9dd74e31e",
|
||||
"c9.ide.local": "#a9703b630c",
|
||||
"c9.ide.local": "#2bfd7ff051",
|
||||
"c9.ide.find": "#6cc6d3379d",
|
||||
"c9.ide.find.infiles": "#72582de3cd",
|
||||
"c9.ide.find.replace": "#e4daf722b8",
|
||||
|
@ -77,7 +77,7 @@
|
|||
"c9.ide.ace.emmet": "#e5f1a92ac3",
|
||||
"c9.ide.ace.gotoline": "#4d1a93172c",
|
||||
"c9.ide.ace.keymaps": "#43445d6306",
|
||||
"c9.ide.ace.repl": "#f3a62c1f2a",
|
||||
"c9.ide.ace.repl": "#ada99852fa",
|
||||
"c9.ide.ace.split": "#0ae0151c78",
|
||||
"c9.ide.ace.statusbar": "#d95be89d53",
|
||||
"c9.ide.ace.stripws": "#cf0f42ac59",
|
||||
|
@ -91,14 +91,14 @@
|
|||
"c9.ide.imgeditor": "#ed89162aa7",
|
||||
"c9.ide.immediate": "#6845a93705",
|
||||
"c9.ide.installer": "#70bb0e85f4",
|
||||
"c9.ide.mount": "#896ebf836e",
|
||||
"c9.ide.mount": "#32e79866ee",
|
||||
"c9.ide.navigate": "#7c58c7f3d7",
|
||||
"c9.ide.newresource": "#f1f0624768",
|
||||
"c9.ide.openfiles": "#28a4f5af16",
|
||||
"c9.ide.preview": "#0bd8dd6e8c",
|
||||
"c9.ide.preview.browser": "#ac18aaf31d",
|
||||
"c9.ide.preview.markdown": "#ab8d30ad9f",
|
||||
"c9.ide.pubsub": "#a85fb27eca",
|
||||
"c9.ide.pubsub": "#92ec19ed3a",
|
||||
"c9.ide.readonly": "#f6f07bbe42",
|
||||
"c9.ide.recentfiles": "#7c099abf40",
|
||||
"c9.ide.remote": "#cd45e81d2f",
|
||||
|
|
|
@ -3,6 +3,9 @@ define(function(require, exports, module) {
|
|||
|
||||
main.consumes = ["Plugin", "auth", "http", "api", "error_handler", "metrics"];
|
||||
main.provides = ["vfs.endpoint"];
|
||||
|
||||
var PARALLEL_SEARCHES=3;
|
||||
|
||||
return main;
|
||||
|
||||
function main(options, imports, register) {
|
||||
|
@ -168,10 +171,24 @@ define(function(require, exports, module) {
|
|||
// check for version
|
||||
if (servers.length && !servers.filter(function(s) { return s.version !== version; }).length)
|
||||
return onProtocolChange(callback);
|
||||
|
||||
|
||||
var nextServer = 0;
|
||||
var foundServer = false;
|
||||
|
||||
/* Create a callback that is only ever called once */
|
||||
var mainCallback = callback;
|
||||
callback = function() {
|
||||
if (!foundServer) {
|
||||
foundServer = true;
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
return mainCallback.apply(this, args);
|
||||
}
|
||||
};
|
||||
|
||||
// just take the first server that doesn't return an error
|
||||
(function tryNext(i) {
|
||||
if (i >= servers.length) {
|
||||
function tryNext(i) {
|
||||
if (foundServer) return false;
|
||||
if (i >= servers.length)
|
||||
metrics.increment("vfs.failed.connect_all", 1, true);
|
||||
return callback(new Error("Disconnected: Could not reach your workspace. Please try again later."));
|
||||
}
|
||||
|
@ -233,7 +250,7 @@ define(function(require, exports, module) {
|
|||
|
||||
if (err) {
|
||||
setTimeout(function() {
|
||||
tryNext(i+1);
|
||||
tryNext(++nextServer);
|
||||
}, 2000);
|
||||
return;
|
||||
}
|
||||
|
@ -241,7 +258,13 @@ define(function(require, exports, module) {
|
|||
var vfs = rememberVfs(server, res.vfsid);
|
||||
callback(null, vfs.vfsid, server.url, server.region);
|
||||
});
|
||||
})(0);
|
||||
};
|
||||
|
||||
|
||||
// Kick off some parallel runners to find a vfs server.
|
||||
for (var s = 0; s < servers.length && s < PARALLEL_SEARCHES; s++) {
|
||||
tryNext(nextServer++);
|
||||
}
|
||||
}
|
||||
|
||||
function onProtocolChange(callback) {
|
||||
|
|
Ładowanie…
Reference in New Issue