YARN-6184. Introduce loading icon in each page of 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/e66f956f Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e66f956f Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e66f956f Branch: refs/heads/YARN-5355_branch2 Commit: e66f956fab38c52a679f08a86181a05316bc2dc3 Parents: 478de67 Author: Sunil G <sun...@apache.org> Authored: Wed Feb 22 11:54:32 2017 +0530 Committer: vrushali <vrush...@apache.org> Committed: Tue Oct 17 11:39:55 2017 -0700 ---------------------------------------------------------------------- .../main/webapp/app/components/tree-selector.js | 8 +- .../webapp/app/controllers/yarn-queue-apps.js | 46 ---------- .../main/webapp/app/controllers/yarn-queue.js | 17 +++- .../main/webapp/app/controllers/yarn-queues.js | 1 + .../src/main/webapp/app/router.js | 6 +- .../main/webapp/app/routes/cluster-overview.js | 4 +- .../main/webapp/app/routes/yarn-app-attempt.js | 12 +-- .../src/main/webapp/app/routes/yarn-apps.js | 4 +- .../src/main/webapp/app/routes/yarn-node.js | 4 +- .../src/main/webapp/app/routes/yarn-nodes.js | 4 +- .../main/webapp/app/routes/yarn-queue-apps.js | 42 ---------- .../src/main/webapp/app/routes/yarn-queue.js | 3 +- .../main/webapp/app/routes/yarn-queue/apps.js | 22 +++++ .../main/webapp/app/routes/yarn-queue/info.js | 22 +++++ .../src/main/webapp/app/routes/yarn-queues.js | 35 +++++++- .../src/main/webapp/app/styles/app.css | 8 ++ .../src/main/webapp/app/templates/loading.hbs | 23 +++++ .../webapp/app/templates/yarn-apps/loading.hbs | 23 +++++ .../webapp/app/templates/yarn-queue-apps.hbs | 64 -------------- .../main/webapp/app/templates/yarn-queue.hbs | 69 ++------------- .../webapp/app/templates/yarn-queue/apps.hbs | 28 +++++++ .../webapp/app/templates/yarn-queue/info.hbs | 84 +++++++++++++++++++ .../main/webapp/app/templates/yarn-queues.hbs | 8 +- .../webapp/public/assets/images/spinner.gif | Bin 0 -> 33076 bytes .../unit/controllers/yarn-queue-apps-test.js | 30 ------- .../tests/unit/routes/yarn-queue-apps-test.js | 29 ------- .../tests/unit/routes/yarn-queue/apps-test.js | 29 +++++++ .../tests/unit/routes/yarn-queue/info-test.js | 29 +++++++ 28 files changed, 347 insertions(+), 307 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/tree-selector.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/tree-selector.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/tree-selector.js index c9e735d..3d72b2f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/tree-selector.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/tree-selector.js @@ -128,7 +128,7 @@ export default Ember.Component.extend({ .attr("transform", function() { return "translate(" + source.y0 + "," + source.x0 + ")"; }) .on("mouseover", function(d){ if (d.queueData.get("name") !== this.get("selected")) { - document.location.href = "#/yarn-queues/" + d.queueData.get("name"); + document.location.href = "#/yarn-queues/" + d.queueData.get("name") + "!"; } Ember.run.later(this, function () { @@ -143,7 +143,7 @@ export default Ember.Component.extend({ }.bind(this)) .on("click", function (d) { - document.location.href = "#/yarn-queue/" + d.queueData.get("name"); + document.location.href = "#/yarn-queue/" + d.queueData.get("name") + "/info"; }); nodeEnter.append("circle") @@ -190,7 +190,7 @@ export default Ember.Component.extend({ nodeUpdate.select("circle") .attr("r", 30) - .attr("href", + .attr("href", function(d) { return "#/yarn-queues/" + d.queueData.get("name"); }) @@ -294,4 +294,4 @@ export default Ember.Component.extend({ didInsertElement: function() { this.reDraw(); } -}); \ No newline at end of file +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queue-apps.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queue-apps.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queue-apps.js deleted file mode 100644 index e7bedd6..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queue-apps.js +++ /dev/null @@ -1,46 +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({ - needReload: true, - selectedQueue: undefined, - - breadcrumbs: Ember.computed("model.selected", function () { - var queueName = this.get("model.selected"); - - return [{ - text: "Home", - routeName: 'application' - }, { - text: "Queues", - routeName: 'yarn-queues', - model: 'root' - }, { - text: `Queue [ ${queueName} ]`, - routeName: 'yarn-queue', - model: queueName - }, { - text: "Applications", - }]; - - }), - - -}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queue.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queue.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queue.js index 0b4150f..3a72b60 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queue.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queue.js @@ -22,10 +22,11 @@ export default Ember.Controller.extend({ needReload: true, selectedQueue: undefined, - breadcrumbs: Ember.computed("model.selected", function () { + breadcrumbs: Ember.computed("model.selected", "target.currentPath", function () { var queueName = this.get("model.selected"); + var path = this.get("target.currentPath"); - return [{ + var crumbs = [{ text: "Home", routeName: 'application' }, { @@ -34,11 +35,19 @@ export default Ember.Controller.extend({ model: 'root' }, { text: `Queue [ ${queueName} ]`, - routeName: 'yarn-queue', + routeName: 'yarn-queue.info', model: queueName }]; - }), + if (path && path === "yarn-queue.apps") { + crumbs.push({ + text: "Applications", + routeName: 'yarn-queue.apps', + model: queueName + }); + } + return crumbs; + }) }); http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queues.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queues.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queues.js index 941e150..9658ded 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queues.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queues.js @@ -21,6 +21,7 @@ import Ember from 'ember'; export default Ember.Controller.extend({ needReload: true, selectedQueue: undefined, + showLoading: true, breadcrumbs: [{ text: "Home", http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/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 87a018d..03ec780 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 @@ -32,6 +32,10 @@ Router.map(function() { this.route('table'); this.route('heatmap'); }); + this.route('yarn-queue', {path: '/yarn-queue/:queue_name'}, function() { + this.route('info'); + this.route('apps'); + }); this.route('yarn-nodes-heatmap'); this.route('yarn-node', { path: '/yarn-node/:node_id/:node_addr' }); this.route('yarn-node-apps', { path: '/yarn-node-apps/:node_id/:node_addr' }); @@ -43,7 +47,6 @@ Router.map(function() { { path: '/yarn-node-container/:node_id/:node_addr/:container_id' }); this.route('yarn-container-log', { path: '/yarn-container-log/:node_id/:node_addr/:container_id/:filename' }); - this.route('yarn-queue', { path: '/yarn-queue/:queue_name' }); this.route('cluster-overview'); this.route('yarn-app', { path: '/yarn-app/:app_id' }); @@ -52,7 +55,6 @@ Router.map(function() { 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-queue-apps', { path: '/yarn-queue-apps/:queue_name' }); }); export default Router; http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/cluster-overview.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/cluster-overview.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/cluster-overview.js index 1068126..b5db17d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/cluster-overview.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/cluster-overview.js @@ -23,7 +23,7 @@ import AbstractRoute from './abstract'; export default AbstractRoute.extend({ model() { return Ember.RSVP.hash({ - clusterMetrics: this.store.findAll('ClusterMetric'), + clusterMetrics: this.store.findAll('ClusterMetric', {reload: true}), apps: this.store.query('yarn-app', { state: "RUNNING" @@ -41,4 +41,4 @@ export default AbstractRoute.extend({ this.store.unloadAll('yarn-app'); this.store.unloadAll('yarn-queue'); } -}); \ No newline at end of file +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempt.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempt.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempt.js index 762fb29..d449adf 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempt.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempt.js @@ -23,15 +23,15 @@ import AbstractRoute from './abstract'; export default AbstractRoute.extend({ model(param) { return Ember.RSVP.hash({ - attempt: this.store.findRecord('yarn-app-attempt', param.app_attempt_id), - - rmContainers: this.store.query('yarn-container', + attempt: this.store.findRecord('yarn-app-attempt', param.app_attempt_id, {reload: true}), + + rmContainers: this.store.query('yarn-container', { app_attempt_id: param.app_attempt_id, is_rm: true }), - - tsContainers: this.store.query('yarn-container', + + tsContainers: this.store.query('yarn-container', { app_attempt_id: param.app_attempt_id, is_rm: false @@ -47,4 +47,4 @@ export default AbstractRoute.extend({ this.store.unloadAll('yarn-app-attempt'); this.store.unloadAll('yarn-container'); } -}); \ No newline at end of file +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-apps.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-apps.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-apps.js index 0ac503c..1b671da 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-apps.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-apps.js @@ -23,8 +23,8 @@ import AbstractRoute from './abstract'; export default AbstractRoute.extend({ model() { return Ember.RSVP.hash({ - apps: this.store.findAll('yarn-app'), - clusterMetrics: this.store.findAll('ClusterMetric'), + apps: this.store.findAll('yarn-app', {reload: true}), + clusterMetrics: this.store.findAll('ClusterMetric', {reload: true}), }); }, http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node.js index 967d007..3d54846 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node.js @@ -25,8 +25,8 @@ export default AbstractRoute.extend({ // Fetches data from both NM and RM. RM is queried to get node usage info. return Ember.RSVP.hash({ nodeInfo: { id: param.node_id, addr: param.node_addr }, - node: this.store.findRecord('yarn-node', param.node_addr), - rmNode: this.store.findRecord('yarn-rm-node', param.node_id) + node: this.store.findRecord('yarn-node', param.node_addr, {reload: true}), + rmNode: this.store.findRecord('yarn-rm-node', param.node_id, {reload: true}) }); }, http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-nodes.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-nodes.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-nodes.js index 4439569..d31eb5c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-nodes.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-nodes.js @@ -23,8 +23,8 @@ import AbstractRoute from './abstract'; export default AbstractRoute.extend({ model() { return Ember.RSVP.hash({ - nodes: this.store.findAll('yarn-rm-node'), - clusterMetrics: this.store.findAll('ClusterMetric'), + nodes: this.store.findAll('yarn-rm-node', {reload: true}), + clusterMetrics: this.store.findAll('ClusterMetric', {reload: true}), }); }, http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue-apps.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue-apps.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue-apps.js deleted file mode 100644 index 373e1be..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue-apps.js +++ /dev/null @@ -1,42 +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'; - -export default AbstractRoute.extend({ - model(param) { - return Ember.RSVP.hash({ - selected : param.queue_name, - queues: this.store.findAll('yarn-queue'), - selectedQueue : undefined, - apps: undefined, // apps of selected queue - }); - }, - - afterModel(model) { - model.selectedQueue = this.store.peekRecord('yarn-queue', model.selected); - model.apps = this.store.findAll('yarn-app'); - }, - - unloadAll() { - this.store.unloadAll('yarn-queue'); - this.store.unloadAll('yarn-app'); - } -}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue.js index 5342913..faae8b1 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue.js @@ -26,13 +26,12 @@ export default AbstractRoute.extend({ selected : param.queue_name, queues: this.store.query('yarn-queue', {}), selectedQueue : undefined, - apps: undefined, // apps of selected queue + apps: this.store.findAll('yarn-app', {reload: true}) }); }, afterModel(model) { model.selectedQueue = this.store.peekRecord('yarn-queue', model.selected); - model.apps = this.store.findAll('yarn-app'); }, unloadAll() { http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue/apps.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue/apps.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue/apps.js new file mode 100644 index 0000000..8719170 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue/apps.js @@ -0,0 +1,22 @@ +/** + * 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({ +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue/info.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue/info.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue/info.js new file mode 100644 index 0000000..8719170 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue/info.js @@ -0,0 +1,22 @@ +/** + * 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({ +}); http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queues.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queues.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queues.js index 5342913..7ef7ac3 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queues.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queues.js @@ -22,21 +22,50 @@ import AbstractRoute from './abstract'; export default AbstractRoute.extend({ model(param) { + var queueName = param.queue_name? param.queue_name.split('!')[0] : 'root'; + if (param.queue_name && param.queue_name.split('!').length > 1) { + this.controllerFor('yarn-queues').set('showLoading', false); + } else { + this.controllerFor('yarn-queues').set('showLoading', true); + } return Ember.RSVP.hash({ - selected : param.queue_name, + selected : queueName, queues: this.store.query('yarn-queue', {}), selectedQueue : undefined, - apps: undefined, // apps of selected queue + apps: this.store.findAll('yarn-app', {reload: true}) }); }, afterModel(model) { model.selectedQueue = this.store.peekRecord('yarn-queue', model.selected); - model.apps = this.store.findAll('yarn-app'); }, unloadAll() { this.store.unloadAll('yarn-queue'); this.store.unloadAll('yarn-app'); + }, + + refreshModel() { + var param = this.paramsFor('yarn-queues'); + var queueName = param.queue_name? param.queue_name.split('!')[0] : 'root'; + if (queueName !== param.queue_name) { + this.transitionTo('yarn-queues', queueName); + } else { + this.refresh(); + } + }, + + actions: { + refresh: function () { + this.unloadAll(); + this.refreshModel(); + }, + + loading() { + if (!this.controllerFor('yarn-queues').get('showLoading')) { + return false; + } + return true; + } } }); http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/styles/app.css ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/styles/app.css b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/styles/app.css index eb5fe61..7ac21bc 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/styles/app.css +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/styles/app.css @@ -138,6 +138,14 @@ div.tooltip { } /* + * Loading icon styles + */ +.loading-mask > img { + display: block; + margin: 0 auto; +} + +/* * Data table */ http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/loading.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/loading.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/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/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/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps/loading.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps/loading.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps/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-apps/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/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue-apps.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue-apps.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue-apps.hbs deleted file mode 100644 index d5329f2..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue-apps.hbs +++ /dev/null @@ -1,64 +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"> - <h4>Application</h4> - </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-queue' tagName="li"}} - {{#link-to 'yarn-queue' model.selected}}Information - {{/link-to}} - {{/link-to}} - {{#link-to 'yarn-queue-apps' tagName="li"}} - {{#link-to 'yarn-queue-apps' model.selected}}Applications List - {{/link-to}} - {{/link-to}} - </ul> - </ul> - </div> - </div> - </div> - - <div class="col-md-10 container-fluid"> - <!-- timeline view of children --> - <div class="row"> - - <div class="col-lg-12 container-fluid"> - {{#if model.apps}} - {{app-table table-id="apps-table" arr=model.apps}} - {{simple-table table-id="apps-table" bFilter=true colTypes="elapsed-time" colTargets="7"}} - {{else}} - <h4 align = "center">Could not find any applications from this cluster</h4> - {{/if}} - </div> - - </div> - </div> - - </div> -</div> -{{outlet}} http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue.hbs index 11c527c..ef2d285 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue.hbs @@ -24,17 +24,17 @@ <div class="col-md-2 container-fluid"> <div class="panel panel-default"> <div class="panel-heading"> - <h4>Application</h4> + <h4>Queue</h4> </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-queue' tagName="li"}} - {{#link-to 'yarn-queue' model.selected}}Information + {{#link-to 'yarn-queue.info' tagName="li"}} + {{#link-to 'yarn-queue.info' model.selected}}Information {{/link-to}} {{/link-to}} - {{#link-to 'yarn-queue-apps' tagName="li"}} - {{#link-to 'yarn-queue-apps' model.selected}}Applications List + {{#link-to 'yarn-queue.apps' tagName="li"}} + {{#link-to 'yarn-queue.apps' model.selected}}Applications List {{/link-to}} {{/link-to}} </ul> @@ -44,65 +44,8 @@ </div> <div class="col-md-10 container-fluid"> - <!-- timeline view of children --> - <div class="row"> - - <div class="col-lg-4 container-fluid"> - <div class="panel panel-default"> - <div class="panel-heading"> - Queue Information - </div> - {{queue-configuration-table queue=model.selectedQueue}} - </div> - </div> - - <div class="col-lg-4 container-fluid"> - <div class="panel panel-default"> - <div class="panel-heading"> - Queue Capacities - </div> - <div class="container-fluid" id="capacity-bar-chart"> - <br/> - {{bar-chart data=model.selectedQueue.capacitiesBarChartData - title="" - parentId="capacity-bar-chart" - textWidth=170 - ratio=0.55 - maxHeight=350}} - </div> - </div> - </div> - - {{#if model.selectedQueue.hasUserUsages}} - <div class="col-lg-4 container-fluid" id="userusage-donut-chart"> - {{donut-chart data=model.selectedQueue.userUsagesDonutChartData - title="User Usages" - showLabels=true - parentId="userusage-donut-chart" - type="memory" - ratio=0.6 - maxHeight=350}} - </div> - {{/if}} - - <div class="col-lg-4 container-fluid"> - <div class="panel panel-default"> - <div class="panel-heading"> - Running Apps - </div> - <div class="container-fluid" id="numapplications-donut-chart"> - {{donut-chart data=model.selectedQueue.numOfApplicationsDonutChartData - showLabels=true - parentId="numapplications-donut-chart" - ratio=0.6 - maxHeight=350}} - </div> - </div> - </div> - - </div> + {{outlet}} </div> </div> </div> -{{outlet}} http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue/apps.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue/apps.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue/apps.hbs new file mode 100644 index 0000000..6d6488f --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue/apps.hbs @@ -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. +}} + +<div class="row"> + <div class="col-lg-12 container-fluid"> + {{#if model.apps}} + {{app-table table-id="apps-table" arr=model.apps}} + {{simple-table table-id="apps-table" bFilter=true colTypes="elapsed-time" colTargets="7"}} + {{else}} + <h4 align = "center">Could not find any applications from this cluster</h4> + {{/if}} + </div> +</div> http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue/info.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue/info.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue/info.hbs new file mode 100644 index 0000000..c112ef9 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queue/info.hbs @@ -0,0 +1,84 @@ +{{! + * 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-lg-6 container-fluid"> + <div class="panel panel-default"> + <div class="panel-heading"> + Queue Capacities: {{model.selected}} + </div> + <div class="container-fluid" id="capacity-bar-chart"> + <br/> + {{bar-chart data=model.selectedQueue.capacitiesBarChartData + title="" + parentId="capacity-bar-chart" + textWidth=170 + ratio=0.55 + maxHeight=350}} + </div> + </div> + </div> + + <div class="col-lg-6 container-fluid"> + <div class="panel panel-default"> + <div class="panel-heading"> + Queue Information: {{model.selected}} + </div> + {{queue-configuration-table queue=model.selectedQueue}} + </div> + </div> + +</div> + +<div class="row"> + + <div class="col-lg-6 container-fluid"> + <div class="panel panel-default"> + <div class="panel-heading"> + Running Apps: {{model.selected}} + </div> + <div class="container-fluid" id="numapplications-donut-chart"> + {{donut-chart data=model.selectedQueue.numOfApplicationsDonutChartData + showLabels=true + parentId="numapplications-donut-chart" + ratio=0.6 + maxHeight=350}} + </div> + </div> + </div> + + {{#if model.selectedQueue.hasUserUsages}} + <div class="col-lg-6 container-fluid"> + <div class="panel panel-default"> + <div class="panel-heading"> + User Usages: {{model.selected}} + </div> + <div class="container-fluid" id="userusage-donut-chart"> + {{donut-chart data=model.selectedQueue.userUsagesDonutChartData + showLabels=true + parentId="userusage-donut-chart" + type="memory" + ratio=0.6 + maxHeight=350}} + </div> + </div> + </div> + {{/if}} + +</div> http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queues.hbs ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queues.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queues.hbs index ea9338c..6dfb220 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queues.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-queues.hbs @@ -26,7 +26,7 @@ <div class="col-lg-4 container-fluid"> <div class="panel panel-default"> <div class="panel-heading"> - Queue Information + Queue Information: {{model.selected}} </div> {{queue-configuration-table queue=model.selectedQueue}} </div> @@ -35,7 +35,7 @@ <div class="col-lg-4 container-fluid"> <div class="panel panel-default"> <div class="panel-heading"> - Queue Capacities + Queue Capacities: {{model.selected}} </div> <div class="container-fluid" id="capacity-bar-chart"> <br/> @@ -52,7 +52,7 @@ <div class="col-lg-4 container-fluid"> <div class="panel panel-default"> <div class="panel-heading"> - Running Apps + Running Apps: {{model.selected}} </div> <div class="container-fluid" id="numapplications-donut-chart"> {{donut-chart data=model.selectedQueue.numOfApplicationsDonutChartData @@ -67,4 +67,4 @@ </div> </div> -{{outlet}} \ No newline at end of file +{{outlet}} http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/public/assets/images/spinner.gif ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/public/assets/images/spinner.gif b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/public/assets/images/spinner.gif new file mode 100644 index 0000000..727b91d Binary files /dev/null and b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/public/assets/images/spinner.gif differ http://git-wip-us.apache.org/repos/asf/hadoop/blob/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-queue-apps-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-queue-apps-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-queue-apps-test.js deleted file mode 100644 index adf2e07..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-queue-apps-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-queue-apps', 'Unit | Controller | yarn queue apps', { - // 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/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-queue-apps-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-queue-apps-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-queue-apps-test.js deleted file mode 100644 index 6738ea0..0000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-queue-apps-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-queue-apps', 'Unit | Route | yarn queue apps', { - // 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/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-queue/apps-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-queue/apps-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-queue/apps-test.js new file mode 100644 index 0000000..faa116b --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-queue/apps-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-queue/apps', 'Unit | Route | yarn queue/apps', { + // 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/e66f956f/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-queue/info-test.js ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-queue/info-test.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-queue/info-test.js new file mode 100644 index 0000000..ca6f137 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-queue/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-queue/info', 'Unit | Route | yarn queue/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