YARN-5785. [YARN-3368] Accessing applications and containers list from Node page is throwing few exceptions in console. (Akhil P B and Sreenath Somarajapuram via Sunil G)
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-app.js
index eaddfcb..6d69828 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-app.js
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-app.js
@@ -25,22 +25,14 @@
serverName: "NM",
urlForQuery(query) {
- var extension = this.get("host").split('/').pop();
- if (extension != query.nodeAddr) {
- this.host = this.get("host") + query.nodeAddr;
- }
var url = this._buildURL();
- url = url + "/apps";
+ url = url.replace("{nodeAddress}", query.nodeAddr) + "/apps";
return url;
},
urlForQueryRecord: function (query) {
- var extension = this.get("host").split('/').pop();
- if (extension != query.nodeAddr) {
- this.host = this.get("host") + query.nodeAddr;
- }
var url = this._buildURL();
- url = url + "/apps/" + query.appId;
+ url = url.replace("{nodeAddress}", query.nodeAddr) + "/apps/" + query.appId;
return url;
},
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-container.js
index 56c4bcd..0fff047 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-container.js
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-container.js
@@ -25,22 +25,14 @@
serverName: "NM",
urlForQuery(query) {
- var extension = this.get("host").split('/').pop();
- if (extension != query.nodeHttpAddr) {
- this.host = this.get("host") + query.nodeHttpAddr;
- }
var url = this._buildURL();
- url = url + "/containers";
+ url = url.replace("{nodeAddress}", query.nodeHttpAddr) + "/containers";
return url;
},
urlForQueryRecord(query) {
- var extension = this.get("host").split('/').pop();
- if (extension != query.nodeHttpAddr) {
- this.host = this.get("host") + query.nodeHttpAddr;
- }
var url = this._buildURL();
- url = url + "/containers/" + query.containerId;
+ url = url.replace("{nodeAddress}", query.nodeHttpAddr) + "/containers/" + query.containerId;
return url;
},
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node.js
index 7a0fc4a..5bcfc9a 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node.js
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node.js
@@ -25,11 +25,8 @@
serverName: "NM",
urlForFindRecord(id, modelName, snapshot) {
- var extension = this.get("host").split('/').pop();
- if (extension != id) {
- this.host = this.get("host") + id;
- }
var url = this._buildURL();
+ url = url.replace("{nodeAddress}", id);
return url;
},
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-app.js
index 5945813..3dfd776 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-app.js
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-app.js
@@ -68,7 +68,7 @@
// expected return response is of the form { data: [ {}, {} ] }
var normalizedArrayResponse = {};
// payload is of the form { "apps" : { "app": [ {},{},{} ] } }
- if (payload.apps) {
+ if (payload.apps && payload.apps.app) {
normalizedArrayResponse.data = payload.apps.app.map(singleApp => {
return this.internalNormalizeSingleResponse(store, primaryModelClass,
singleApp);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-container.js
index a104f1e..bf19ad7 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-container.js
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-container.js
@@ -54,7 +54,7 @@
requestType) {
// expected return response is of the form { data: [ {}, {} ] }
var normalizedArrayResponse = {};
- if (payload.containers) {
+ if (payload.containers && payload.containers.container) {
// payload is of the form { "containers" : { "container": [ {},{},{} ] } }
normalizedArrayResponse.data =
payload.containers.container.map(singleContainer => {
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/config/default-config.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/config/default-config.js
index c5dbbea..70d4ebc 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/config/default-config.js
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/config/default-config.js
@@ -27,6 +27,6 @@
timeline: 'ws/v1/applicationhistory',
cluster: 'ws/v1/cluster',
metrics: 'ws/v1/cluster/metrics',
- node: 'ws/v1/node'
+ node: '{nodeAddress}/ws/v1/node'
},
};