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) {
|
define(function(require, exports, module) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
main.consumes = ["Plugin", "auth", "http", "api"];
|
main.consumes = ["Plugin", "auth", "http", "api", "error_handler"];
|
||||||
main.provides = ["vfs.endpoint"];
|
main.provides = ["vfs.endpoint"];
|
||||||
return main;
|
return main;
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ define(function(require, exports, module) {
|
||||||
var auth = imports.auth;
|
var auth = imports.auth;
|
||||||
var http = imports.http;
|
var http = imports.http;
|
||||||
var api = imports.api;
|
var api = imports.api;
|
||||||
|
var errorHandler = imports.error_handler;
|
||||||
|
|
||||||
/***** Initialization *****/
|
/***** Initialization *****/
|
||||||
|
|
||||||
|
@ -43,9 +44,6 @@ define(function(require, exports, module) {
|
||||||
var servers;
|
var servers;
|
||||||
var pendingServerReqs = [];
|
var pendingServerReqs = [];
|
||||||
|
|
||||||
if (options.getServers)
|
|
||||||
options.getServers(initDefaultServers);
|
|
||||||
else
|
|
||||||
initDefaultServers();
|
initDefaultServers();
|
||||||
|
|
||||||
options.pid = options.pid || 1;
|
options.pid = options.pid || 1;
|
||||||
|
@ -53,6 +51,11 @@ define(function(require, exports, module) {
|
||||||
/***** Methods *****/
|
/***** Methods *****/
|
||||||
|
|
||||||
function initDefaultServers(baseURI) {
|
function initDefaultServers(baseURI) {
|
||||||
|
if (options.getServers)
|
||||||
|
return options.getServers(init);
|
||||||
|
init();
|
||||||
|
|
||||||
|
function init() {
|
||||||
options.getServers = undefined;
|
options.getServers = undefined;
|
||||||
var loc = require("url").parse(baseURI || document.baseURI || window.location.href);
|
var loc = require("url").parse(baseURI || document.baseURI || window.location.href);
|
||||||
var defaultServers = [{
|
var defaultServers = [{
|
||||||
|
@ -67,6 +70,7 @@ define(function(require, exports, module) {
|
||||||
cb(null, servers);
|
cb(null, servers);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getServers(callback) {
|
function getServers(callback) {
|
||||||
if (typeof options.getServers == "function")
|
if (typeof options.getServers == "function")
|
||||||
|
@ -90,10 +94,14 @@ define(function(require, exports, module) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getVfsEndpoint(version, callback) {
|
function getVfsEndpoint(version, callback) {
|
||||||
getServers(function(err, servers) {
|
getServers(function(err, _servers) {
|
||||||
if (err) return callback(err);
|
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);
|
if (err) return callback(err);
|
||||||
|
|
||||||
callback(null, {
|
callback(null, {
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
define(function(require, exports, module) {
|
define(function(require, exports, module) {
|
||||||
"use strict";
|
"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"];
|
main.provides = ["vfs"];
|
||||||
return main;
|
return main;
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@ define(function(require, exports, module) {
|
||||||
var showError = errorDialog.show;
|
var showError = errorDialog.show;
|
||||||
var hideError = errorDialog.hide;
|
var hideError = errorDialog.hide;
|
||||||
var showAlert = imports["dialog.alert"].show;
|
var showAlert = imports["dialog.alert"].show;
|
||||||
|
var errorHandler = imports.error_handler;
|
||||||
|
|
||||||
var eio = require("engine.io");
|
var eio = require("engine.io");
|
||||||
var Consumer = require("vfs-socket/consumer").Consumer;
|
var Consumer = require("vfs-socket/consumer").Consumer;
|
||||||
|
@ -123,6 +124,7 @@ define(function(require, exports, module) {
|
||||||
});
|
});
|
||||||
|
|
||||||
function disconnect() {
|
function disconnect() {
|
||||||
|
pingUrl = null;
|
||||||
reconnect(function(err) {
|
reconnect(function(err) {
|
||||||
if (err && err.fatal)
|
if (err && err.fatal)
|
||||||
return;
|
return;
|
||||||
|
@ -275,6 +277,7 @@ define(function(require, exports, module) {
|
||||||
consumer.connect(transport, function(err, _vfs) {
|
consumer.connect(transport, function(err, _vfs) {
|
||||||
// TODO
|
// TODO
|
||||||
if (err) {
|
if (err) {
|
||||||
|
errorHandler.reportError(new Error("Error connecting to VFS", { err: err }));
|
||||||
console.error("error connecting to VFS", err);
|
console.error("error connecting to VFS", err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue