mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
when talking to the package server, try to reconnect
This commit is contained in:
@@ -847,9 +847,11 @@ main.registerCommand({
|
||||
var uploadInfo;
|
||||
try {
|
||||
if (!relConf.patchFrom) {
|
||||
uploadInfo = conn.call('createReleaseVersion', record);
|
||||
uploadInfo = packageClient.callPackageServer(
|
||||
conn, 'createReleaseVersion', record);
|
||||
} else {
|
||||
uploadInfo = conn.call('createPatchReleaseVersion', record, relConf.patchFrom);
|
||||
uploadInfo = packageClient.callPackageServer(
|
||||
conn, 'createPatchReleaseVersion', record, relConf.patchFrom);
|
||||
}
|
||||
} catch (err) {
|
||||
packageClient.handlePackageServerConnectionError(err);
|
||||
@@ -2079,16 +2081,20 @@ main.registerCommand({
|
||||
if (options.add) {
|
||||
process.stdout.write("Adding a maintainer to " + name + "...\n");
|
||||
if (fullRecord.release) {
|
||||
conn.call('addReleaseMaintainer', name, options.add);
|
||||
packageClient.callPackageServer(
|
||||
conn, 'addReleaseMaintainer', name, options.add);
|
||||
} else {
|
||||
conn.call('addMaintainer', name, options.add);
|
||||
packageClient.callPackageServer(
|
||||
conn, 'addMaintainer', name, options.add);
|
||||
}
|
||||
} else if (options.remove) {
|
||||
process.stdout.write("Removing a maintainer from " + name + "...\n");
|
||||
if (fullRecord.release) {
|
||||
conn.call('removeReleaseMaintainer', name, options.remove);
|
||||
packageClient.callPackageServer(
|
||||
conn, 'removeReleaseMaintainer', name, options.remove);
|
||||
} else {
|
||||
conn.call('removeMaintainer', name, options.remove);
|
||||
packageClient.callPackageServer(
|
||||
conn, 'removeMaintainer', name, options.remove);
|
||||
}
|
||||
process.stdout.write(" Done!\n");
|
||||
}
|
||||
@@ -2333,8 +2339,9 @@ main.registerCommand({
|
||||
}
|
||||
|
||||
try {
|
||||
conn.call('setBannersOnReleases', bannersData.track,
|
||||
bannersData.banners);
|
||||
packageClient.callPackageServer(
|
||||
conn, 'setBannersOnReleases',
|
||||
bannersData.track, bannersData.banners);
|
||||
} catch (e) {
|
||||
packageClient.handlePackageServerConnectionError(e);
|
||||
return 1;
|
||||
@@ -2384,12 +2391,12 @@ main.registerCommand({
|
||||
try {
|
||||
if (options.unrecommend) {
|
||||
process.stdout.write("Unrecommending " + name + "@" + version + "...\n");
|
||||
conn.call('unrecommendVersion', name, version);
|
||||
packageClient.callPackageServer(conn, 'unrecommendVersion', name, version);
|
||||
process.stdout.write("Done!\n " + name + "@" + version +
|
||||
" is no longer a recommended release\n");
|
||||
} else {
|
||||
process.stdout.write("Recommending " + options.args[0] + "...\n");
|
||||
conn.call('recommendVersion', name, version);
|
||||
packageClient.callPackageServer(conn, 'recommendVersion', name, version);
|
||||
process.stdout.write("Done!\n " + name + "@" + version +
|
||||
" is now a recommended release\n");
|
||||
}
|
||||
@@ -2443,7 +2450,8 @@ main.registerCommand({
|
||||
+ options.args[0] + " to " + ecv + "...\n");
|
||||
var versionInfo = { name : name,
|
||||
version : version };
|
||||
conn.call('_setEarliestCompatibleVersion', versionInfo, ecv);
|
||||
packageClient.callPackageServer(conn,
|
||||
'_setEarliestCompatibleVersion', versionInfo, ecv);
|
||||
process.stdout.write("Done!\n");
|
||||
} catch (err) {
|
||||
packageClient.handlePackageServerConnectionError(err);
|
||||
@@ -2487,7 +2495,8 @@ main.registerCommand({
|
||||
process.stdout.write(
|
||||
"Changing homepage on "
|
||||
+ name + " to " + url + "...\n");
|
||||
conn.call('_changePackageHomepage', name, url);
|
||||
packageClient.callPackageServer(conn,
|
||||
'_changePackageHomepage', name, url);
|
||||
process.stdout.write("Done!\n");
|
||||
} catch (err) {
|
||||
packageClient.handlePackageServerConnectionError(err);
|
||||
|
||||
@@ -43,6 +43,19 @@ var emptyCachedServerDataJson = function () {
|
||||
};
|
||||
};
|
||||
|
||||
// Given a connection, makes a call to the package server. (Checks to see if
|
||||
// the connection is connected, and reconnectes if needed -- a workaround for
|
||||
// the fact that connections in the tool do not reconnect)
|
||||
exports.callPackageServer = function (conn) {
|
||||
if (!conn.connected) {
|
||||
conn.close();
|
||||
conn = exports.loggedInPackagesConnection();
|
||||
}
|
||||
var args = _.values(arguments)
|
||||
.slice(1, arguments.length);
|
||||
return conn.call.apply(conn, args);
|
||||
};
|
||||
|
||||
// Load the package data that was saved in the local data.json
|
||||
// collection from the last time we did a sync to the server. Takes an
|
||||
// optional `packageStorageFile` argument (defaults to
|
||||
@@ -109,11 +122,11 @@ var loadRemotePackageData = function (conn, syncToken, _optionsForTest) {
|
||||
}
|
||||
var collectionData;
|
||||
if (syncOpts) {
|
||||
collectionData = conn.call(
|
||||
'syncNewPackageData', syncToken, syncOpts);
|
||||
collectionData = exports.callPackageServer(conn,
|
||||
'syncNewPackageData', syncToken, syncOpts);
|
||||
} else {
|
||||
collectionData = conn.call(
|
||||
'syncNewPackageData', syncToken);
|
||||
collectionData = exports.callPackageServer(conn,
|
||||
'syncNewPackageData', syncToken);
|
||||
}
|
||||
return collectionData;
|
||||
};
|
||||
@@ -460,10 +473,11 @@ var createAndPublishBuiltPackage = function (conn, unipackage) {
|
||||
return;
|
||||
|
||||
process.stdout.write('Creating package build...\n');
|
||||
var uploadInfo = conn.call('createPackageBuild', {
|
||||
packageName: unipackage.name,
|
||||
version: unipackage.version,
|
||||
buildArchitectures: unipackage.buildArchitectures()
|
||||
var uploadInfo = exports.callPackageServer(conn,
|
||||
'createPackageBuild', {
|
||||
packageName: unipackage.name,
|
||||
version: unipackage.version,
|
||||
buildArchitectures: unipackage.buildArchitectures()
|
||||
});
|
||||
|
||||
process.stdout.write('Uploading build...\n');
|
||||
@@ -471,7 +485,8 @@ var createAndPublishBuiltPackage = function (conn, unipackage) {
|
||||
bundleResult.buildTarball);
|
||||
|
||||
process.stdout.write('Publishing package build...\n');
|
||||
conn.call('publishPackageBuild',
|
||||
exports.callPackageServer(conn,
|
||||
'publishPackageBuild',
|
||||
uploadInfo.uploadToken,
|
||||
bundleResult.tarballHash,
|
||||
bundleResult.treeHash);
|
||||
@@ -655,9 +670,10 @@ exports.publishPackage = function (packageSource, compileResult, conn, options)
|
||||
if (options.new) {
|
||||
process.stdout.write('Creating package...\n');
|
||||
try {
|
||||
var packageId = conn.call('createPackage', {
|
||||
name: packageSource.name
|
||||
});
|
||||
var packageId = exports.callPackageServer(conn,
|
||||
'createPackage', {
|
||||
name: packageSource.name
|
||||
});
|
||||
} catch (err) {
|
||||
process.stderr.write(err.message + "\n");
|
||||
return 3;
|
||||
@@ -691,7 +707,12 @@ exports.publishPackage = function (packageSource, compileResult, conn, options)
|
||||
dependencies: packageDeps
|
||||
};
|
||||
try {
|
||||
var uploadInfo = conn.call('createPackageVersion', uploadRec);
|
||||
console.log(conn.connected);
|
||||
//var conn2 = exports.loggedInPackagesConnection();
|
||||
//console.log(conn2.connection);
|
||||
|
||||
var uploadInfo = exports.callPackageServer(conn,
|
||||
'createPackageVersion', uploadRec);
|
||||
} catch (err) {
|
||||
process.stderr.write("ERROR " + err.message + "\n");
|
||||
return 3;
|
||||
@@ -706,10 +727,11 @@ exports.publishPackage = function (packageSource, compileResult, conn, options)
|
||||
|
||||
process.stdout.write('Publishing package version...\n');
|
||||
try {
|
||||
conn.call('publishPackageVersion',
|
||||
uploadInfo.uploadToken,
|
||||
{ tarballHash: sourceBundleResult.tarballHash,
|
||||
treeHash: sourceBundleResult.treeHash });
|
||||
exports.callPackageServer(conn,
|
||||
'publishPackageVersion',
|
||||
uploadInfo.uploadToken,
|
||||
{ tarballHash: sourceBundleResult.tarballHash,
|
||||
treeHash: sourceBundleResult.treeHash });
|
||||
} catch (err) {
|
||||
process.stderr.write("ERROR " + err.message + "\n");
|
||||
return 3;
|
||||
@@ -734,7 +756,7 @@ exports.amIAuthorized = function (name, conn, isRelease) {
|
||||
(isRelease ? "Release" : "Package");
|
||||
|
||||
try {
|
||||
conn.call(methodName, name);
|
||||
exports.callPackageServer(conn, methodName, name);
|
||||
} catch (err) {
|
||||
if (err.error === 401) {
|
||||
return false;
|
||||
|
||||
@@ -36,6 +36,7 @@ var ServiceConnection = function (Package, endpointUrl, options) {
|
||||
connectTimeoutMs: 15000,
|
||||
retry: false,
|
||||
onConnected: function () {
|
||||
self.connected = true;
|
||||
if (!self.currentFuture)
|
||||
throw Error("nobody waiting for connection?");
|
||||
if (self.currentFuture !== connectFuture)
|
||||
@@ -51,6 +52,7 @@ var ServiceConnection = function (Package, endpointUrl, options) {
|
||||
// 10-second timeout built into our DDP client).
|
||||
var connectFuture = self.currentFuture = new Future;
|
||||
self.connection._stream.on('disconnect', function (error) {
|
||||
self.connected = false;
|
||||
if (error && error.errorType === "DDP.ForcedReconnectError") {
|
||||
// OK, we requested this, probably due to version negotation failure.
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user