This is an automated email from the ASF dual-hosted git repository. sunilg pushed a commit to branch branch-3.2 in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.2 by this push: new 253dcde YARN-9543. [UI2] Handle ATSv2 server down or failures cases gracefully in YARN UI v2. Contributed by Zoltan Siegl and Akhil P B. 253dcde is described below commit 253dcde5176a266998aaed0b9f7d10b922e40330 Author: Sunil G <sun...@apache.org> AuthorDate: Fri May 31 12:29:44 2019 +0530 YARN-9543. [UI2] Handle ATSv2 server down or failures cases gracefully in YARN UI v2. Contributed by Zoltan Siegl and Akhil P B. (cherry picked from commit 52128e352a30b70b83483f9290d9e94e98929705) --- .../hadoop-yarn-ui/src/main/webapp/.gitignore | 4 ++++ .../timeline-error.js => adapters/timeline-health.js} | 19 ++++++++++--------- .../src/main/webapp/app/controllers/application.js | 7 +++++++ .../timeline-error.js => models/timeline-health.js} | 16 +++++++--------- .../src/main/webapp/app/routes/application.js | 4 ++++ .../src/main/webapp/app/routes/timeline-error.js | 3 +++ .../timeline-health.js} | 18 ++++++++++-------- .../src/main/webapp/app/templates/application.hbs | 4 ++-- 8 files changed, 47 insertions(+), 28 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/.gitignore b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/.gitignore new file mode 100644 index 0000000..338997f --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/.gitignore @@ -0,0 +1,4 @@ +tmp/ +node_modules/ +bower_components/ +dist/ diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/timeline-error.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/timeline-health.js similarity index 73% copy from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/timeline-error.js copy to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/timeline-health.js index c2e5fc5..8ca2310 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/timeline-error.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/timeline-health.js @@ -16,14 +16,15 @@ * limitations under the License. */ -import Ember from 'ember'; +import RESTAbstractAdapter from './restabstract'; -export default Ember.Route.extend({ - afterModel(model/*, transition*/) { - model.error_id = "error"; - model.isValidErrorCode = false; - if (model.errorCode && model.errorCode !== "0") { - model.isValidErrorCode = true; - } +export default RESTAbstractAdapter.extend({ + address: "timelineWebAddress", + restNameSpace: "timelineV2", + serverName: "ATS", + + urlForQueryRecord(/*query, modelName*/) { + var url = this.buildURL(); + return url + '/health'; } -}); +}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/application.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/application.js index 50a2909..34702ac 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/application.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/application.js @@ -73,4 +73,11 @@ export default Ember.Controller.extend({ } return null; }.property('model.userInfo'), + + isTimelineUnHealthy: function() { + if (this.model && this.model.timelineHealth) { + return this.model.timelineHealth.get('isTimelineUnHealthy'); + } + return true; + }.property('model.timelineHealth') }); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/timeline-error.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/timeline-health.js similarity index 75% copy from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/timeline-error.js copy to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/timeline-health.js index c2e5fc5..367ab07 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/timeline-error.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/timeline-health.js @@ -16,14 +16,12 @@ * limitations under the License. */ -import Ember from 'ember'; +import DS from 'ember-data'; -export default Ember.Route.extend({ - afterModel(model/*, transition*/) { - model.error_id = "error"; - model.isValidErrorCode = false; - if (model.errorCode && model.errorCode !== "0") { - model.isValidErrorCode = true; - } - } +export default DS.Model.extend({ + healthStatus: DS.attr('string'), + + isTimelineUnHealthy: function() { + return this.get('healthStatus') !== 'RUNNING'; + }.property('healthStatus') }); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/application.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/application.js index adb57b1..ead17e1 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/application.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/application.js @@ -27,6 +27,9 @@ export default AbstractRoute.extend({ }), userInfo: this.store.findAll('cluster-user-info', {reload: true}).catch(function() { return null; + }), + timelineHealth: this.store.queryRecord('timeline-health', {}).catch(function() { + return null; }) }); }, @@ -56,5 +59,6 @@ export default AbstractRoute.extend({ unloadAll: function() { this.store.unloadAll('ClusterInfo'); this.store.unloadAll('cluster-user-info'); + this.store.unloadAll('timeline-health'); }, }); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/timeline-error.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/timeline-error.js index c2e5fc5..54fc8d4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/timeline-error.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/timeline-error.js @@ -19,6 +19,9 @@ import Ember from 'ember'; export default Ember.Route.extend({ + model() { + return {}; + }, afterModel(model/*, transition*/) { model.error_id = "error"; model.isValidErrorCode = false; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/timeline-error.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/timeline-health.js similarity index 73% copy from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/timeline-error.js copy to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/timeline-health.js index c2e5fc5..79fb461 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/timeline-error.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/timeline-health.js @@ -16,14 +16,16 @@ * limitations under the License. */ -import Ember from 'ember'; +import DS from 'ember-data'; -export default Ember.Route.extend({ - afterModel(model/*, transition*/) { - model.error_id = "error"; - model.isValidErrorCode = false; - if (model.errorCode && model.errorCode !== "0") { - model.isValidErrorCode = true; - } +export default DS.JSONAPISerializer.extend({ + normalizeSingleResponse(store, primaryModelClass, payload) { + var fixedPayload = { + id: Date.now(), + type: primaryModelClass.modelName, + attributes: payload + }; + + return { data: fixedPayload }; } }); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs index ecb1481..1d469d9 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs @@ -56,8 +56,8 @@ <span class="sr-only">(current)</span> {{/link-to}} {{/link-to}} - {{#link-to 'yarn-flow-activity' tagName="li"}} - {{#link-to 'yarn-flow-activity' class="navigation-link"}}Flow Activity + {{#link-to 'yarn-flow-activity' tagName="li" disabled=isTimelineUnHealthy}} + {{#link-to 'yarn-flow-activity' class="navigation-link" disabled=isTimelineUnHealthy}}Flow Activity <span class="sr-only">(current)</span> {{/link-to}} {{/link-to}} --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org