From 19c8e77aeade2eeada8988a1b25e44f021a170f0 Mon Sep 17 00:00:00 2001 From: hkernbach Date: Fri, 23 Sep 2016 10:21:20 +0200 Subject: [PATCH] rechecking dbservers before sharding operations --- .../APP/frontend/js/views/shardsView.js | 106 +++++++++--------- 1 file changed, 55 insertions(+), 51 deletions(-) diff --git a/js/apps/system/_admin/aardvark/APP/frontend/js/views/shardsView.js b/js/apps/system/_admin/aardvark/APP/frontend/js/views/shardsView.js index cfcbabe389..93518238fa 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/js/views/shardsView.js +++ b/js/apps/system/_admin/aardvark/APP/frontend/js/views/shardsView.js @@ -99,59 +99,63 @@ var obj = {}; var array = []; - self.dbServers[0].each(function (db) { - if (db.get('name') !== fromServer) { - obj[db.get('name')] = { - value: db.get('name'), - label: db.get('name') - }; + self.dbServers[0].fetch({ + success: function () { + self.dbServers[0].each(function (db) { + if (db.get('name') !== fromServer) { + obj[db.get('name')] = { + value: db.get('name'), + label: db.get('name') + }; + } + }); + + _.each(self.shardDistribution[collectionName].Plan[shardName].followers, function (follower) { + delete obj[follower]; + }); + + if (from) { + delete obj[leader]; + } + + _.each(obj, function (value) { + array.push(value); + }); + + array = array.reverse(); + + if (array.length === 0) { + arangoHelper.arangoMessage('Shards', 'No database server for moving the shard is available.'); + return; + } + + tableContent.push( + window.modalView.createSelectEntry( + 'toDBServer', + 'Destination', + undefined, + // this.users !== null ? this.users.whoAmI() : 'root', + 'Please select the target databse server. The selected database ' + + 'server will be the new leader of the shard.', + array + ) + ); + + buttons.push( + window.modalView.createSuccessButton( + 'Move', + self.confirmMoveShards.bind(this, dbName, collectionName, shardName, fromServer) + ) + ); + + window.modalView.show( + 'modalTable.ejs', + 'Move shard: ' + shardName, + buttons, + tableContent + ); } }); - - _.each(self.shardDistribution[collectionName].Plan[shardName].followers, function (follower) { - delete obj[follower]; - }); - - if (from) { - delete obj[leader]; - } - - _.each(obj, function (value) { - array.push(value); - }); - - array = array.reverse(); - - if (array.length === 0) { - arangoHelper.arangoMessage('Shards', 'No database server for moving the shard is available.'); - return; - } - - tableContent.push( - window.modalView.createSelectEntry( - 'toDBServer', - 'Destination', - undefined, - // this.users !== null ? this.users.whoAmI() : 'root', - 'Please select the target databse server. The selected database ' + - 'server will be the new leader of the shard.', - array - ) - ); - - buttons.push( - window.modalView.createSuccessButton( - 'Move', - this.confirmMoveShards.bind(this, dbName, collectionName, shardName, fromServer) - ) - ); - - window.modalView.show( - 'modalTable.ejs', - 'Move shard: ' + shardName, - buttons, - tableContent - ); }, confirmMoveShards: function (dbName, collectionName, shardName, fromServer) {