YARN-6635. Refactor yarn-app pages in new YARN UI. Contributed by Akhil PB.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/9e4e218f Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/9e4e218f Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/9e4e218f Branch: refs/heads/YARN-3368_branch2 Commit: 9e4e218ff0a729b5b73c7dd67c2154eaab56dfd9 Parents: dd40f6f0 Author: Sunil G <sun...@apache.org> Authored: Tue May 30 13:52:40 2017 +0530 Committer: Varun Saxena <varunsax...@apache.org> Committed: Wed Oct 18 02:06:49 2017 +0530 ---------------------------------------------------------------------- .../webapp/app/controllers/app-table-columns.js | 4 +- .../webapp/app/controllers/yarn-app-attempt.js | 8 +- .../webapp/app/controllers/yarn-app-attempts.js | 57 ------ .../src/main/webapp/app/controllers/yarn-app.js | 56 +++--- .../webapp/app/controllers/yarn-app/attempts.js | 24 +++ .../webapp/app/controllers/yarn-app/charts.js | 28 +++ .../webapp/app/controllers/yarn-app/info.js | 32 ++++ .../app/controllers/yarn-apps/services.js | 31 ---- .../webapp/app/controllers/yarn-flowrun/info.js | 2 +- .../src/main/webapp/app/router.js | 8 +- .../main/webapp/app/routes/yarn-app-attempts.js | 35 ---- .../src/main/webapp/app/routes/yarn-app.js | 35 +--- .../main/webapp/app/routes/yarn-app/attempts.js | 37 ++++ .../main/webapp/app/routes/yarn-app/charts.js | 53 ++++++ .../src/main/webapp/app/routes/yarn-app/info.js | 37 ++++ .../webapp/app/routes/yarn-apps/services.js | 33 ---- .../main/webapp/app/templates/application.hbs | 2 +- .../app/templates/components/app-table.hbs | 6 +- .../webapp/app/templates/yarn-app-attempts.hbs | 58 ------ .../src/main/webapp/app/templates/yarn-app.hbs | 185 +------------------ .../webapp/app/templates/yarn-app/attempts.hbs | 29 +++ .../webapp/app/templates/yarn-app/charts.hbs | 43 +++++ .../main/webapp/app/templates/yarn-app/info.hbs | 167 +++++++++++++++++ .../webapp/app/templates/yarn-app/loading.hbs | 23 +++ .../src/main/webapp/app/templates/yarn-apps.hbs | 5 +- .../webapp/app/templates/yarn-apps/services.hbs | 25 --- .../main/webapp/app/templates/yarn-services.hbs | 3 +- .../unit/controllers/yarn-app-attempts-test.js | 30 --- .../unit/controllers/yarn-app/attempts-test.js | 30 +++ .../unit/controllers/yarn-app/charts-test.js | 30 +++ .../unit/controllers/yarn-app/info-test.js | 30 +++ .../unit/controllers/yarn-apps/services-test.js | 30 --- .../tests/unit/routes/yarn-app-attempts-test.js | 29 --- .../tests/unit/routes/yarn-app/attempts-test.js | 29 +++ .../tests/unit/routes/yarn-app/charts-test.js | 29 +++ .../tests/unit/routes/yarn-app/info-test.js | 29 +++ 36 files changed, 714 insertions(+), 578 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/app-table-columns.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/app-table-columns.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/app-table-columns.js index 704abfb..8a34f1a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/app-table-columns.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/app-table-columns.js @@ -38,7 +38,7 @@ export default Ember.Controller.extend({ getCellContent: function(row) { return { displayText: row.id, - href: `#/yarn-app/${row.id}` + href: `#/yarn-app/${row.id}/info` }; } }, { @@ -112,7 +112,7 @@ export default Ember.Controller.extend({ getCellContent: function(row) { return { displayText: row.get('appName'), - href: `#/yarn-app/${row.id}?service=${row.get('appName')}` + href: `#/yarn-app/${row.id}/info?service=${row.get('appName')}` }; } }, { http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app-attempt.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app-attempt.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app-attempt.js index fbe6fa9..1121a84 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app-attempt.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app-attempt.js @@ -34,10 +34,10 @@ export default Ember.Controller.extend({ routeName: 'yarn-apps.apps' }, { text: `App [${appId}]`, - href: `#/yarn-app/${appId}` + href: `#/yarn-app/${appId}/info` }, { text: "Attempts", - href: `#/yarn-app-attempts/${appId}` + href: `#/yarn-app/${appId}/attempts` }, { text: `Attempt [${attemptId}]` }]; @@ -50,10 +50,10 @@ export default Ember.Controller.extend({ routeName: 'yarn-services' }, { text: `${serviceName} [${appId}]`, - href: `#/yarn-app/${appId}?service=${serviceName}` + href: `#/yarn-app/${appId}/info?service=${serviceName}` }, { text: "Attempts", - href: `#/yarn-app-attempts/${appId}?service=${serviceName}` + href: `#/yarn-app/${appId}/attempts?service=${serviceName}` }, { text: `Attempt [${attemptId}]` }]; http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app-attempts.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app-attempts.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app-attempts.js deleted file mode 100644 index 77e531e..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app-attempts.js +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Ember from 'ember'; - -export default Ember.Controller.extend({ - queryParams: ["service"], - service: undefined, - - breadcrumbs: Ember.computed("model.appId", function () { - var appId = this.get("model.appId"); - var serviceName = this.get('service'); - var breadcrumbs = [{ - text: "Home", - routeName: 'application' - },{ - text: "Applications", - routeName: 'yarn-apps.apps' - }, { - text: `App [${appId}]`, - href: `#/yarn-app/${appId}` - }, { - text: "Attempts", - }]; - if (serviceName) { - breadcrumbs = [{ - text: "Home", - routeName: 'application' - }, { - text: "Services", - routeName: 'yarn-services' - }, { - text: `${serviceName} [${appId}]`, - href: `#/yarn-app/${appId}?service=${serviceName}` - }, { - text: "Attempts" - }]; - } - return breadcrumbs; - }) - -}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app.js index e7d65cd..c40697f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app.js @@ -19,42 +19,44 @@ import Ember from 'ember'; export default Ember.Controller.extend({ - queryParams: ["service"], - service: undefined, + appId: '', + serviceName: undefined, - breadcrumbs: Ember.computed("model.app.id", function () { - var appId = this.get("model.app.id"); - var serviceName = this.get('service'); + breadcrumbs: [{ + text: "Home", + routeName: 'application' + }, { + text: "Applications", + routeName: 'yarn-apps.apps' + }, { + text: 'App' + }], + + updateBreadcrumbs(appId, serviceName, tailCrumbs) { var breadcrumbs = [{ text: "Home", routeName: 'application' - },{ - text: "Applications", - routeName: 'yarn-apps.apps' - }, { - text: `App [${appId}]`, - href: `#/yarn-app/${appId}` }]; - if (serviceName) { - breadcrumbs = [{ - text: "Home", - routeName: 'application' - }, { + if (appId && serviceName) { + breadcrumbs.push({ text: "Services", routeName: 'yarn-services' }, { text: `${serviceName} [${appId}]`, - href: `#/yarn-app/${appId}?service=${serviceName}` - }]; + href: `#/yarn-app/${appId}/info?service=${serviceName}` + }); + } else { + breadcrumbs.push({ + text: "Applications", + routeName: 'yarn-apps.apps' + }, { + text: `App [${appId}]`, + href: `#/yarn-app/${appId}/info` + }); } - return breadcrumbs; - }), - - amHostHttpAddressFormatted: Ember.computed('model.app.amHostHttpAddress', function() { - var amHostAddress = this.get('model.app.amHostHttpAddress'); - if (amHostAddress && amHostAddress.indexOf('://') < 0) { - amHostAddress = 'http://' + amHostAddress; + if (tailCrumbs) { + breadcrumbs.pushObjects(tailCrumbs); } - return amHostAddress; - }) + this.set('breadcrumbs', breadcrumbs); + } }); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/attempts.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/attempts.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/attempts.js new file mode 100644 index 0000000..a6cba9e --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/attempts.js @@ -0,0 +1,24 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Ember from 'ember'; + +export default Ember.Controller.extend({ + queryParams: ["service"], + service: undefined +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/charts.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/charts.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/charts.js new file mode 100644 index 0000000..1078b14 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/charts.js @@ -0,0 +1,28 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Ember from 'ember'; + +export default Ember.Controller.extend({ + queryParams: ["service"], + service: undefined, + + isRunningApp: Ember.computed('model.app.state', function() { + return this.get('model.app.state') === "RUNNING"; + }) +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/info.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/info.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/info.js new file mode 100644 index 0000000..f9652f9 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-app/info.js @@ -0,0 +1,32 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Ember from 'ember'; + +export default Ember.Controller.extend({ + queryParams: ["service"], + service: undefined, + + amHostHttpAddressFormatted: Ember.computed('model.app.amHostHttpAddress', function() { + var amHostAddress = this.get('model.app.amHostHttpAddress'); + if (amHostAddress && amHostAddress.indexOf('://') < 0) { + amHostAddress = 'http://' + amHostAddress; + } + return amHostAddress; + }) +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-apps/services.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-apps/services.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-apps/services.js deleted file mode 100644 index fffaf17..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-apps/services.js +++ /dev/null @@ -1,31 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Ember from 'ember'; -import TableDefinition from 'em-table/utils/table-definition'; -import AppTableController from '../app-table-columns'; - -export default AppTableController.extend({ - queryParams: ['searchText', 'sortColumnId', 'sortOrder', 'pageNum', 'rowCount'], - tableDefinition: TableDefinition.create(), - searchText: Ember.computed.alias('tableDefinition.searchText'), - sortColumnId: Ember.computed.alias('tableDefinition.sortColumnId'), - sortOrder: Ember.computed.alias('tableDefinition.sortOrder'), - pageNum: Ember.computed.alias('tableDefinition.pageNum'), - rowCount: Ember.computed.alias('tableDefinition.rowCount') -}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-flowrun/info.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-flowrun/info.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-flowrun/info.js index df2f87e..63e17dc 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-flowrun/info.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-flowrun/info.js @@ -32,7 +32,7 @@ function createColumn() { minWidth: "300px", getCellContent: function (row) { return { - routeName: 'yarn-app', + routeName: 'yarn-app.info', id: row.get('appId'), displayText: row.get('appId') }; http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/router.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/router.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/router.js index 00d6d3e..9013142 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/router.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/router.js @@ -26,7 +26,6 @@ var Router = Ember.Router.extend({ Router.map(function() { this.route('yarn-apps', function () { this.route('apps'); - this.route('services'); }); this.route('yarn-services'); this.route('yarn-nodes', function(){ @@ -50,11 +49,14 @@ Router.map(function() { '/yarn-container-log/:node_id/:node_addr/:container_id/:filename' }); this.route('cluster-overview'); - this.route('yarn-app', { path: '/yarn-app/:app_id' }); + this.route('yarn-app', function() { + this.route('info', {path: '/:app_id/info'}); + this.route('attempts', {path: '/:app_id/attempts'}); + this.route('charts', {path: '/:app_id/charts'}); + }); this.route('yarn-app-attempt', { path: '/yarn-app-attempt/:app_attempt_id'}); this.route('error'); this.route('notfound', { path: '*:' }); - this.route('yarn-app-attempts', { path: '/yarn-app-attempts/:app_id' }); this.route('yarn-queues', { path: '/yarn-queues/:queue_name' }); this.route('yarn-flow-activity'); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempts.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempts.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempts.js deleted file mode 100644 index 233bfc8..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempts.js +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Ember from 'ember'; -import AbstractRoute from './abstract'; -import AppAttemptMixin from 'yarn-ui/mixins/app-attempt'; - -export default AbstractRoute.extend(AppAttemptMixin, { - model(param) { - return Ember.RSVP.hash({ - appId: param.app_id, - attempts: this.fetchAttemptListFromRMorATS(param.app_id, this.store) - }); - }, - - unloadAll() { - this.store.unloadAll('yarn-app-attempt'); - this.store.unloadAll('yarn-timeline-appattempt'); - } -}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app.js index 98b0cc8..58e3fe3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app.js @@ -16,35 +16,14 @@ * limitations under the License. */ -import Ember from 'ember'; import AbstractRoute from './abstract'; -import AppAttemptMixin from 'yarn-ui/mixins/app-attempt'; -export default AbstractRoute.extend(AppAttemptMixin, { - model(param) { - return Ember.RSVP.hash({ - app: this.fetchAppInfoFromRMorATS(param.app_id, this.store), - - rmContainers: this.store.find('yarn-app', param.app_id).then(function() { - return this.store.query('yarn-app-attempt', {appId: param.app_id}).then(function (attempts) { - if (attempts && attempts.get('firstObject')) { - var appAttemptId = attempts.get('firstObject').get('appAttemptId'); - return this.store.query('yarn-container', { - app_attempt_id: appAttemptId - }); - } - }.bind(this)); - }.bind(this)), - - nodes: this.store.findAll('yarn-rm-node', {reload: true}), - }); - }, - - unloadAll() { - this.store.unloadAll('yarn-app'); - this.store.unloadAll('yarn-app-attempt'); - this.store.unloadAll('yarn-container'); - this.store.unloadAll('yarn-rm-node'); - this.store.unloadAll('yarn-app-timeline'); +export default AbstractRoute.extend({ + actions: { + updateBreadcrumbs(appId, serviceName, tailCrumbs) { + var controller = this.controllerFor('yarn-app'); + controller.setProperties({appId: appId, serviceName: serviceName}); + controller.updateBreadcrumbs(appId, serviceName, tailCrumbs); + } } }); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/attempts.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/attempts.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/attempts.js new file mode 100644 index 0000000..fcea111 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/attempts.js @@ -0,0 +1,37 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Ember from 'ember'; +import AbstractRoute from '../abstract'; +import AppAttemptMixin from 'yarn-ui/mixins/app-attempt'; + +export default AbstractRoute.extend(AppAttemptMixin, { + model(param, transition) { + transition.send('updateBreadcrumbs', param.app_id, param.service, [{text: 'Attempts'}]); + return Ember.RSVP.hash({ + appId: param.app_id, + serviceName: param.service, + attempts: this.fetchAttemptListFromRMorATS(param.app_id, this.store) + }); + }, + + unloadAll() { + this.store.unloadAll('yarn-app-attempt'); + this.store.unloadAll('yarn-timeline-appattempt'); + } +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/charts.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/charts.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/charts.js new file mode 100644 index 0000000..1b687db --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/charts.js @@ -0,0 +1,53 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Ember from 'ember'; +import AbstractRoute from '../abstract'; + +export default AbstractRoute.extend({ + model(param, transition) { + transition.send('updateBreadcrumbs', param.app_id, param.service, [{text: "Charts"}]); + return Ember.RSVP.hash({ + appId: param.app_id, + serviceName: param.service, + + app: this.store.find('yarn-app', param.app_id), + + rmContainers: this.store.find('yarn-app', param.app_id).then(function() { + return this.store.query('yarn-app-attempt', {appId: param.app_id}).then(function (attempts) { + if (attempts && attempts.get('firstObject')) { + var appAttemptId = attempts.get('firstObject').get('appAttemptId'); + return this.store.query('yarn-container', { + app_attempt_id: appAttemptId, + is_rm: true + }); + } + }.bind(this)); + }.bind(this)), + + nodes: this.store.findAll('yarn-rm-node') + }); + }, + + unloadAll() { + this.store.unloadAll('yarn-app'); + this.store.unloadAll('yarn-app-attempt'); + this.store.unloadAll('yarn-container'); + this.store.unloadAll('yarn-rm-node'); + } +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/info.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/info.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/info.js new file mode 100644 index 0000000..4a4b19e --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app/info.js @@ -0,0 +1,37 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Ember from 'ember'; +import AbstractRoute from '../abstract'; +import AppAttemptMixin from 'yarn-ui/mixins/app-attempt'; + +export default AbstractRoute.extend(AppAttemptMixin, { + model(param, transition) { + transition.send('updateBreadcrumbs', param.app_id, param.service); + return Ember.RSVP.hash({ + appId: param.app_id, + serviceName: param.service, + app: this.fetchAppInfoFromRMorATS(param.app_id, this.store) + }); + }, + + unloadAll() { + this.store.unloadAll('yarn-app'); + this.store.unloadAll('yarn-app-timeline'); + } +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-apps/services.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-apps/services.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-apps/services.js deleted file mode 100644 index 34ad1ad..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-apps/services.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Ember from 'ember'; - -export default Ember.Route.extend({ - model() { - return Ember.RSVP.hash({ - apps: this.store.query('yarn-app', { - applicationTypes: "org-apache-slider" - }), - }); - }, - - unloadAll() { - this.store.unloadAll('yarn-app'); - } -}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs ---------------------------------------------------------------------- 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 c3154b4..e988e0c 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 @@ -46,7 +46,7 @@ <span class="sr-only">(current)</span> {{/link-to}} {{/link-to}} - {{#link-to 'yarn-apps.apps' tagName="li" current-when="yarn-apps.apps yarn-apps.services"}} + {{#link-to 'yarn-apps.apps' tagName="li" current-when="yarn-apps.apps"}} {{#link-to 'yarn-apps.apps' class="navigation-link"}}Applications <span class="sr-only">(current)</span> {{/link-to}} http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-table.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-table.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-table.hbs index a036a0c..3bad063 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-table.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-table.hbs @@ -38,7 +38,7 @@ {{#if arr}} {{#each arr as |app|}} <tr> - <td><a href="#/yarn-app/{{app.id}}">{{app.id}}</a></td> + <td><a href="#/yarn-app/{{app.id}}/info">{{app.id}}</a></td> <td>{{app.applicationType}}</td> <td>{{app.appName}}</td> <td>{{app.user}}</td> @@ -61,7 +61,7 @@ {{/each}} {{else}} <tr> - <td><a href="#/yarn-app/{{app.id}}">{{app.id}}</a></td> + <td><a href="#/yarn-app/{{app.id}}/info">{{app.id}}</a></td> <td>{{app.applicationType}}</td> <td>{{app.appName}}</td> <td>{{app.user}}</td> @@ -83,4 +83,4 @@ </tr> {{/if}} </tbody> -</table> \ No newline at end of file +</table> http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app-attempts.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app-attempts.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app-attempts.hbs deleted file mode 100644 index 283d78a..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app-attempts.hbs +++ /dev/null @@ -1,58 +0,0 @@ -{{! - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. -}} - -{{breadcrumb-bar breadcrumbs=breadcrumbs}} - -<div class="col-md-12 container-fluid"> - <div class="row"> - - <div class="col-md-2 container-fluid"> - <div class="panel panel-default"> - <div class="panel-heading"> - {{#if service}} - Service - {{else}} - Application - {{/if}} - </div> - <div class="panel-body"> - <ul class="nav nav-pills nav-stacked" id="stacked-menu"> - <ul class="nav nav-pills nav-stacked collapse in"> - {{#link-to 'yarn-app' tagName="li"}} - {{#link-to 'yarn-app' model.appId (query-params service=service)}}Information - {{/link-to}} - {{/link-to}} - {{#link-to 'yarn-app-attempts' tagName="li"}} - {{#link-to 'yarn-app-attempts' model.appId (query-params service=service)}}Attempts List - {{/link-to}} - {{/link-to}} - </ul> - </ul> - </div> - </div> - </div> - - <div class="col-md-10 container-fluid"> - <div class="row"> - {{timeline-view parent-id="attempt-timeline-div" my-id="timeline-view" height="100%" rmModel=model.attempts label="shortAppAttemptId" attemptModel=true serviceName=service}} - </div> - </div> - - </div> -</div> -{{outlet}} http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app.hbs index c1f5352..2fb5ab3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app.hbs @@ -18,14 +18,13 @@ {{breadcrumb-bar breadcrumbs=breadcrumbs}} -{{#if model.app}} <div class="col-md-12 container-fluid"> <div class="row"> <div class="col-md-2 container-fluid"> <div class="panel panel-default"> <div class="panel-heading"> - {{#if service}} + {{#if serviceName}} Service {{else}} Application @@ -34,13 +33,14 @@ <div class="panel-body"> <ul class="nav nav-pills nav-stacked" id="stacked-menu"> <ul class="nav nav-pills nav-stacked collapse in"> - {{#link-to 'yarn-app' tagName="li"}} - {{#link-to 'yarn-app' model.app.id (query-params service=service)}}Information - {{/link-to}} + {{#link-to 'yarn-app.info' tagName="li" class=(if (eq target.currentPath 'yarn-app.info') "active")}} + {{#link-to 'yarn-app.info' appId (query-params service=serviceName)}}Information{{/link-to}} {{/link-to}} - {{#link-to 'yarn-app-attempts' tagName="li"}} - {{#link-to 'yarn-app-attempts' model.app.id (query-params service=service)}}Attempts List - {{/link-to}} + {{#link-to 'yarn-app.attempts' tagName="li" class=(if (eq target.currentPath 'yarn-app.attempts') "active")}} + {{#link-to 'yarn-app.attempts' appId (query-params service=serviceName)}}Attempts List{{/link-to}} + {{/link-to}} + {{#link-to 'yarn-app.charts' tagName="li" class=(if (eq target.currentPath 'yarn-app.charts') "active")}} + {{#link-to 'yarn-app.charts' appId (query-params service=serviceName)}}Resource Usage{{/link-to}} {{/link-to}} </ul> </ul> @@ -49,174 +49,7 @@ </div> <div class="col-md-10 container-fluid"> - <div class="row"> - <div class="col-md-12"> - {{app-timeout-bar app=model.app}} - </div> - </div> - - <div class="row"> - <div class="col-md-12 container-fluid"> - <div class="panel panel-default"> - <div class="panel-heading">Basic Info</div> - <div class="x-scroll"> - <table class="display table table-striped table-bordered" - cellspacing="0" width="100%"> - <thead> - <tr> - <th>Application ID</th> - <th>Name</th> - <th>User</th> - <th>Queue</th> - <th>State</th> - <th>Final Status</th> - <th>Start Time</th> - <th>Elapsed Time</th> - <th>Finished Time</th> - <th>Priority</th> - <th>Progress</th> - <th>Is Unmanaged AM</th> - </tr> - </thead> - - <tbody> - <tr> - <td>{{model.app.id}}</td> - <td>{{model.app.appName}}</td> - <td>{{model.app.user}}</td> - <td>{{model.app.queue}}</td> - <td>{{model.app.state}}</td> - <td> - <span class={{model.app.finalStatusStyle}}> - {{model.app.finalStatus}} - </span> - </td> - <td>{{model.app.startTime}}</td> - <td>{{model.app.formattedElapsedTime}}</td> - <td>{{model.app.validatedFinishedTs}}</td> - <td>{{model.app.priority}}</td> - <td> - <div class="progress" style="margin-bottom: 0;"> - <div class="progress-bar" role="progressbar" - aria-valuenow="60" aria-valuemin="0" - aria-valuemax="100" - style={{model.app.progressStyle}}> - {{model.app.progress}}% - </div> - </div> - </td> - <td>{{model.app.unmanagedApplication}}</td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - </div> - - <div class="row"> - {{#if model.app.diagnostics}} - <div class="col-md-12 container-fluid"> - {{#if model.app.isFailed}} - <div class="panel panel-danger"> - <div class="panel-heading"> - Diagnostics - </div> - <div class="panel-body">{{model.app.diagnostics}}</div> - </div> - {{else}} - <div class="panel panel-default"> - <div class="panel-heading"> - Diagnostics - </div> - <div class="panel-body">{{model.app.diagnostics}}</div> - </div> - {{/if}} - </div> - {{/if}} - </div> - - <div class="row"> - <div class="col-md-8 container-fluid"> - <div class="panel panel-default"> - <div class="panel-heading">Scheduling Info</div> - <table class="display table table-striped table-bordered" - cellspacing="0" width="100%"> - <thead> - <tr> - <th>Allocated Resource</th> - <th>Running Containers</th> - <th>Preempted Resource</th> - <th>Num Non-AM container preempted</th> - <th>Num AM container preempted</th> - <th>Aggregated Resource Usage</th> - </tr> - </thead> - - <tbody> - <tr> - <td>{{model.app.allocatedResource}}</td> - <td>{{model.app.runningContainersNumber}}</td> - <td>{{model.app.preemptedResource}}</td> - <td>{{model.app.numAMContainerPreempted}}</td> - <td>{{model.app.numAMContainerPreempted}}</td> - <td>{{model.app.aggregatedResourceUsage}}</td> - </tr> - </tbody> - </table> - </div> - </div> - - <div class="col-md-4 container-fluid"> - <div class="panel panel-default"> - <div class="panel-heading">Application Master Info</div> - <table class="display table table-striped table-bordered" - cellspacing="0" width="100%"> - <thead> - <tr> - <th>Master Container Log</th> - <th>Master Node</th> - <th>Master Node Label Expression</th> - </tr> - </thead> - - <tbody> - <tr> - <td><a href="{{model.app.amContainerLogs}}" target="_blank">Link</a></td> - <td><a href="{{amHostHttpAddressFormatted}}" target="_blank">Link</a></td> - <td>{{model.app.amNodeLabelExpression}}</td> - </tr> - </tbody> - </table> - </div> - </div> - </div> - - {{#if model.nodes}} - {{#if model.rmContainers}} - <div class="row" id="stackd-bar-chart-mem"> - {{per-app-memusage-by-nodes-stacked-barchart - nodes=model.nodes - rmContainers=model.rmContainers - parentId="stackd-bar-chart-mem" - title=(concat 'Memory usage by nodes for: [' model.app.id ']')}} - </div> - - <hr> - - <div class="row" id="stackd-bar-chart-ncontainer"> - {{per-app-ncontainers-by-nodes-stacked-barchart - nodes=model.nodes - rmContainers=model.rmContainers - parentId="stackd-bar-chart-ncontainer" - title=(concat 'Running #Containers by nodes for: [' model.app.id ']')}} - </div> - {{/if}} - {{/if}} - - + {{outlet}} </div> </div> </div> -{{/if}} -{{outlet}} http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/attempts.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/attempts.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/attempts.hbs new file mode 100644 index 0000000..81896e2 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/attempts.hbs @@ -0,0 +1,29 @@ +{{! + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +}} + +<div class="row"> + {{timeline-view + parent-id="attempt-timeline-div" + my-id="timeline-view" + height="100%" + rmModel=model.attempts + label="shortAppAttemptId" + attemptModel=true + serviceName=model.serviceName + }} +</div> http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/charts.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/charts.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/charts.hbs new file mode 100644 index 0000000..8d3388a --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/charts.hbs @@ -0,0 +1,43 @@ +{{! + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +}} + +<div class="row"> + <div class="col-md-12 container-fluid"> + {{#if isRunningApp}} + <div class="row" id="stackd-bar-chart-mem"> + {{per-app-memusage-by-nodes-stacked-barchart + nodes=model.nodes + rmContainers=model.rmContainers + parentId="stackd-bar-chart-mem" + title=(concat 'Memory usage by nodes for: [' model.appId ']')}} + </div> + <hr> + <div class="row" id="stackd-bar-chart-ncontainer"> + {{per-app-ncontainers-by-nodes-stacked-barchart + nodes=model.nodes + rmContainers=model.rmContainers + parentId="stackd-bar-chart-ncontainer" + title=(concat 'Running #Containers by nodes for: [' model.appId ']')}} + </div> + {{else}} + <div class="panel panel-default"> + <h4 class="text-center">No resource usage data is available for this application!</h4> + </div> + {{/if}} + </div> +</div> http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/info.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/info.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/info.hbs new file mode 100644 index 0000000..3cfec33 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/info.hbs @@ -0,0 +1,167 @@ +{{! + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +}} + +<div class="row"> + <div class="col-md-12"> + {{app-timeout-bar app=model.app}} + </div> +</div> + +<div class="row"> + <div class="col-md-12 container-fluid"> + <div class="panel panel-default"> + <div class="panel-heading"> + Basic Info + </div> + <div class="x-scroll"> + <table class="display table table-striped table-bordered" + cellspacing="0" width="100%"> + <thead> + <tr> + <th>Application ID</th> + <th>Name</th> + <th>User</th> + <th>Queue</th> + <th>State</th> + <th>Final Status</th> + <th>Start Time</th> + <th>Elapsed Time</th> + <th>Finished Time</th> + <th>Priority</th> + {{#unless model.serviceName}} + <th>Progress</th> + <th>Is Unmanaged AM</th> + {{/unless}} + </tr> + </thead> + + <tbody> + <tr> + <td>{{model.app.id}}</td> + <td>{{model.app.appName}}</td> + <td>{{model.app.user}}</td> + <td>{{model.app.queue}}</td> + <td>{{model.app.state}}</td> + <td> + <span class={{model.app.finalStatusStyle}}> + {{model.app.finalStatus}} + </span> + </td> + <td>{{model.app.startTime}}</td> + <td>{{model.app.formattedElapsedTime}}</td> + <td>{{model.app.validatedFinishedTs}}</td> + <td>{{model.app.priority}}</td> + {{#unless model.serviceName}} + <td> + <div class="progress" style="margin-bottom: 0;"> + <div class="progress-bar" role="progressbar" + aria-valuenow="60" aria-valuemin="0" + aria-valuemax="100" + style={{model.app.progressStyle}}> + {{model.app.progress}}% + </div> + </div> + </td> + <td>{{model.app.unmanagedApplication}}</td> + {{/unless}} + </tr> + </tbody> + </table> + </div> + </div> + </div> +</div> + +<div class="row"> + {{#if model.app.diagnostics}} + <div class="col-md-12 container-fluid"> + {{#if model.app.isFailed}} + <div class="panel panel-danger"> + <div class="panel-heading"> + Diagnostics + </div> + <div class="panel-body">{{model.app.diagnostics}}</div> + </div> + {{else}} + <div class="panel panel-default"> + <div class="panel-heading"> + Diagnostics + </div> + <div class="panel-body">{{model.app.diagnostics}}</div> + </div> + {{/if}} + </div> + {{/if}} +</div> + +<div class="row"> + <div class="col-md-12 container-fluid"> + <div class="panel panel-default"> + <div class="panel-heading">Scheduling Info</div> + <table class="display table table-striped table-bordered" + cellspacing="0" width="100%"> + <thead> + <tr> + <th>Allocated Resource</th> + <th>Running Containers</th> + <th>Preempted Resource</th> + <th>Num Non-AM container preempted</th> + <th>Num AM container preempted</th> + <th>Aggregated Resource Usage</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{model.app.allocatedResource}}</td> + <td>{{model.app.runningContainersNumber}}</td> + <td>{{model.app.preemptedResource}}</td> + <td>{{model.app.numAMContainerPreempted}}</td> + <td>{{model.app.numAMContainerPreempted}}</td> + <td>{{model.app.aggregatedResourceUsage}}</td> + </tr> + </tbody> + </table> + </div> + </div> + +</div> + +<div class="row"> + <div class="col-md-6 container-fluid"> + <div class="panel panel-default"> + <div class="panel-heading">Application Master Info</div> + <table class="display table table-striped table-bordered" + cellspacing="0" width="100%"> + <thead> + <tr> + <th>Master Container Log</th> + <th>Master Node</th> + <th>Master Node Label Expression</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="{{model.app.amContainerLogs}}" target="_blank">Link</a></td> + <td><a href="{{amHostHttpAddressFormatted}}" target="_blank">Link</a></td> + <td>{{model.app.amNodeLabelExpression}}</td> + </tr> + </tbody> + </table> + </div> + </div> +</div> http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/loading.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/loading.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/loading.hbs new file mode 100644 index 0000000..a95af2b --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app/loading.hbs @@ -0,0 +1,23 @@ +{{! + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +}} + +<div class="col-md-12 container-fluid"> + <div class="loading-mask"> + <img src="assets/images/spinner.gif" alt="Loading..."> + </div> +</div> http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps.hbs index 264e6b6..00701d9 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps.hbs @@ -24,14 +24,13 @@ <div class="col-md-2 container-fluid"> <div class="panel panel-default"> <div class="panel-heading"> - <h4>Applications</h4> + Applications </div> <div class="panel-body"> <ul class="nav nav-pills nav-stacked" id="stacked-menu"> <ul class="nav nav-pills nav-stacked collapse in"> {{#link-to 'yarn-apps.apps' tagName="li"}} - {{#link-to 'yarn-apps.apps'}}All Applications - {{/link-to}} + {{#link-to 'yarn-apps.apps'}}All Applications{{/link-to}} {{/link-to}} </ul> </ul> http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps/services.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps/services.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps/services.hbs deleted file mode 100644 index d56762c..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps/services.hbs +++ /dev/null @@ -1,25 +0,0 @@ -{{!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---}} - -{{#if model.apps}} - {{em-table columns=columns rows=model.apps definition=tableDefinition}} -{{else}} - <h4 align="center">Could not find any applications from this cluster</h4> -{{/if}} - -{{outlet}} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-services.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-services.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-services.hbs index 9637a93..04788be 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-services.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-services.hbs @@ -31,8 +31,7 @@ <ul class="nav nav-pills nav-stacked" id="stacked-menu"> <ul class="nav nav-pills nav-stacked collapse in"> {{#link-to 'yarn-services' tagName="li"}} - {{#link-to 'yarn-services'}}Long Running Services - {{/link-to}} + {{#link-to 'yarn-services'}}Long Running Services{{/link-to}} {{/link-to}} </ul> </ul> http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app-attempts-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app-attempts-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app-attempts-test.js deleted file mode 100644 index 3894db2..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app-attempts-test.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { moduleFor, test } from 'ember-qunit'; - -moduleFor('controller:yarn-app-attempts', 'Unit | Controller | yarn app attempts', { - // Specify the other units that are required for this test. - // needs: ['controller:foo'] -}); - -// Replace this with your real tests. -test('it exists', function(assert) { - let controller = this.subject(); - assert.ok(controller); -}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app/attempts-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app/attempts-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app/attempts-test.js new file mode 100644 index 0000000..b8bad85 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app/attempts-test.js @@ -0,0 +1,30 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('controller:yarn-app/attempts', 'Unit | Controller | yarn app/attempts', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + let controller = this.subject(); + assert.ok(controller); +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app/charts-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app/charts-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app/charts-test.js new file mode 100644 index 0000000..91acb6c --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app/charts-test.js @@ -0,0 +1,30 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('controller:yarn-app/charts', 'Unit | Controller | yarn app/charts', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + let controller = this.subject(); + assert.ok(controller); +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app/info-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app/info-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app/info-test.js new file mode 100644 index 0000000..910d3ef --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-app/info-test.js @@ -0,0 +1,30 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('controller:yarn-app/info', 'Unit | Controller | yarn app/info', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +// Replace this with your real tests. +test('it exists', function(assert) { + let controller = this.subject(); + assert.ok(controller); +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-apps/services-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-apps/services-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-apps/services-test.js deleted file mode 100644 index d0a1f85..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-apps/services-test.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { moduleFor, test } from 'ember-qunit'; - -moduleFor('controller:yarn-apps/services', 'Unit | Controller | yarn apps/services', { - // Specify the other units that are required for this test. - // needs: ['controller:foo'] -}); - -// Replace this with your real tests. -test('it exists', function(assert) { - let controller = this.subject(); - assert.ok(controller); -}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app-attempts-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app-attempts-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app-attempts-test.js deleted file mode 100644 index 917a159..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app-attempts-test.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { moduleFor, test } from 'ember-qunit'; - -moduleFor('route:yarn-app-attempts', 'Unit | Route | yarn app attempts', { - // Specify the other units that are required for this test. - // needs: ['controller:foo'] -}); - -test('it exists', function(assert) { - let route = this.subject(); - assert.ok(route); -}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app/attempts-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app/attempts-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app/attempts-test.js new file mode 100644 index 0000000..eaf2f65 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app/attempts-test.js @@ -0,0 +1,29 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:yarn-app/attempts', 'Unit | Route | yarn app/attempts', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +test('it exists', function(assert) { + let route = this.subject(); + assert.ok(route); +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app/charts-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app/charts-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app/charts-test.js new file mode 100644 index 0000000..1284c6f --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app/charts-test.js @@ -0,0 +1,29 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:yarn-app/charts', 'Unit | Route | yarn app/charts', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +test('it exists', function(assert) { + let route = this.subject(); + assert.ok(route); +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/9e4e218f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app/info-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app/info-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app/info-test.js new file mode 100644 index 0000000..f7dd6c8 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-app/info-test.js @@ -0,0 +1,29 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { moduleFor, test } from 'ember-qunit'; + +moduleFor('route:yarn-app/info', 'Unit | Route | yarn app/info', { + // Specify the other units that are required for this test. + // needs: ['controller:foo'] +}); + +test('it exists', function(assert) { + let route = this.subject(); + assert.ok(route); +}); --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org