This commit is contained in:
Pascal Rapicault
2014-09-22 12:21:49 -04:00
parent 01428bc2a0
commit 4970b87bcf
2 changed files with 9 additions and 21 deletions

View File

@@ -49,10 +49,6 @@ var LocalCatalog = function (options) {
self.packageSources = null;
self.built = null;
//???? PASCAL Do we need those
self.refreshing = false;
self.needRefresh = false;
};
_.extend(LocalCatalog.prototype, {
@@ -205,7 +201,7 @@ _.extend(LocalCatalog.prototype, {
// one, in case our local cache says "version exists but only for the wrong
// arch" and the right arch has been recently published.
// XXX should ensure at most one refresh
// PASCAL - check with Ekate
// PASCAL - check with Ekate that it is ok to not explicitely refresh again
var allBuilds = _.where(self.builds, { versionId: versionInfo._id });
var solution = null;
utils.generateSubsetsOfIncreasingSize(allBuilds, function (buildSubset) {
@@ -278,18 +274,9 @@ _.extend(LocalCatalog.prototype, {
// and self.localPackages.
_recomputeEffectiveLocalPackages: function () {
var self = this;
// console.log("refrehsing for " + self.localPackageDirs);
self.effectiveLocalPackages = _.clone(self.localPackages);
//PASCAL Does this still applies?
// XXX If this is the forUniload catalog, we should only consider
// uniload.ROOT_PACKAGES and their dependencies. Unfortunately, that takes a
// fair amount of refactoring (since we don't know dependencies until we
// start reading them). So for now, the uniload catalog (in checkout mode)
// does include information about all the packages in the meteor repo, not
// just the ones that can be uniloaded. (But it doesn't contain information
// about app packages!)
_.each(self.localPackageDirs, function (localPackageDir) {
if (! utils.isDirectory(localPackageDir))
return;

View File

@@ -168,7 +168,8 @@ _.extend(RemoteCatalog.prototype, {
future.wait();
},
purgeDB: function () {
// This function empties the DB. This is called from the package-client.
reset: function () {
var self = this;
var future = new Future;
self.db.serialize(function() {
@@ -214,7 +215,7 @@ _.extend(RemoteCatalog.prototype, {
}
if (updateResult.resetData) {
tropohouse.default.wipeAllPackages();
self.purgeDB();
self.reset();
}
},
@@ -261,10 +262,10 @@ _.extend(RemoteCatalog.prototype, {
return false;
},
_queryWithRetry: function (query, values) {
_queryWithRetry: function (query, values, options) {
var self = this;
var result = self._justQuery(query, values);
if (result.length !== 0)
if ( result.length !== 0 || ( options && options.noRetry ) )
return result;
self.refresh();
return self._justQuery(query, values);
@@ -291,8 +292,8 @@ _.extend(RemoteCatalog.prototype, {
// Execute a query using the values as arguments of the query and return the result as JSON.
// This code assumes that the table being queried always have a column called "entity"
_queryAsJSON: function (query, values) {
var rows = this._queryWithRetry(query, values);
_queryAsJSON: function (query, values, options) {
var rows = this._queryWithRetry(query, values, options);
return _.map(rows, function(entity) {
return JSON.parse(entity.content);
});
@@ -381,7 +382,7 @@ _.extend(RemoteCatalog.prototype, {
getSyncToken : function() {
var self = this;
var result = self._queryAsJSON("SELECT content FROM syncToken", []);
var result = self._queryAsJSON("SELECT content FROM syncToken", [], { noRetry: true });
if (!result || result.length === 0)
return {};
delete result[0]._id;