From 0071a7fcf53f70d0fd62c8ef5d181cae6f086165 Mon Sep 17 00:00:00 2001 From: Sean Li Date: Thu, 9 Oct 2014 11:43:13 -0700 Subject: [PATCH] Removes duplicate apps and fixes apps duplicating during installs. --- meteor/client/lib/apputil.js | 7 ++++++- meteor/client/lib/docker.js | 6 ------ meteor/client/lib/router.js | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/meteor/client/lib/apputil.js b/meteor/client/lib/apputil.js index 50311b4b76..f5c4900490 100644 --- a/meteor/client/lib/apputil.js +++ b/meteor/client/lib/apputil.js @@ -173,7 +173,12 @@ AppUtil.sync = function () { } else { var apps = Apps.find({}).fetch(); _.each(apps, function (app) { - if (app.docker && app.docker.Id) { + var app = Apps.findOne(app._id); + if (app && app.docker && app.docker.Id) { + var duplicateApps = Apps.find({'docker.Id': app.docker.Id, _id: {$ne: app._id}}).fetch(); + _.each(duplicateApps, function (duplicateApp) { + Apps.remove(duplicateApp._id); + }); Docker.getContainerData(app.docker.Id, function (err, data) { var status = 'STARTING'; if (data && data.State && data.State.Running) { diff --git a/meteor/client/lib/docker.js b/meteor/client/lib/docker.js index cd3bb0f1a2..62c2767a2d 100644 --- a/meteor/client/lib/docker.js +++ b/meteor/client/lib/docker.js @@ -187,12 +187,6 @@ Docker.getImageData = function (imageId, callback) { if (data.ContainerConfig && data.ContainerConfig.Volumes) { data.ContainerConfig.Volumes = convertVolumeObjToArray(data.ContainerConfig.Volumes); } - /*console.log('Image ID'); - console.log(imageId); - console.log('Raw Docker Data:'); - console.log(dockerImage); - console.log('Inspected Data:'); - console.log(data);*/ if (!dockerImage) { callback(null, data); } else { diff --git a/meteor/client/lib/router.js b/meteor/client/lib/router.js index 7a24265013..c3bbef1d6b 100755 --- a/meteor/client/lib/router.js +++ b/meteor/client/lib/router.js @@ -13,7 +13,7 @@ Router.configure({ SetupController = RouteController.extend({ layoutTemplate: 'setup_layout', waitOn: function () { - return [Meteor.subscribe('installs'), Meteor.subscribe('settings')]; + return [Meteor.subscribe('apps'), Meteor.subscribe('images'), Meteor.subscribe('installs'), Meteor.subscribe('settings')]; } });