kopia lustrzana https://github.com/c9/core
Merge pull request +6675 from c9/fix-vfs
Improve VFS connect logic robustnesspull/51/head
rodzic
504f68ac0a
commit
8f04053d74
|
@ -1,7 +1,7 @@
|
|||
define(function(require, exports, module) {
|
||||
"use strict";
|
||||
|
||||
main.consumes = ["Plugin", "auth", "http", "api"];
|
||||
main.consumes = ["Plugin", "auth", "http", "api", "error_handler"];
|
||||
main.provides = ["vfs.endpoint"];
|
||||
return main;
|
||||
|
||||
|
@ -10,6 +10,7 @@ define(function(require, exports, module) {
|
|||
var auth = imports.auth;
|
||||
var http = imports.http;
|
||||
var api = imports.api;
|
||||
var errorHandler = imports.error_handler;
|
||||
|
||||
/***** Initialization *****/
|
||||
|
||||
|
@ -43,29 +44,32 @@ define(function(require, exports, module) {
|
|||
var servers;
|
||||
var pendingServerReqs = [];
|
||||
|
||||
if (options.getServers)
|
||||
options.getServers(initDefaultServers);
|
||||
else
|
||||
initDefaultServers();
|
||||
initDefaultServers();
|
||||
|
||||
options.pid = options.pid || 1;
|
||||
|
||||
/***** Methods *****/
|
||||
|
||||
function initDefaultServers(baseURI) {
|
||||
options.getServers = undefined;
|
||||
var loc = require("url").parse(baseURI || document.baseURI || window.location.href);
|
||||
var defaultServers = [{
|
||||
url: loc.protocol + "//" + loc.hostname + (loc.port ? ":" + loc.port : "") + "/vfs",
|
||||
region: "default"
|
||||
}];
|
||||
servers = (urlServers || options.servers || defaultServers).map(function(server) {
|
||||
server.url = server.url.replace(/\/*$/, "");
|
||||
return server;
|
||||
});
|
||||
pendingServerReqs.forEach(function(cb) {
|
||||
cb(null, servers);
|
||||
});
|
||||
if (options.getServers)
|
||||
return options.getServers(init);
|
||||
init();
|
||||
|
||||
function init() {
|
||||
options.getServers = undefined;
|
||||
var loc = require("url").parse(baseURI || document.baseURI || window.location.href);
|
||||
var defaultServers = [{
|
||||
url: loc.protocol + "//" + loc.hostname + (loc.port ? ":" + loc.port : "") + "/vfs",
|
||||
region: "default"
|
||||
}];
|
||||
servers = (urlServers || options.servers || defaultServers).map(function(server) {
|
||||
server.url = server.url.replace(/\/*$/, "");
|
||||
return server;
|
||||
});
|
||||
pendingServerReqs.forEach(function(cb) {
|
||||
cb(null, servers);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function getServers(callback) {
|
||||
|
@ -90,10 +94,14 @@ define(function(require, exports, module) {
|
|||
}
|
||||
|
||||
function getVfsEndpoint(version, callback) {
|
||||
getServers(function(err, servers) {
|
||||
if (err) return callback(err);
|
||||
getServers(function(err, _servers) {
|
||||
if (err) {
|
||||
errorHandler.reportError(err);
|
||||
initDefaultServers();
|
||||
_servers = servers;
|
||||
}
|
||||
|
||||
getVfsUrl(version, servers, function(err, vfsid, url, region) {
|
||||
getVfsUrl(version, _servers, function(err, vfsid, url, region) {
|
||||
if (err) return callback(err);
|
||||
|
||||
callback(null, {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
define(function(require, exports, module) {
|
||||
"use strict";
|
||||
|
||||
main.consumes = ["Plugin", "auth", "vfs.endpoint", "dialog.error", "dialog.alert"];
|
||||
main.consumes = ["Plugin", "auth", "vfs.endpoint", "dialog.error", "dialog.alert", "error_handler"];
|
||||
main.provides = ["vfs"];
|
||||
return main;
|
||||
|
||||
|
@ -33,6 +33,7 @@ define(function(require, exports, module) {
|
|||
var showError = errorDialog.show;
|
||||
var hideError = errorDialog.hide;
|
||||
var showAlert = imports["dialog.alert"].show;
|
||||
var errorHandler = imports.error_handler;
|
||||
|
||||
var eio = require("engine.io");
|
||||
var Consumer = require("vfs-socket/consumer").Consumer;
|
||||
|
@ -123,6 +124,7 @@ define(function(require, exports, module) {
|
|||
});
|
||||
|
||||
function disconnect() {
|
||||
pingUrl = null;
|
||||
reconnect(function(err) {
|
||||
if (err && err.fatal)
|
||||
return;
|
||||
|
@ -275,6 +277,7 @@ define(function(require, exports, module) {
|
|||
consumer.connect(transport, function(err, _vfs) {
|
||||
// TODO
|
||||
if (err) {
|
||||
errorHandler.reportError(new Error("Error connecting to VFS", { err: err }));
|
||||
console.error("error connecting to VFS", err);
|
||||
return;
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue