From 2c246c860c1f9408350c99edb711049ad97877d9 Mon Sep 17 00:00:00 2001 From: Michael Hackstein Date: Tue, 19 Apr 2016 17:07:18 +0200 Subject: [PATCH 1/7] Fixed a bug in general-graph module. It was possible to create a graph using document collections for relations. This did lead into undefined behaviour. --- js/common/modules/@arangodb/general-graph.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/js/common/modules/@arangodb/general-graph.js b/js/common/modules/@arangodb/general-graph.js index 584bc98f09..6682d4a6da 100644 --- a/js/common/modules/@arangodb/general-graph.js +++ b/js/common/modules/@arangodb/general-graph.js @@ -87,6 +87,11 @@ var findOrCreateCollectionByName = function (name, type, noCreate) { err.errorNum = arangodb.errors.ERROR_GRAPH_NOT_AN_ARANGO_COLLECTION.code; err.errorMessage = name + arangodb.errors.ERROR_GRAPH_NOT_AN_ARANGO_COLLECTION.message; throw err; + } else if (type == ArangoCollection.TYPE_EDGE && col.type() !== type) { + var err = new ArangoError(); + err.errorNum = arangodb.errors.ERROR_ARANGO_COLLECTION_TYPE_INVALID.code; + err.errorMessage = name + " cannot be used as relation. It is not an edge collection"; + throw err; } return res; }; From 7455347263310664937af838e6c473de266b6cc3 Mon Sep 17 00:00:00 2001 From: Michael Hackstein Date: Tue, 19 Apr 2016 17:08:16 +0200 Subject: [PATCH 2/7] Start Local cluster will now fail if upgrading and bootstrapping fails --- scripts/startLocalCluster.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/scripts/startLocalCluster.sh b/scripts/startLocalCluster.sh index cf641fedeb..fe0535cbf1 100755 --- a/scripts/startLocalCluster.sh +++ b/scripts/startLocalCluster.sh @@ -247,12 +247,21 @@ if [ -n "$SECONDARIES" ]; then fi echo Bootstrapping DBServers... -curl -s -X POST "http://127.0.0.1:8530/_admin/cluster/bootstrapDbServers" \ +curl -s -f -X POST "http://127.0.0.1:8530/_admin/cluster/bootstrapDbServers" \ -d '{"isRelaunch":false}' >> cluster/DBServersUpgrade.log 2>&1 +if [ "$?" != 0 ] ; then + echo "Bootstrapping DBServers failed" + exit 1; +fi + echo Running DB upgrade on cluster... -curl -s -X POST "http://127.0.0.1:8530/_admin/cluster/upgradeClusterDatabase" \ +curl -s -f -X POST "http://127.0.0.1:8530/_admin/cluster/upgradeClusterDatabase" \ -d '{"isRelaunch":false}' >> cluster/DBUpgrade.log 2>&1 +if [ "$?" != 0 ] ; then + echo "DB upgrade on cluster failed" + exit 1; +fi echo Bootstrapping Coordinators... PIDS="" From 95662103f2720c33b7534a1dc8390090a62f6b2f Mon Sep 17 00:00:00 2001 From: Michael Hackstein Date: Tue, 19 Apr 2016 17:39:58 +0200 Subject: [PATCH 3/7] Fixed JSLint --- js/common/modules/@arangodb/general-graph.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/js/common/modules/@arangodb/general-graph.js b/js/common/modules/@arangodb/general-graph.js index 6682d4a6da..77019646f0 100644 --- a/js/common/modules/@arangodb/general-graph.js +++ b/js/common/modules/@arangodb/general-graph.js @@ -87,11 +87,11 @@ var findOrCreateCollectionByName = function (name, type, noCreate) { err.errorNum = arangodb.errors.ERROR_GRAPH_NOT_AN_ARANGO_COLLECTION.code; err.errorMessage = name + arangodb.errors.ERROR_GRAPH_NOT_AN_ARANGO_COLLECTION.message; throw err; - } else if (type == ArangoCollection.TYPE_EDGE && col.type() !== type) { - var err = new ArangoError(); - err.errorNum = arangodb.errors.ERROR_ARANGO_COLLECTION_TYPE_INVALID.code; - err.errorMessage = name + " cannot be used as relation. It is not an edge collection"; - throw err; + } else if (type === ArangoCollection.TYPE_EDGE && col.type() !== type) { + var err2 = new ArangoError(); + err2.errorNum = arangodb.errors.ERROR_ARANGO_COLLECTION_TYPE_INVALID.code; + err2.errorMessage = name + " cannot be used as relation. It is not an edge collection"; + throw err2; } return res; }; From c738773f2299358e3818fcda819671c869c5fc6e Mon Sep 17 00:00:00 2001 From: Andreas Streichardt Date: Tue, 19 Apr 2016 17:40:51 +0200 Subject: [PATCH 4/7] Include guards instead of #pragma once --- arangod/Cluster/AgencyCallback.h | 6 +++++- arangod/Cluster/AgencyCallbackRegistry.h | 5 ++++- arangod/Cluster/RestAgencyCallbacksHandler.h | 5 ++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/arangod/Cluster/AgencyCallback.h b/arangod/Cluster/AgencyCallback.h index edca287cbf..4382d28c17 100644 --- a/arangod/Cluster/AgencyCallback.h +++ b/arangod/Cluster/AgencyCallback.h @@ -21,7 +21,8 @@ /// @author Andreas Streichardt //////////////////////////////////////////////////////////////////////////////// -#pragma once +#ifndef ARANGOD_CLUSTER_AGENCY_CALLBACK_H +#define ARANGOD_CLUSTER_AGENCY_CALLBACK_H 1 #include #include @@ -66,3 +67,6 @@ private: }; } + + +#endif diff --git a/arangod/Cluster/AgencyCallbackRegistry.h b/arangod/Cluster/AgencyCallbackRegistry.h index 4e2605459b..1a44889af5 100644 --- a/arangod/Cluster/AgencyCallbackRegistry.h +++ b/arangod/Cluster/AgencyCallbackRegistry.h @@ -21,7 +21,8 @@ /// @author Andreas Streichardt //////////////////////////////////////////////////////////////////////////////// -#pragma once +#ifndef ARANGOD_CLUSTER_AGENCY_CALLBACK_REGISTRY_H +#define ARANGOD_CLUSTER_AGENCY_CALLBACK_REGISTRY_H 1 #include "Cluster/AgencyCallback.h" #include "Basics/ReadWriteLock.h" @@ -73,3 +74,5 @@ private: }; } + +#endif diff --git a/arangod/Cluster/RestAgencyCallbacksHandler.h b/arangod/Cluster/RestAgencyCallbacksHandler.h index 4f4399f69b..ab4c12d1a4 100644 --- a/arangod/Cluster/RestAgencyCallbacksHandler.h +++ b/arangod/Cluster/RestAgencyCallbacksHandler.h @@ -21,7 +21,8 @@ /// @author Andreas Streichardt //////////////////////////////////////////////////////////////////////////////// -#pragma once +#ifndef ARANGOD_CLUSTER_REST_AGENCY_CALLBACKS_HANDLER_H +#define ARANGOD_CLUSTER_REST_AGENCY_CALLBACKS_HANDLER_H 1 #include "Basics/Common.h" #include "RestHandler/RestVocbaseBaseHandler.h" @@ -52,3 +53,5 @@ class RestAgencyCallbacksHandler : public RestVocbaseBaseHandler { }; } } + +#endif From 1743f2eb498e86e3cf7475d14f6321f752492fa6 Mon Sep 17 00:00:00 2001 From: Andreas Streichardt Date: Tue, 19 Apr 2016 17:41:24 +0200 Subject: [PATCH 5/7] num v8 context 1 in agency to save memory --- scripts/startLocalCluster.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/startLocalCluster.sh b/scripts/startLocalCluster.sh index f21904a979..363653405c 100755 --- a/scripts/startLocalCluster.sh +++ b/scripts/startLocalCluster.sh @@ -44,6 +44,7 @@ build/bin/arangod -c etc/relative/arangod.conf \ --agency.wait-for-sync false \ --database.directory cluster/data4001 \ --agency.id 0 \ + --javascript.v8-contexts 1 \ --log.file cluster/4001.log \ --log.requests-file cluster/4001.req \ --server.disable-statistics true \ From 96d234819941a242af3528e5caf7dd08baa1e3e1 Mon Sep 17 00:00:00 2001 From: hkernbach Date: Tue, 19 Apr 2016 18:01:31 +0200 Subject: [PATCH 6/7] frontend, views, navbar --- .../aardvark/APP/frontend/js/arango/arango.js | 21 ++++++++++--------- .../APP/frontend/js/templates/nodesView.ejs | 6 ++++-- .../APP/frontend/js/views/navigationView.js | 4 ++++ 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/js/apps/system/_admin/aardvark/APP/frontend/js/arango/arango.js b/js/apps/system/_admin/aardvark/APP/frontend/js/arango/arango.js index ceccde2b87..82c37823dd 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/js/arango/arango.js +++ b/js/apps/system/_admin/aardvark/APP/frontend/js/arango/arango.js @@ -228,22 +228,23 @@ var cssClass; _.each(menuItems, function(menu, name) { + cssClass = ''; + if (menu.active) { cssClass += ' active'; + } + if (menu.disabled) { + cssClass += ' disabled'; + } - if (menu.disabled) { - cssClass += ' disabled'; - } - } - else { - cssClass = ''; - } $('#subNavigationBar .bottom').append( '' ); - $('#subNavigationBar .bottom').children().last().bind('click', function() { - window.App.navigate(menu.route, {trigger: true}); - }); + if (!menu.disabled) { + $('#subNavigationBar .bottom').children().last().bind('click', function() { + window.App.navigate(menu.route, {trigger: true}); + }); + } }); }, diff --git a/js/apps/system/_admin/aardvark/APP/frontend/js/templates/nodesView.ejs b/js/apps/system/_admin/aardvark/APP/frontend/js/templates/nodesView.ejs index a4d2cb0155..972d1f0f17 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/js/templates/nodesView.ejs +++ b/js/apps/system/_admin/aardvark/APP/frontend/js/templates/nodesView.ejs @@ -8,10 +8,12 @@ <% if (type !== 'coordinator') { %> <% disabled = " disabled"; %> + <% } else { %> + <% disabled = " "; %> <% } %>
-
+
Name
Address
Protocol
@@ -29,7 +31,7 @@ <% _.each(coords, function(node) { %> -
+
<%= node.name %>
<%= node.address %>
diff --git a/js/apps/system/_admin/aardvark/APP/frontend/js/views/navigationView.js b/js/apps/system/_admin/aardvark/APP/frontend/js/views/navigationView.js index 497cdacae8..622d734474 100644 --- a/js/apps/system/_admin/aardvark/APP/frontend/js/views/navigationView.js +++ b/js/apps/system/_admin/aardvark/APP/frontend/js/views/navigationView.js @@ -300,6 +300,7 @@ menuItem = menuItem.substr(1, menuItem.length - 1); } + //Location for selecting MainView Primary Navigaation Entry if (menuItem === '') { if (window.App.isCluster) { menuItem = 'cluster'; @@ -308,6 +309,9 @@ menuItem = 'dashboard'; } } + else if (menuItem === 'cNodes' || menuItem === 'dNodes') { + menuItem = 'nodes'; + } try { this.renderSubMenu(menuItem.split('-')[0]); } From 95a6540c2e5eaee45ed6a44620c3b372bcf67dea Mon Sep 17 00:00:00 2001 From: Andreas Streichardt Date: Tue, 19 Apr 2016 18:11:18 +0200 Subject: [PATCH 7/7] Fix core dump windows stuff --- js/client/modules/@arangodb/testing.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/client/modules/@arangodb/testing.js b/js/client/modules/@arangodb/testing.js index 7b157c2dcf..bb59e080d7 100644 --- a/js/client/modules/@arangodb/testing.js +++ b/js/client/modules/@arangodb/testing.js @@ -417,7 +417,7 @@ function analyzeCoreDump(instanceInfo, options, storeArangodPath, pid) { //////////////////////////////////////////////////////////////////////////////// function analyzeCoreDumpWindows(instanceInfo) { - const coreFN = instanceInfo.tmpDataDir + "\\" + "core.dmp"; + const coreFN = instanceInfo.rootDir + "\\" + "core.dmp"; if (!fs.exists(coreFN)) { print("core file " + coreFN + " not found?"); @@ -465,7 +465,7 @@ function checkArangoAlive(arangod, options) { const storeArangodPath = "/var/tmp/arangod_" + arangod.pid; print("Core dump written; copying arangod to " + - arangod.tmpDataDir + " for later analysis."); + arangod.rootDir + " for later analysis."); let corePath = (options.coreDirectory === "") ? "core" :