commit 9fd575c8dddaa10e5532fe39fe7f9cea4e43899e Author: Eric Yang Date: Thu Dec 6 19:52:24 2018 -0500 YARN-9089. Added Terminal Link to UI2 Service component instance page. Contributed by Eric Yang diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-component-instance.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-component-instance.js index 532fc55..c2aa283 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-component-instance.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-component-instance.js @@ -32,6 +32,7 @@ export default DS.Model.extend({ hostUrl: DS.attr('string'), ipAddr: DS.attr('string'), exitStatusCode: DS.attr('string'), + termLink: DS.attr('string'), createdDate: Ember.computed('createdTimestamp', function() { var timestamp = this.get('createdTimestamp'); @@ -47,5 +48,32 @@ export default DS.Model.extend({ return Converter.timeStampToDate(timestamp); } return 'N/A'; + }), + + termLink: Ember.computed('termLink', function() { + var protocol = location.protocol; + var node = this.get('node'); + var httpUrl = window.location.protocol + "//" + + window.location.hostname + ":" + + window.location.port + "/conf?name=" + + "yarn.nodemanager.webapp.address"; + var port = "8042"; + $.ajax({ + type: 'GET', + dataType: 'json', + async: false, + context: this, + url: httpUrl, + success: function(data) { + port = data.property.value.split(":")[1]; + }, + error: function() { + return 'N/A'; + } + }); + var containerId = this.get('containerId'); + var url = protocol + "//" + node + ":" + port + + "/terminal/terminal.template?container=" + containerId; + return url; }) }); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-component-instance/info.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-component-instance/info.js index a67324a..71c2893 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-component-instance/info.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-component-instance/info.js @@ -39,6 +39,11 @@ export default AbstractRoute.extend({ }); }, + afterModel(model) { + const appContrl = this.controllerFor('application'); + model.userInfo = appContrl.get('userInfo'); + }, + unloadAll() { this.store.unloadAll('yarn-component-instance'); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-component-instance.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-component-instance.hbs index a837dd8..a3417b0 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-component-instance.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-component-instance.hbs @@ -20,6 +20,6 @@
- {{outlet}} + {{outlet userInfo=model.userInfo}}
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-component-instance/info.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-component-instance/info.hbs index 1b9d04a..c9157b8 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-component-instance/info.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-component-instance/info.hbs @@ -61,6 +61,10 @@ Exit Status Code {{check-availability model.container.exitStatusCode}} + + Terminal + Link +