From 266784b84915c1b14dcd17fd0f648f66355d5322 Mon Sep 17 00:00:00 2001 From: Wangda Tan Date: Mon, 21 Mar 2016 14:03:13 -0700 Subject: [PATCH] YARN-4849. [YARN-3368] cleanup code base, integrate web UI related build to mvn, and fix licenses. (wangda) --- .gitignore | 13 + BUILDING.txt | 4 +- LICENSE.txt | 80 +++++ dev-support/create-release.sh | 144 +++++++++ dev-support/docker/Dockerfile | 5 + .../src/site/markdown/YarnUI2.md | 43 +++ .../hadoop-yarn/hadoop-yarn-ui/.bowerrc | 4 - .../hadoop-yarn/hadoop-yarn-ui/.editorconfig | 34 -- .../hadoop-yarn/hadoop-yarn-ui/.ember-cli | 11 - .../hadoop-yarn/hadoop-yarn-ui/.gitignore | 17 - .../hadoop-yarn/hadoop-yarn-ui/.jshintrc | 32 -- .../hadoop-yarn/hadoop-yarn-ui/.travis.yml | 23 -- .../hadoop-yarn-ui/.watchmanconfig | 3 - .../hadoop-yarn/hadoop-yarn-ui/README.md | 24 -- .../app/adapters/cluster-info.js | 20 -- .../app/adapters/cluster-metric.js | 20 -- .../hadoop-yarn-ui/app/adapters/yarn-app.js | 26 -- .../hadoop-yarn-ui/app/adapters/yarn-queue.js | 20 -- .../hadoop-yarn/hadoop-yarn-ui/app/app.js | 20 -- .../hadoop-yarn-ui/app/components/.gitkeep | 0 .../app/components/app-attempt-table.js | 4 - .../app/components/app-table.js | 4 - .../app/components/container-table.js | 4 - .../app/components/item-selector.js | 21 -- .../components/queue-configuration-table.js | 4 - .../app/components/queue-navigator.js | 4 - .../app/components/queue-view.js | 272 ---------------- .../hadoop-yarn-ui/app/controllers/.gitkeep | 0 .../app/controllers/cluster-overview.js | 5 - .../app/controllers/yarn-apps.js | 4 - .../app/controllers/yarn-queue.js | 6 - .../hadoop-yarn-ui/app/helpers/.gitkeep | 0 .../hadoop-yarn/hadoop-yarn-ui/app/index.html | 25 -- .../hadoop-yarn-ui/app/models/.gitkeep | 0 .../hadoop-yarn-ui/app/models/cluster-info.js | 13 - .../hadoop-yarn-ui/app/models/yarn-user.js | 8 - .../hadoop-yarn-ui/app/routes/.gitkeep | 0 .../app/routes/cluster-overview.js | 11 - .../app/routes/yarn-app-attempt.js | 21 -- .../hadoop-yarn-ui/app/routes/yarn-app.js | 10 - .../hadoop-yarn-ui/app/routes/yarn-apps.js | 8 - .../hadoop-yarn-ui/app/routes/yarn-queue.js | 20 -- .../app/routes/yarn-queues/index.js | 5 - .../app/routes/yarn-queues/queues-selector.js | 7 - .../app/templates/components/.gitkeep | 0 .../components/app-attempt-table.hbs | 28 -- .../templates/components/queue-navigator.hbs | 18 -- .../app/templates/yarn-app-attempt.hbs | 12 - .../app/templates/yarn-apps.hbs | 3 - .../hadoop-yarn/hadoop-yarn-ui/pom.xml | 207 +++++++++++++ .../hadoop-yarn-ui/public/robots.txt | 3 - .../src/main/webapp/WEB-INF/web.xml | 25 ++ .../main/webapp/app/adapters/cluster-info.js | 38 +++ .../webapp/app/adapters/cluster-metric.js | 38 +++ .../webapp}/app/adapters/yarn-app-attempt.js | 18 ++ .../src/main/webapp/app/adapters/yarn-app.js | 44 +++ .../app/adapters/yarn-container-log.js | 0 .../webapp}/app/adapters/yarn-container.js | 18 ++ .../webapp}/app/adapters/yarn-node-app.js | 0 .../app/adapters/yarn-node-container.js | 0 .../main/webapp}/app/adapters/yarn-node.js | 0 .../main/webapp/app/adapters/yarn-queue.js | 38 +++ .../main/webapp}/app/adapters/yarn-rm-node.js | 0 .../hadoop-yarn-ui/src/main/webapp/app/app.js | 38 +++ .../app/components/app-attempt-table.js | 22 ++ .../main/webapp/app/components/app-table.js | 22 ++ .../main/webapp}/app/components/bar-chart.js | 18 ++ .../app/components/base-chart-component.js | 18 ++ .../webapp/app/components/container-table.js | 22 ++ .../webapp}/app/components/donut-chart.js | 18 ++ .../webapp/app/components/item-selector.js | 39 +++ .../components/queue-configuration-table.js | 22 ++ .../webapp/app/components/queue-navigator.js | 22 ++ .../main/webapp/app/components/queue-view.js | 290 ++++++++++++++++++ .../webapp}/app/components/simple-table.js | 18 ++ .../webapp}/app/components/timeline-view.js | 18 ++ .../webapp}/app/components/tree-selector.js | 18 ++ .../{ => src/main/webapp}/app/config.js | 0 .../{ => src/main/webapp}/app/constants.js | 0 .../webapp}/app/controllers/application.js | 0 .../app/controllers/cluster-overview.js | 23 ++ .../main/webapp/app/controllers/yarn-apps.js | 22 ++ .../main/webapp/app/controllers/yarn-queue.js | 24 ++ .../main/webapp}/app/helpers/divide.js | 0 .../webapp}/app/helpers/log-files-comma.js | 0 .../main/webapp}/app/helpers/node-link.js | 0 .../main/webapp}/app/helpers/node-menu.js | 0 .../src/main/webapp/app/index.html | 43 +++ .../main/webapp/app/models/cluster-info.js | 31 ++ .../main/webapp}/app/models/cluster-metric.js | 18 ++ .../webapp}/app/models/yarn-app-attempt.js | 18 ++ .../main/webapp}/app/models/yarn-app.js | 18 ++ .../webapp}/app/models/yarn-container-log.js | 0 .../main/webapp}/app/models/yarn-container.js | 18 ++ .../main/webapp}/app/models/yarn-node-app.js | 0 .../webapp}/app/models/yarn-node-container.js | 0 .../main/webapp}/app/models/yarn-node.js | 0 .../main/webapp}/app/models/yarn-queue.js | 18 ++ .../main/webapp}/app/models/yarn-rm-node.js | 0 .../src/main/webapp/app/models/yarn-user.js | 26 ++ .../{ => src/main/webapp}/app/router.js | 18 ++ .../main/webapp}/app/routes/application.js | 0 .../webapp/app/routes/cluster-overview.js | 29 ++ .../{ => src/main/webapp}/app/routes/index.js | 0 .../webapp/app/routes/yarn-app-attempt.js | 39 +++ .../src/main/webapp/app/routes/yarn-app.js | 28 ++ .../src/main/webapp/app/routes/yarn-apps.js | 26 ++ .../webapp}/app/routes/yarn-container-log.js | 0 .../main/webapp}/app/routes/yarn-node-app.js | 0 .../main/webapp}/app/routes/yarn-node-apps.js | 0 .../webapp}/app/routes/yarn-node-container.js | 0 .../app/routes/yarn-node-containers.js | 0 .../main/webapp}/app/routes/yarn-node.js | 0 .../main/webapp}/app/routes/yarn-nodes.js | 0 .../src/main/webapp/app/routes/yarn-queue.js | 38 +++ .../webapp/app/routes/yarn-queues/index.js | 23 ++ .../app/routes/yarn-queues/queues-selector.js | 25 ++ .../webapp}/app/serializers/cluster-info.js | 18 ++ .../webapp}/app/serializers/cluster-metric.js | 18 ++ .../app/serializers/yarn-app-attempt.js | 18 ++ .../main/webapp}/app/serializers/yarn-app.js | 18 ++ .../app/serializers/yarn-container-log.js | 0 .../webapp}/app/serializers/yarn-container.js | 18 ++ .../webapp}/app/serializers/yarn-node-app.js | 0 .../app/serializers/yarn-node-container.js | 0 .../main/webapp}/app/serializers/yarn-node.js | 0 .../webapp}/app/serializers/yarn-queue.js | 18 ++ .../webapp}/app/serializers/yarn-rm-node.js | 0 .../{ => src/main/webapp}/app/styles/app.css | 18 ++ .../webapp}/app/templates/application.hbs | 18 ++ .../app/templates/cluster-overview.hbs | 18 ++ .../components/app-attempt-table.hbs | 46 +++ .../app/templates/components/app-table.hbs | 18 ++ .../templates/components/container-table.hbs | 18 ++ .../components/queue-configuration-table.hbs | 18 ++ .../templates/components/queue-navigator.hbs | 36 +++ .../templates/components/timeline-view.hbs | 18 ++ .../main/webapp}/app/templates/error.hbs | 0 .../main/webapp}/app/templates/notfound.hbs | 0 .../webapp/app/templates/yarn-app-attempt.hbs | 30 ++ .../main/webapp}/app/templates/yarn-app.hbs | 18 ++ .../main/webapp/app/templates/yarn-apps.hbs | 21 ++ .../app/templates/yarn-container-log.hbs | 0 .../webapp}/app/templates/yarn-node-app.hbs | 0 .../webapp}/app/templates/yarn-node-apps.hbs | 0 .../app/templates/yarn-node-container.hbs | 0 .../app/templates/yarn-node-containers.hbs | 0 .../main/webapp}/app/templates/yarn-node.hbs | 0 .../main/webapp}/app/templates/yarn-nodes.hbs | 0 .../main/webapp}/app/templates/yarn-queue.hbs | 18 ++ .../main/webapp}/app/utils/converter.js | 18 ++ .../{ => src/main/webapp}/app/utils/sorter.js | 18 ++ .../{ => src/main/webapp}/bower.json | 0 .../main/webapp}/config/environment.js | 19 ++ .../{ => src/main/webapp}/ember-cli-build.js | 18 ++ .../{ => src/main/webapp}/jsconfig.json | 0 .../{ => src/main/webapp}/package.json | 6 +- .../images/datatables/Sorting icons.psd | Bin 0 -> 27490 bytes .../assets/images/datatables/favicon.ico | Bin 0 -> 894 bytes .../assets/images/datatables/sort_asc.png | Bin 0 -> 160 bytes .../images/datatables/sort_asc_disabled.png | Bin 0 -> 148 bytes .../assets/images/datatables/sort_both.png | Bin 0 -> 201 bytes .../assets/images/datatables/sort_desc.png | Bin 0 -> 158 bytes .../images/datatables/sort_desc_disabled.png | Bin 0 -> 146 bytes .../src/main/webapp/public/crossdomain.xml | 34 ++ .../{ => src/main/webapp}/testem.json | 0 .../src/main/webapp/tests/helpers/resolver.js | 29 ++ .../main/webapp/tests/helpers/start-app.js | 36 +++ .../{ => src/main/webapp}/tests/index.html | 18 ++ .../src/main/webapp/tests/test-helper.js | 24 ++ .../tests/unit/adapters/yarn-app-test.js | 30 ++ .../unit/adapters/yarn-container-log-test.js | 0 .../tests/unit/adapters/yarn-node-app-test.js | 0 .../unit/adapters/yarn-node-container-test.js | 0 .../tests/unit/adapters/yarn-node-test.js | 0 .../tests/unit/adapters/yarn-rm-node-test.js | 0 .../tests/unit/controllers/yarn-apps-test.js | 30 ++ .../unit/controllers/yarn-queues-test.js | 30 ++ .../webapp/tests/unit/mixins/charts-test.js | 30 ++ .../webapp/tests/unit/models/yarn-app-test.js | 30 ++ .../unit/models/yarn-container-log-test.js | 0 .../tests/unit/models/yarn-node-app-test.js | 0 .../unit/models/yarn-node-container-test.js | 0 .../tests/unit/models/yarn-node-test.js | 0 .../tests/unit/models/yarn-rm-node-test.js | 0 .../tests/unit/routes/yarn-apps-test.js | 29 ++ .../unit/routes/yarn-container-log-test.js | 0 .../tests/unit/routes/yarn-node-app-test.js | 0 .../tests/unit/routes/yarn-node-apps-test.js | 0 .../unit/routes/yarn-node-container-test.js | 0 .../unit/routes/yarn-node-containers-test.js | 0 .../tests/unit/routes/yarn-node-test.js | 0 .../tests/unit/routes/yarn-nodes-test.js | 0 .../tests/unit/serializers/yarn-app-test.js | 33 ++ .../serializers/yarn-container-log-test.js | 0 .../unit/serializers/yarn-node-app-test.js | 0 .../serializers/yarn-node-container-test.js | 0 .../tests/unit/serializers/yarn-node-test.js | 0 .../unit/serializers/yarn-rm-node-test.js | 0 .../tests/unit/utils/converter-test.js | 0 .../webapp}/tests/unit/utils/sorter-test.js | 0 .../hadoop-yarn-ui/tests/.jshintrc | 52 ---- .../hadoop-yarn-ui/tests/helpers/resolver.js | 11 - .../hadoop-yarn-ui/tests/helpers/start-app.js | 18 -- .../hadoop-yarn-ui/tests/test-helper.js | 6 - .../hadoop-yarn-ui/tests/unit/.gitkeep | 0 .../tests/unit/adapters/yarn-app-test.js | 12 - .../tests/unit/controllers/yarn-apps-test.js | 12 - .../unit/controllers/yarn-queues-test.js | 12 - .../tests/unit/mixins/charts-test.js | 12 - .../tests/unit/models/yarn-app-test.js | 12 - .../tests/unit/routes/yarn-apps-test.js | 11 - .../tests/unit/serializers/yarn-app-test.js | 15 - .../hadoop-yarn-ui/vendor/.gitkeep | 0 hadoop-yarn-project/hadoop-yarn/pom.xml | 1 + 215 files changed, 2617 insertions(+), 951 deletions(-) create mode 100755 dev-support/create-release.sh create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnUI2.md delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.bowerrc delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.editorconfig delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.ember-cli delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.gitignore delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.jshintrc delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.travis.yml delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.watchmanconfig delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/README.md delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/cluster-info.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/cluster-metric.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-app.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-queue.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/app.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/.gitkeep delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/app-attempt-table.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/app-table.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/container-table.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/item-selector.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/queue-configuration-table.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/queue-navigator.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/queue-view.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/.gitkeep delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/cluster-overview.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/yarn-apps.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/yarn-queue.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/helpers/.gitkeep delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/index.html delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/.gitkeep delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/cluster-info.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-user.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/.gitkeep delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/cluster-overview.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-app-attempt.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-app.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-apps.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-queue.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-queues/index.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-queues/queues-selector.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/components/.gitkeep delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/components/app-attempt-table.hbs delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/components/queue-navigator.hbs delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/yarn-app-attempt.hbs delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/yarn-apps.hbs create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/pom.xml delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/public/robots.txt create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/WEB-INF/web.xml create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/cluster-info.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/cluster-metric.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/adapters/yarn-app-attempt.js (52%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-app.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/adapters/yarn-container-log.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/adapters/yarn-container.js (60%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/adapters/yarn-node-app.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/adapters/yarn-node-container.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/adapters/yarn-node.js (100%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-queue.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/adapters/yarn-rm-node.js (100%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/app.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/app-attempt-table.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/app-table.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/components/bar-chart.js (77%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/components/base-chart-component.js (76%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/container-table.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/components/donut-chart.js (82%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/item-selector.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/queue-configuration-table.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/queue-navigator.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/queue-view.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/components/simple-table.js (68%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/components/timeline-view.js (88%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/components/tree-selector.js (89%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/config.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/constants.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/controllers/application.js (100%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/cluster-overview.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-apps.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queue.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/helpers/divide.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/helpers/log-files-comma.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/helpers/node-link.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/helpers/node-menu.js (100%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/index.html create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/cluster-info.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/models/cluster-metric.js (78%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/models/yarn-app-attempt.js (60%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/models/yarn-app.js (73%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/models/yarn-container-log.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/models/yarn-container.js (58%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/models/yarn-node-app.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/models/yarn-node-container.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/models/yarn-node.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/models/yarn-queue.js (71%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/models/yarn-rm-node.js (100%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-user.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/router.js (57%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/routes/application.js (100%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/cluster-overview.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/routes/index.js (100%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempt.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-apps.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/routes/yarn-container-log.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/routes/yarn-node-app.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/routes/yarn-node-apps.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/routes/yarn-node-container.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/routes/yarn-node-containers.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/routes/yarn-node.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/routes/yarn-nodes.js (100%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queues/index.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queues/queues-selector.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/serializers/cluster-info.js (53%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/serializers/cluster-metric.js (52%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/serializers/yarn-app-attempt.js (67%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/serializers/yarn-app.js (76%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/serializers/yarn-container-log.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/serializers/yarn-container.js (70%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/serializers/yarn-node-app.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/serializers/yarn-node-container.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/serializers/yarn-node.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/serializers/yarn-queue.js (83%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/serializers/yarn-rm-node.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/styles/app.css (72%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/application.hbs (52%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/cluster-overview.hbs (65%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/app-attempt-table.hbs rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/components/app-table.hbs (72%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/components/container-table.hbs (51%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/components/queue-configuration-table.hbs (52%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/components/queue-navigator.hbs rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/components/timeline-view.hbs (52%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/error.hbs (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/notfound.hbs (100%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-app-attempt.hbs rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/yarn-app.hbs (84%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/yarn-apps.hbs rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/yarn-container-log.hbs (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/yarn-node-app.hbs (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/yarn-node-apps.hbs (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/yarn-node-container.hbs (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/yarn-node-containers.hbs (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/yarn-node.hbs (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/yarn-nodes.hbs (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/templates/yarn-queue.hbs (63%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/utils/converter.js (77%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/app/utils/sorter.js (62%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/bower.json (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/config/environment.js (56%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/ember-cli-build.js (58%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/jsconfig.json (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/package.json (91%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/public/assets/images/datatables/Sorting icons.psd create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/public/assets/images/datatables/favicon.ico create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/public/assets/images/datatables/sort_asc.png create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/public/assets/images/datatables/sort_asc_disabled.png create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/public/assets/images/datatables/sort_both.png create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/public/assets/images/datatables/sort_desc.png create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/public/assets/images/datatables/sort_desc_disabled.png create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/public/crossdomain.xml rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/testem.json (100%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/helpers/resolver.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/helpers/start-app.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/index.html (54%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/test-helper.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/adapters/yarn-app-test.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/adapters/yarn-container-log-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/adapters/yarn-node-app-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/adapters/yarn-node-container-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/adapters/yarn-node-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/adapters/yarn-rm-node-test.js (100%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-apps-test.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/controllers/yarn-queues-test.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/mixins/charts-test.js create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/models/yarn-app-test.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/models/yarn-container-log-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/models/yarn-node-app-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/models/yarn-node-container-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/models/yarn-node-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/models/yarn-rm-node-test.js (100%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/routes/yarn-apps-test.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/routes/yarn-container-log-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/routes/yarn-node-app-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/routes/yarn-node-apps-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/routes/yarn-node-container-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/routes/yarn-node-containers-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/routes/yarn-node-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/routes/yarn-nodes-test.js (100%) create mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tests/unit/serializers/yarn-app-test.js rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/serializers/yarn-container-log-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/serializers/yarn-node-app-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/serializers/yarn-node-container-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/serializers/yarn-node-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/serializers/yarn-rm-node-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/utils/converter-test.js (100%) rename hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/{ => src/main/webapp}/tests/unit/utils/sorter-test.js (100%) delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/tests/.jshintrc delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/tests/helpers/resolver.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/tests/helpers/start-app.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/tests/test-helper.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/tests/unit/.gitkeep delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/tests/unit/adapters/yarn-app-test.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/tests/unit/controllers/yarn-apps-test.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/tests/unit/controllers/yarn-queues-test.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/tests/unit/mixins/charts-test.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/tests/unit/models/yarn-app-test.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/tests/unit/routes/yarn-apps-test.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/tests/unit/serializers/yarn-app-test.js delete mode 100644 hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/vendor/.gitkeep diff --git a/.gitignore b/.gitignore index cbecfc0f445..792f725dac0 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,19 @@ hadoop-hdfs-project/hadoop-hdfs-httpfs/downloads hadoop-common-project/hadoop-common/src/test/resources/contract-test-options.xml hadoop-tools/hadoop-openstack/src/test/resources/contract-test-options.xml hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/tla/yarnregistry.toolbox +hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/dist +hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/tmp +hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/node +hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/node_modules +hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/bower_components +hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/.sass-cache +hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/connect.lock +hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/coverage/* +hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/libpeerconnection.log +hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webappnpm-debug.log +hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapptestem.log +hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/dist +hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/tmp yarnregistry.pdf hadoop-tools/hadoop-aws/src/test/resources/auth-keys.xml hadoop-tools/hadoop-aws/src/test/resources/contract-test-options.xml diff --git a/BUILDING.txt b/BUILDING.txt index d6f6db758ff..8c463b96d27 100644 --- a/BUILDING.txt +++ b/BUILDING.txt @@ -15,6 +15,7 @@ Requirements: * Internet connection for first build (to fetch all Maven and Hadoop dependencies) * python (for releasedocs) * bats (for shell code testing) +* Node.js / bower / Ember-cli (for YARN UI v2 building) ---------------------------------------------------------------------------------- The easiest way to get an environment with all the appropriate tools is by means @@ -119,7 +120,7 @@ Maven build goals: * Run clover : mvn test -Pclover [-DcloverLicenseLocation=${user.name}/.clover.license] * Run Rat : mvn apache-rat:check * Build javadocs : mvn javadoc:javadoc - * Build distribution : mvn package [-Pdist][-Pdocs][-Psrc][-Pnative][-Dtar][-Preleasedocs] + * Build distribution : mvn package [-Pdist][-Pdocs][-Psrc][-Pnative][-Dtar][-Preleasedocs][-Pyarn-ui] * Change Hadoop version : mvn versions:set -DnewVersion=NEWVERSION Build options: @@ -129,6 +130,7 @@ Maven build goals: * Use -Psrc to create a project source TAR.GZ * Use -Dtar to create a TAR with the distribution (using -Pdist) * Use -Preleasedocs to include the changelog and release docs (requires Internet connectivity) + * Use -Pyarn-ui to build YARN UI v2. (Requires Internet connectivity, and it is for dev use only) Snappy build options: diff --git a/LICENSE.txt b/LICENSE.txt index 252968fdec2..e3a4c34aa01 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -2314,3 +2314,83 @@ jamon-runtime 2.3.1 Developer permits you to utilize portions of the Covered Code under Your choice of the MPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A. + +For Apache Hadoop YARN Web UI component: hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/ +--------------------------------------------------------------------- +The Apache Hadoop YARN Web UI component bundles the following files under the MIT License: + + - ember v2.2.0 (http://emberjs.com/) - Copyright (c) 2014 Yehuda Katz, Tom Dale and Ember.js contributors + - ember-data v2.1.0 (https://github.com/emberjs/data) - Copyright (C) 2011-2014 Tilde, Inc. and contributors, Portions Copyright (C) 2011 LivingSocial Inc. + - ember-resolver v2.0.3 (https://github.com/ember-cli/ember-resolver) - Copyright (c) 2013 Stefan Penner and Ember App Kit Contributors + - bootstrap v3.3.6 (http://getbootstrap.com) - Copyright (c) 2011-2014 Twitter, Inc + - jquery v2.1.4 (http://jquery.org) - Copyright 2005, 2014 jQuery Foundation and other contributors + - jquery-ui v1.11.4 (http://jqueryui.com/) - Copyright 2014 jQuery Foundation and other contributors + - datatables v1.10.8 (https://datatables.net/) + - moment v2.10.6 (http://momentjs.com/) - Copyright (c) 2011-2015 Tim Wood, Iskren Chernev, Moment.js contributors + - em-helpers v0.5.8 (https://github.com/sreenaths/em-helpers) + - ember-cli-app-version v0.5.8 (https://github.com/EmberSherpa/ember-cli-app-version) - Authored by Taras Mankovski + - ember-cli-babel v5.1.6 (https://github.com/babel/ember-cli-babel) - Authored by Stefan Penner + - ember-cli-content-security-policy v0.4.0 (https://github.com/rwjblue/ember-cli-content-security-policy) + - ember-cli-dependency-checker v1.2.0 (https://github.com/quaertym/ember-cli-dependency-checker) - Authored by Emre Unal + - ember-cli-htmlbars v1.0.2 (https://github.com/ember-cli/ember-cli-htmlbars) - Authored by Robert Jackson + - ember-cli-htmlbars-inline-precompile v0.3.1 (https://github.com/pangratz/ember-cli-htmlbars-inline-precompile) - Authored by Clemens Müller + - ember-cli-ic-ajax v0.2.1 (https://github.com/rwjblue/ember-cli-ic-ajax) - Authored by Robert Jackson + - ember-cli-inject-live-reload v1.4.0 (https://github.com/rwjblue/ember-cli-inject-live-reload) - Authored by Robert Jackson + - ember-cli-qunit v1.2.1 (https://github.com/ember-cli/ember-cli-qunit) - Authored by Robert Jackson + - ember-cli-release v0.2.8 (https://github.com/lytics/ember-cli-release) - Authored by Robert Jackson + - ember-cli-sri v1.2.1 (https://github.com/jonathanKingston/ember-cli-sri) - Authored by Jonathan Kingston + - ember-cli-uglify v1.2.0 (github.com/ember-cli/ember-cli-uglify) - Authored by Robert Jackson + - ember-d3 v0.1.0 (https://github.com/brzpegasus/ember-d3) - Authored by Estelle DeBlois + - select2 v4.0.0 (https://select2.github.io/) + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and assocated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +---- +The Apache Hadoop YARN Web UI component bundles the following files under the BSD License: + +(3-clause BSD license) + - D3 v3.5.6 (http://d3js.org/) - Copyright (c) 2010-2014, Michael Bostock + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list + of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may + be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/dev-support/create-release.sh b/dev-support/create-release.sh new file mode 100755 index 00000000000..792a8057c6d --- /dev/null +++ b/dev-support/create-release.sh @@ -0,0 +1,144 @@ +#!/bin/bash +# 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. + + +# Function to probe the exit code of the script commands, +# and stop in the case of failure with an contextual error +# message. +run() { + echo "\$ ${@}" + "${@}" + exitCode=$? + if [[ $exitCode != 0 ]]; then + echo + echo "Failed! running ${@} in `pwd`" + echo + exit $exitCode + fi +} + +doMD5() { + MD5CMD="md5sum" + which $MD5CMD + if [[ $? != 0 ]]; then + MD5CMD="md5" + fi + run $MD5CMD ${1} > ${1}.md5 +} + +# If provided, the created release artifacts will be tagged with it +# (use RC#, i.e: RC0). Do not use a label to create the final release +# artifact. +RC_LABEL=$1 + +# Extract Hadoop version from POM +HADOOP_VERSION=`cat pom.xml | grep "" | head -1 | sed 's|^ *||' | sed 's|.*$||'` + +# Setup git +GIT=${GIT:-git} + +echo +echo "*****************************************************************" +echo +echo "Hadoop version to create release artifacts: ${HADOOP_VERSION}" +echo +echo "Release Candidate Label: ${RC_LABEL}" +echo +echo "*****************************************************************" +echo + +if [[ ! -z ${RC_LABEL} ]]; then + RC_LABEL="-${RC_LABEL}" +fi + +# Get Maven command +if [ -z "$MAVEN_HOME" ]; then + MVN=mvn +else + MVN=$MAVEN_HOME/bin/mvn +fi + +ARTIFACTS_DIR="target/artifacts" + +# git clean to clear any remnants from previous build +run ${GIT} clean -xdf + +# mvn clean for sanity +run ${MVN} clean + +# Create staging dir for release artifacts +run mkdir -p ${ARTIFACTS_DIR} + +# Create RAT report +run ${MVN} apache-rat:check + +# Create SRC and BIN tarballs for release, +# Using 'install’ goal instead of 'package' so artifacts are available +# in the Maven local cache for the site generation +run ${MVN} install -Pdist,src,native,yarn-ui -DskipTests -Dtar + +# Create site for release +run ${MVN} site site:stage -Pdist -Psrc +run mkdir -p target/staging/hadoop-project/hadoop-project-dist/hadoop-yarn +run mkdir -p target/staging/hadoop-project/hadoop-project-dist/hadoop-mapreduce +run cp ./hadoop-common-project/hadoop-common/src/main/docs/releasenotes.html target/staging/hadoop-project/hadoop-project-dist/hadoop-common/ +run cp ./hadoop-common-project/hadoop-common/CHANGES.txt target/staging/hadoop-project/hadoop-project-dist/hadoop-common/ +run cp ./hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt target/staging/hadoop-project/hadoop-project-dist/hadoop-hdfs/ +run cp ./hadoop-yarn-project/CHANGES.txt target/staging/hadoop-project/hadoop-project-dist/hadoop-yarn/ +run cp ./hadoop-mapreduce-project/CHANGES.txt target/staging/hadoop-project/hadoop-project-dist/hadoop-mapreduce/ +run mv target/staging/hadoop-project target/r${HADOOP_VERSION}/ +run cd target/ +run tar czf hadoop-site-${HADOOP_VERSION}.tar.gz r${HADOOP_VERSION}/* +run cd .. + +# Stage RAT report +find . -name rat.txt | xargs -I% cat % > ${ARTIFACTS_DIR}/hadoop-${HADOOP_VERSION}${RC_LABEL}-rat.txt + +# Stage CHANGES.txt files +run cp ./hadoop-common-project/hadoop-common/CHANGES.txt ${ARTIFACTS_DIR}/CHANGES-COMMON-${HADOOP_VERSION}${RC_LABEL}.txt +run cp ./hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt ${ARTIFACTS_DIR}/CHANGES-HDFS-${HADOOP_VERSION}${RC_LABEL}.txt +run cp ./hadoop-mapreduce-project/CHANGES.txt ${ARTIFACTS_DIR}/CHANGES-MAPREDUCE-${HADOOP_VERSION}${RC_LABEL}.txt +run cp ./hadoop-yarn-project/CHANGES.txt ${ARTIFACTS_DIR}/CHANGES-YARN-${HADOOP_VERSION}${RC_LABEL}.txt + +# Prepare and stage BIN tarball +run cd hadoop-dist/target/ +run tar -xzf hadoop-${HADOOP_VERSION}.tar.gz +run cp -r ../../target/r${HADOOP_VERSION}/* hadoop-${HADOOP_VERSION}/share/doc/hadoop/ +run tar -czf hadoop-${HADOOP_VERSION}.tar.gz hadoop-${HADOOP_VERSION} +run cd ../.. +run mv hadoop-dist/target/hadoop-${HADOOP_VERSION}.tar.gz ${ARTIFACTS_DIR}/hadoop-${HADOOP_VERSION}${RC_LABEL}.tar.gz + +# Stage SRC tarball +run mv hadoop-dist/target/hadoop-${HADOOP_VERSION}-src.tar.gz ${ARTIFACTS_DIR}/hadoop-${HADOOP_VERSION}${RC_LABEL}-src.tar.gz + +# Stage SITE tarball +run mv target/hadoop-site-${HADOOP_VERSION}.tar.gz ${ARTIFACTS_DIR}/hadoop-${HADOOP_VERSION}${RC_LABEL}-site.tar.gz + +# MD5 SRC and BIN tarballs +doMD5 ${ARTIFACTS_DIR}/hadoop-${HADOOP_VERSION}${RC_LABEL}.tar.gz +doMD5 ${ARTIFACTS_DIR}/hadoop-${HADOOP_VERSION}${RC_LABEL}-src.tar.gz + +run cd ${ARTIFACTS_DIR} +ARTIFACTS_DIR=`pwd` +echo +echo "Congratulations, you have successfully built the release" +echo "artifacts for Apache Hadoop ${HADOOP_VERSION}${RC_LABEL}" +echo +echo "The artifacts for this run are available at ${ARTIFACTS_DIR}:" +run ls -1 ${ARTIFACTS_DIR} +echo +echo "Remember to sign them before staging them on the open" +echo diff --git a/dev-support/docker/Dockerfile b/dev-support/docker/Dockerfile index 5a7f85aa0f3..e66fef2b217 100644 --- a/dev-support/docker/Dockerfile +++ b/dev-support/docker/Dockerfile @@ -132,6 +132,11 @@ RUN pip install python-dateutil ### ENV MAVEN_OPTS -Xms256m -Xmx512m +### +# Install node js tools for web UI frameowkr +### +RUN apt-get -y install nodejs && ln -s /usr/bin/nodejs /usr/bin/node && apt-get -y install npm && npm install -g bower + ### # Everything past this point is either not needed for testing or breaks Yetus. # So tell Yetus not to read the rest of the file: diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnUI2.md b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnUI2.md new file mode 100644 index 00000000000..575ebc7e170 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/YarnUI2.md @@ -0,0 +1,43 @@ + + +Hadoop: YARN-UI V2 +================= +*This is a WIP project, nobody should use it in production.* + +Prerequisites +------------- + +You will need the following things properly installed on your computer. + +* Install Node.js with NPM: https://nodejs.org/download/ +* After Node.js installed, install bower: `npm install -g bower`. +* Install Ember-cli: `npm install -g ember-cli` + +BUILD +---- +* Please refer to BUILDING.txt in the top directory and pass -Pyarn-ui to build UI-related code +* Execute `mvn test -Pyarn-ui` to run unit tests + +Try it +------ + +* Packaging and deploying Hadoop in this branch +* In `hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/config.js`, change `timelineWebUrl` and `rmWebUrl` to your YARN RM/Timeline server web address. +* If you are running YARN RM in your localhost, you should update `localBaseUrl` to `localhost:1337/`, install `npm install -g corsproxy` and run `corsproxy` to avoid CORS errors. More details: `https://www.npmjs.com/package/corsproxy`. +* Run `ember serve` under `hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/` +* Visit your app at [http://localhost:4200](http://localhost:4200). diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.bowerrc b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.bowerrc deleted file mode 100644 index 959e1696e7b..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.bowerrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "directory": "bower_components", - "analytics": false -} diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.editorconfig b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.editorconfig deleted file mode 100644 index 47c5438403c..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.editorconfig +++ /dev/null @@ -1,34 +0,0 @@ -# EditorConfig helps developers define and maintain consistent -# coding styles between different editors and IDEs -# editorconfig.org - -root = true - - -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -indent_style = space -indent_size = 2 - -[*.js] -indent_style = space -indent_size = 2 - -[*.hbs] -insert_final_newline = false -indent_style = space -indent_size = 2 - -[*.css] -indent_style = space -indent_size = 2 - -[*.html] -indent_style = space -indent_size = 2 - -[*.{diff,md}] -trim_trailing_whitespace = false diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.ember-cli b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.ember-cli deleted file mode 100644 index 96bd287a203..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.ember-cli +++ /dev/null @@ -1,11 +0,0 @@ -{ - /** - Ember CLI sends analytics information by default. The data is completely - anonymous, but there are times when you might want to disable this behavior. - - Setting `disableAnalytics` to true will prevent any data from being sent. - */ - "disableAnalytics": false, - "liveReload": true, - "watcher": "polling" -} diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.gitignore b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.gitignore deleted file mode 100644 index 86fceae7af4..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. - -# compiled output -/dist -/tmp - -# dependencies -/node_modules -/bower_components - -# misc -/.sass-cache -/connect.lock -/coverage/* -/libpeerconnection.log -npm-debug.log -testem.log diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.jshintrc b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.jshintrc deleted file mode 100644 index 08096effaab..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.jshintrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "predef": [ - "document", - "window", - "-Promise" - ], - "browser": true, - "boss": true, - "curly": true, - "debug": false, - "devel": true, - "eqeqeq": true, - "evil": true, - "forin": false, - "immed": false, - "laxbreak": false, - "newcap": true, - "noarg": true, - "noempty": false, - "nonew": false, - "nomen": false, - "onevar": false, - "plusplus": false, - "regexp": false, - "undef": true, - "sub": true, - "strict": false, - "white": false, - "eqnull": true, - "esnext": true, - "unused": true -} diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.travis.yml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.travis.yml deleted file mode 100644 index 66dd1076931..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.travis.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- -language: node_js -node_js: - - "0.12" - -sudo: false - -cache: - directories: - - node_modules - -before_install: - - export PATH=/usr/local/phantomjs-2.0.0/bin:$PATH - - "npm config set spin false" - - "npm install -g npm@^2" - -install: - - npm install -g bower - - npm install - - bower install - -script: - - npm test diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.watchmanconfig b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.watchmanconfig deleted file mode 100644 index 5e9462c2005..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/.watchmanconfig +++ /dev/null @@ -1,3 +0,0 @@ -{ - "ignore_dirs": ["tmp"] -} diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/README.md b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/README.md deleted file mode 100644 index d5cba6e5b0e..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# Yarn-ui -*This is a WIP project, nobody should use it in production.* - -## Prerequisites - -You will need the following things properly installed on your computer. - -* Install Node.js with NPM: https://nodejs.org/download/ -* After Node.js installed, install bower: `npm install -g bower`. -* Install Ember-cli: `npm install -g ember-cli` - -## Installation - -* Goto root directory of yarn-ui project: `hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui` -* `npm install && bower install`, it will take a while to finish. - -## Try it - -* Packaging and deploying Hadoop in this branch (You can use latest trunk after YARN-4417 committed to trunk) -* Modify `app/adapters/yarn-app.js`, change `host` to your YARN RM web address -* If you running YARN RM in your localhost, you should install `npm install -g corsproxy` and run `corsproxy` to avoid CORS errors. More details: `https://www.npmjs.com/package/corsproxy`. And the `host` of `app/adapters/yarn-app.js` should start with `localhost:1337`. -* Run `ember server` -* Visit your app at [http://localhost:4200](http://localhost:4200). - diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/cluster-info.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/cluster-info.js deleted file mode 100644 index 5a0d2d3bd7d..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/cluster-info.js +++ /dev/null @@ -1,20 +0,0 @@ -import DS from 'ember-data'; -import Config from 'yarn-ui/config'; - -export default DS.JSONAPIAdapter.extend({ - headers: { - Accept: 'application/json' - }, - host: 'http://localhost:1337/' + Config.RM_HOST + ':' + Config.RM_PORT, // configurable - namespace: 'ws/v1/cluster', // common const - pathForType(modelName) { - return ''; // move to some common place, return path by modelname. - }, - ajax(url, method, hash) { - hash = hash || {}; - hash.crossDomain = true; - hash.xhrFields = {withCredentials: true}; - hash.targetServer = "RM"; - return this._super(url, method, hash); - } -}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/cluster-metric.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/cluster-metric.js deleted file mode 100644 index d392c9bcd65..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/cluster-metric.js +++ /dev/null @@ -1,20 +0,0 @@ -import DS from 'ember-data'; -import Config from 'yarn-ui/config'; - -export default DS.JSONAPIAdapter.extend({ - headers: { - Accept: 'application/json' - }, - host: 'http://localhost:1337/' + Config.RM_HOST + ':' + Config.RM_PORT, // configurable - namespace: 'ws/v1/cluster/metrics', // common const - pathForType(modelName) { - return ''; // move to some common place, return path by modelname. - }, - ajax(url, method, hash) { - hash = hash || {}; - hash.crossDomain = true; - hash.xhrFields = {withCredentials: true}; - hash.targetServer = "RM"; - return this._super(url, method, hash); - } -}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-app.js deleted file mode 100644 index faff3e700c4..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-app.js +++ /dev/null @@ -1,26 +0,0 @@ -import DS from 'ember-data'; -import Config from 'yarn-ui/config'; - -export default DS.JSONAPIAdapter.extend({ - headers: { - Accept: 'application/json' - }, - host: 'http://localhost:1337/' + Config.RM_HOST + ':' + Config.RM_PORT, // configurable - namespace: 'ws/v1/cluster', // common const - pathForType(modelName) { - return 'apps'; // move to some common place, return path by modelname. - }, - /* - urlForQuery(query, modelName) { - var url = this._buildURL(); - return url + '/apps/' + query.appId + "/appattempts"; - }, - */ - ajax(url, method, hash) { - hash = hash || {}; - hash.crossDomain = true; - hash.xhrFields = {withCredentials: true}; - hash.targetServer = "RM"; - return this._super(url, method, hash); - } -}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-queue.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-queue.js deleted file mode 100644 index 0f6eb650df7..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-queue.js +++ /dev/null @@ -1,20 +0,0 @@ -import DS from 'ember-data'; -import Config from 'yarn-ui/config'; - -export default DS.JSONAPIAdapter.extend({ - headers: { - Accept: 'application/json' - }, - host: 'http://localhost:1337/' + Config.RM_HOST + ':' + Config.RM_PORT, // configurable - namespace: 'ws/v1/cluster', // common const - pathForType(modelName) { - return 'scheduler'; // move to some common place, return path by modelname. - }, - ajax(url, method, hash) { - hash = hash || {}; - hash.crossDomain = true; - hash.xhrFields = {withCredentials: true}; - hash.targetServer = "RM"; - return this._super(url, method, hash); - } -}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/app.js deleted file mode 100644 index ff28ecfc387..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/app.js +++ /dev/null @@ -1,20 +0,0 @@ -import Ember from 'ember'; -import Resolver from 'ember/resolver'; -import loadInitializers from 'ember/load-initializers'; -import config from './config/environment'; -import Sorter from 'yarn-ui/utils/sorter'; - -var App; - -Ember.MODEL_FACTORY_INJECTIONS = true; - -App = Ember.Application.extend({ - modulePrefix: config.modulePrefix, - podModulePrefix: config.podModulePrefix, - Resolver: Resolver -}); - -loadInitializers(App, config.modulePrefix); -Sorter.initDataTableSorter(); - -export default App; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/.gitkeep b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/.gitkeep deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/app-attempt-table.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/app-attempt-table.js deleted file mode 100644 index aff04937391..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/app-attempt-table.js +++ /dev/null @@ -1,4 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Component.extend({ -}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/app-table.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/app-table.js deleted file mode 100644 index aff04937391..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/app-table.js +++ /dev/null @@ -1,4 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Component.extend({ -}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/container-table.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/container-table.js deleted file mode 100644 index aff04937391..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/container-table.js +++ /dev/null @@ -1,4 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Component.extend({ -}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/item-selector.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/item-selector.js deleted file mode 100644 index a18ccaea34b..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/item-selector.js +++ /dev/null @@ -1,21 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Component.extend({ - didInsertElement: function() { - $(".js-example-basic-single").select2( - { - width: '100%', - placeholder: "Select a queue" - }); - var elementId = this.get("element-id"); - var prefix = this.get("prefix"); - - var element = d3.select("#" + elementId); - - if (element) { - this.get("model").forEach(function(o) { - element.append("option").attr("value", o.get("name")).text(prefix + o.get("name")); - }); - } - } -}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/queue-configuration-table.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/queue-configuration-table.js deleted file mode 100644 index aff04937391..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/queue-configuration-table.js +++ /dev/null @@ -1,4 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Component.extend({ -}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/queue-navigator.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/queue-navigator.js deleted file mode 100644 index aff04937391..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/queue-navigator.js +++ /dev/null @@ -1,4 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Component.extend({ -}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/queue-view.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/queue-view.js deleted file mode 100644 index c1fd8ff3634..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/queue-view.js +++ /dev/null @@ -1,272 +0,0 @@ -import Ember from 'ember'; -import ChartUtilsMixin from 'yarn-ui/mixins/charts-utils'; - -export default Ember.Component.extend(ChartUtilsMixin, { - queues: { - data: undefined, - foldedQueues: {}, - selectedQueueCircle: undefined, - maxDepth: -1, - }, - - queueColors: d3.scale.category20().range(), - - renderQueue: function(now, depth, sequence) { - if (depth > this.queues.maxDepth) { - this.queues.maxDepth = depth; - } - - var cx = 20 + depth * 30; - var cy = 20 + sequence * 30; - var name = now.get("name"); - - var g = this.queues.dataGroup.append("g") - .attr("id", "queue-" + name + "-g"); - - var folded = this.queues.foldedQueues[name]; - var isParentQueue = false; - - // render its children - var children = []; - var childrenNames = now.get("children"); - if (childrenNames) { - childrenNames.forEach(function(name) { - isParentQueue = true; - var child = this.queues.data[name]; - if (child) { - children.push(child); - } - }.bind(this)); - } - if (folded) { - children = []; - } - var linefunction = d3.svg.line() - .interpolate("basis") - .x(function(d) { - return d.x; - }) - .y(function(d) { - return d.y; - }); - - for (var i = 0; i < children.length; i++) { - sequence = sequence + 1; - // Get center of children queue - var cc = this.renderQueue(children[i], - depth + 1, sequence); - g.append("path") - .attr("class", "queue") - .attr("d", linefunction([{ - x: cx, - y: cy - }, { - x: cc.x - 20, - y: cc.y - }, cc])); - } - - var circle = g.append("circle") - .attr("cx", cx) - .attr("cy", cy) - .attr("class", "queue"); - - circle.on('mouseover', function() { - circle.style("fill", this.queueColors[1]); - }.bind(this)); - circle.on('mouseout', function() { - if (circle != this.queues.selectedQueueCircle) { - circle.style("fill", this.queueColors[0]); - } - }.bind(this)); - circle.on('click', function() { - circle.style("fill", this.queueColors[2]); - var pre = this.queues.selectedQueueCircle; - this.queues.selectedQueueCircle = circle; - if (pre) { - pre.on('mouseout')(); - } - this.renderCharts(name); - }.bind(this)); - circle.on('dblclick', function() { - if (!isParentQueue) { - return; - } - - if (this.queues.foldedQueues[name]) { - delete this.queues.foldedQueues[name]; - } else { - this.queues.foldedQueues[name] = now; - } - this.renderQueues(); - }.bind(this)); - - var text = name; - if (folded) { - text = name + " (+)"; - } - - // print queue's name - g.append("text") - .attr("x", cx + 30) - .attr("y", cy + 5) - .text(text) - .attr("class", "queue"); - - return { - x: cx, - y: cy - }; - }, - - renderQueues: function() { - if (this.queues.dataGroup) { - this.queues.dataGroup.remove(); - } - // render queues - this.queues.dataGroup = this.canvas.svg.append("g") - .attr("id", "queues-g"); - var rootQueue = undefined; - - if (this.queues.data) { - this.renderQueue(this.queues.data['root'], 0, 0); - - } - }, - - draw: function() { - this.queues.data = {}; - this.get("model") - .forEach(function(o) { - this.queues.data[o.id] = o; - }.bind(this)); - - // get w/h of the svg - var bbox = d3.select("#main-container") - .node() - .getBoundingClientRect(); - this.canvas.w = bbox.width; - this.canvas.h = Math.max(Object.keys(this.queues.data) - .length * 35, 1500); - - this.canvas.svg = d3.select("#main-container") - .append("svg") - .attr("width", this.canvas.w) - .attr("height", this.canvas.h) - .attr("id", "main-svg"); - - this.renderBackground(); - - this.renderQueues(); - this.renderCharts("root"); - }, - - didInsertElement: function() { - this.draw(); - }, - - /* - * data = [{label="xx", value=},{...}] - */ - renderTable: function(data, title, layout) { - d3.select("#main-svg") - .append('table') - .selectAll('tr') - .data(data) - .enter() - .append('tr') - .selectAll('td') - .data(function(d) { - return d; - }) - .enter() - .append('td') - .text(function(d) { - return d; - }); - }, - - renderQueueCapacities: function(queue, layout) { - // Render bar chart - this.renderBarChart(this.charts.g, [{ - label: "Cap", - value: queue.get("capacity") - }, { - label: "MaxCap", - value: queue.get("maxCapacity") - }, { - label: "UsedCap", - value: queue.get("usedCapacity") - }], "Queue Capacities", layout, 60); - }, - - renderChildrenCapacities: function(queue, layout) { - var data = []; - var children = queue.get("children"); - if (children) { - for (var i = 0; i < children.length; i++) { - var child = this.queues.data[children[i]]; - data.push({ - label: child.get("name"), - value: child.get("capacity") - }); - } - } - - this.renderDonutChart(this.charts.g, data, "Children Capacities", layout, true); - }, - - renderChildrenUsedCapacities: function(queue, layout) { - var data = []; - var children = queue.get("children"); - if (children) { - for (var i = 0; i < children.length; i++) { - var child = this.queues.data[children[i]]; - data.push({ - label: child.get("name"), - value: child.get("usedCapacity") - }); - } - } - - this.renderDonutChart(this.charts.g, data, "Children Used Capacities", layout, true); - }, - - renderLeafQueueUsedCapacities: function(layout) { - var leafQueueUsedCaps = []; - for (var queueName in this.queues.data) { - var q = this.queues.data[queueName]; - if ((!q.get("children")) || q.get("children") - .length == 0) { - // it's a leafqueue - leafQueueUsedCaps.push({ - label: q.get("name"), - value: q.get("usedCapacity") - }); - } - } - - this.renderDonutChart(this.charts.g, leafQueueUsedCaps, "LeafQueues Used Capacities", - layout, true); - }, - - renderCharts: function(queueName) { - this.charts.leftBannerLen = this.queues.maxDepth * 30 + 100; - this.initCharts(); - - var queue = this.queues.data[queueName]; - var idx = 0; - - if (queue.get("name") == "root") { - this.renderLeafQueueUsedCapacities(this.getLayout(idx++)); - } - if (queue.get("name") != "root") { - this.renderQueueCapacities(queue, this.getLayout(idx++)); - } - if (queue.get("children") && queue.get("children") - .length > 0) { - this.renderChildrenCapacities(queue, this.getLayout(idx++)); - this.renderChildrenUsedCapacities(queue, this.getLayout(idx++)); - } - }, -}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/.gitkeep b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/.gitkeep deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/cluster-overview.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/cluster-overview.js deleted file mode 100644 index 5c3c825d81a..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/cluster-overview.js +++ /dev/null @@ -1,5 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Controller.extend({ - loading: true, -}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/yarn-apps.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/yarn-apps.js deleted file mode 100644 index 55ff9aa587a..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/yarn-apps.js +++ /dev/null @@ -1,4 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Controller.extend({ -}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/yarn-queue.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/yarn-queue.js deleted file mode 100644 index b16864effc6..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/yarn-queue.js +++ /dev/null @@ -1,6 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Controller.extend({ - needReload: true, - selectedQueue: undefined, -}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/helpers/.gitkeep b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/helpers/.gitkeep deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/index.html b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/index.html deleted file mode 100644 index edc4f2e6e59..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - YarnUi - - - - {{content-for 'head'}} - - - - - {{content-for 'head-footer'}} - - - {{content-for 'body'}} - - - - - {{content-for 'body-footer'}} - - diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/.gitkeep b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/.gitkeep deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/cluster-info.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/cluster-info.js deleted file mode 100644 index b1f0a888fe8..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/cluster-info.js +++ /dev/null @@ -1,13 +0,0 @@ -import DS from 'ember-data'; - -export default DS.Model.extend({ - startedOn: DS.attr('string'), - state: DS.attr('string'), - haState: DS.attr('string'), - rmStateStoreName: DS.attr('string'), - resourceManagerVersion: DS.attr('string'), - resourceManagerBuildVersion: DS.attr('string'), - hadoopVersion: DS.attr('string'), - hadoopBuildVersion: DS.attr('string'), - hadoopVersionBuiltOn: DS.attr('string') -}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-user.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-user.js deleted file mode 100644 index 6e9c03cd57f..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-user.js +++ /dev/null @@ -1,8 +0,0 @@ -import DS from 'ember-data'; - -export default DS.Model.extend({ - name: DS.attr('string'), - queueName: DS.attr('string'), - usedMemoryMB: DS.attr('number'), - usedVCore: DS.attr('number') -}) \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/.gitkeep b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/.gitkeep deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/cluster-overview.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/cluster-overview.js deleted file mode 100644 index 4ba5dcd482e..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/cluster-overview.js +++ /dev/null @@ -1,11 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Route.extend({ - model() { - return this.store.findAll('ClusterMetric'); - }, - - afterModel() { - this.controllerFor("ClusterOverview").set("loading", false); - } -}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-app-attempt.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-app-attempt.js deleted file mode 100644 index 3b6adc7f01a..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-app-attempt.js +++ /dev/null @@ -1,21 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Route.extend({ - model(param) { - return Ember.RSVP.hash({ - attempt: this.store.findRecord('yarnAppAttempt', param.app_attempt_id), - - rmContainers: this.store.query('yarnContainer', - { - app_attempt_id: param.app_attempt_id, - is_rm: true - }), - - tsContainers: this.store.query('yarnContainer', - { - app_attempt_id: param.app_attempt_id, - is_rm: false - }), - }); - } -}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-app.js deleted file mode 100644 index 03092aaff6b..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-app.js +++ /dev/null @@ -1,10 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Route.extend({ - model(param) { - return Ember.RSVP.hash({ - app: this.store.find('yarnApp', param.app_id), - attempts: this.store.query('yarnAppAttempt', { appId: param.app_id}) - }); - } -}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-apps.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-apps.js deleted file mode 100644 index 2787f5b60da..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-apps.js +++ /dev/null @@ -1,8 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Route.extend({ - model() { - var apps = this.store.findAll('yarnApp'); - return apps; - } -}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-queue.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-queue.js deleted file mode 100644 index 9396bacf8cb..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-queue.js +++ /dev/null @@ -1,20 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Route.extend({ - model(param) { - return Ember.RSVP.hash({ - selected : param.queue_name, - queues: this.store.findAll('yarnQueue'), - selectedQueue : undefined, - apps: undefined, // apps of selected queue - }); - }, - - afterModel(model) { - model.selectedQueue = this.store.peekRecord('yarnQueue', model.selected); - model.apps = this.store.findAll('yarnApp'); - model.apps.forEach(function(o) { - console.log(o); - }) - } -}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-queues/index.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-queues/index.js deleted file mode 100644 index 9be90b15fec..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-queues/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export default Ember.Route.extend({ - beforeModel() { - this.transitionTo('yarnQueues.root'); - } -}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-queues/queues-selector.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-queues/queues-selector.js deleted file mode 100644 index 0f6c57206f5..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-queues/queues-selector.js +++ /dev/null @@ -1,7 +0,0 @@ -import Ember from 'ember'; - -export default Ember.Route.extend({ - model() { - return this.store.findAll('yarnQueue'); - }, -}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/components/.gitkeep b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/components/.gitkeep deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/components/app-attempt-table.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/components/app-attempt-table.hbs deleted file mode 100644 index 633d3636dcb..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/components/app-attempt-table.hbs +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Application Attempt Id{{attempt.id}}
Start Time{{attempt.startTime}}
AM Container Id{{attempt.containerId}}
AM Node Web UI{{attempt.nodeHttpAddress}}
AM Node Id{{attempt.nodeId}}
Loglink
\ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/components/queue-navigator.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/components/queue-navigator.hbs deleted file mode 100644 index 4ef22902620..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/components/queue-navigator.hbs +++ /dev/null @@ -1,18 +0,0 @@ -
-
- -
-
- - -
-
- {{tree-selector model=model parentId="tree-selector-container" selected=selected}} -
-
- -
- -{{outlet}} \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/yarn-app-attempt.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/yarn-app-attempt.hbs deleted file mode 100644 index afcfa4f814b..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/yarn-app-attempt.hbs +++ /dev/null @@ -1,12 +0,0 @@ -
-
- {{app-attempt-table attempt=model.attempt}} -
- - -
- {{timeline-view parent-id="containers-timeline-div" my-id="timeline-view" height="400" rmModel=model.rmContainers tsModel=model.tsContainers label="shortAppAttemptId" attemptModel=false}} -
-
- -{{outlet}} \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/yarn-apps.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/yarn-apps.hbs deleted file mode 100644 index 3a79080568d..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/yarn-apps.hbs +++ /dev/null @@ -1,3 +0,0 @@ -{{app-table table-id="apps-table" arr=model}} -{{simple-table table-id="apps-table" bFilter=true colsOrder="0,desc" colTypes="natural elapsed-time" colTargets="0 7"}} -{{outlet}} diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/pom.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/pom.xml new file mode 100644 index 00000000000..66bf54a0b1d --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/pom.xml @@ -0,0 +1,207 @@ + + + + + hadoop-yarn + org.apache.hadoop + 3.0.0-SNAPSHOT + + 4.0.0 + org.apache.hadoop + hadoop-yarn-ui + 3.0.0-SNAPSHOT + Apache Hadoop YARN UI + ${packaging.type} + + + jar + src/main/webapp + node + v0.12.2 + 2.10.0 + false + + + + + + + org.apache.rat + apache-rat-plugin + + + src/main/webapp/node_modules/**/* + src/main/webapp/bower_components/**/* + src/main/webapp/jsconfig.json + src/main/webapp/bower.json + src/main/webapp/package.json + src/main/webapp/testem.json + src/main/webapp/public/assets/images/**/* + src/main/webapp/public/robots.txt + public/crossdomain.xml + + + + + + maven-clean-plugin + 3.0.0 + + false + + + ${basedir}/src/main/webapp/bower_components + + + ${basedir}/src/main/webapp/node_modules + + + + + + + + + + yarn-ui + + + false + + + + war + + + + + + + exec-maven-plugin + org.codehaus.mojo + + + generate-sources + npm install + + exec + + + ${webappDir} + npm + + install + + + + + generate-sources + bower install + + exec + + + ${webappDir} + bower + + --allow-root + install + + + + + generate-sources + bower --allow-root install + + exec + + + ${webappDir} + bower + + --allow-root + install + + + + + ember build + generate-sources + + exec + + + ${webappDir} + ember + + build + -prod + --output-path + ${basedir}/target/dist + + + + + ember test + generate-resources + + exec + + + ${skipTests} + ${webappDir} + ember + + test + + + + + cleanup tmp + generate-sources + + exec + + + ${webappDir} + rm + + -rf + tmp + + + + + + + + + org.apache.maven.plugins + maven-war-plugin + + ${basedir}/src/main/webapp/WEB-INF/web.xml + ${basedir}/target/dist + + + + + + + + diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/public/robots.txt b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/public/robots.txt deleted file mode 100644 index f5916452e5f..00000000000 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# http://www.robotstxt.org -User-agent: * -Disallow: diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/WEB-INF/web.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 00000000000..ddb8532434a --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,25 @@ + + + + + + YARN UI + diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/cluster-info.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/cluster-info.js new file mode 100644 index 00000000000..7dcbe6155de --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/cluster-info.js @@ -0,0 +1,38 @@ +/** + * 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 DS from 'ember-data'; +import Config from 'yarn-ui/config'; + +export default DS.JSONAPIAdapter.extend({ + headers: { + Accept: 'application/json' + }, + host: 'http://localhost:1337/' + Config.RM_HOST + ':' + Config.RM_PORT, // configurable + namespace: 'ws/v1/cluster', // common const + pathForType(modelName) { + return ''; // move to some common place, return path by modelname. + }, + ajax(url, method, hash) { + hash = hash || {}; + hash.crossDomain = true; + hash.xhrFields = {withCredentials: true}; + hash.targetServer = "RM"; + return this._super(url, method, hash); + } +}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/cluster-metric.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/cluster-metric.js new file mode 100644 index 00000000000..ad5ae0ee5d7 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/cluster-metric.js @@ -0,0 +1,38 @@ +/** + * 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 DS from 'ember-data'; +import Config from 'yarn-ui/config'; + +export default DS.JSONAPIAdapter.extend({ + headers: { + Accept: 'application/json' + }, + host: 'http://localhost:1337/' + Config.RM_HOST + ':' + Config.RM_PORT, // configurable + namespace: 'ws/v1/cluster/metrics', // common const + pathForType(modelName) { + return ''; // move to some common place, return path by modelname. + }, + ajax(url, method, hash) { + hash = hash || {}; + hash.crossDomain = true; + hash.xhrFields = {withCredentials: true}; + hash.targetServer = "RM"; + return this._super(url, method, hash); + } +}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-app-attempt.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-app-attempt.js similarity index 52% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-app-attempt.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-app-attempt.js index 4e40744d66f..7b233bc5f83 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-app-attempt.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-app-attempt.js @@ -1,3 +1,21 @@ +/** + * 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 DS from 'ember-data'; import Converter from 'yarn-ui/utils/converter'; import Config from 'yarn-ui/config'; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-app.js new file mode 100644 index 00000000000..5cd888cd38e --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-app.js @@ -0,0 +1,44 @@ +/** + * 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 DS from 'ember-data'; +import Config from 'yarn-ui/config'; + +export default DS.JSONAPIAdapter.extend({ + headers: { + Accept: 'application/json' + }, + host: 'http://localhost:1337/' + Config.RM_HOST + ':' + Config.RM_PORT, // configurable + namespace: 'ws/v1/cluster', // common const + pathForType(modelName) { + return 'apps'; // move to some common place, return path by modelname. + }, + /* + urlForQuery(query, modelName) { + var url = this._buildURL(); + return url + '/apps/' + query.appId + "/appattempts"; + }, + */ + ajax(url, method, hash) { + hash = hash || {}; + hash.crossDomain = true; + hash.xhrFields = {withCredentials: true}; + hash.targetServer = "RM"; + return this._super(url, method, hash); + } +}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-container-log.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-container-log.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-container-log.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-container-log.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-container.js similarity index 60% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-container.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-container.js index d941c3865f3..67a37f72980 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-container.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-container.js @@ -1,3 +1,21 @@ +/** + * 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 DS from 'ember-data'; import Converter from 'yarn-ui/utils/converter'; import Config from 'yarn-ui/config'; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-node-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-app.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-node-app.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-app.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-node-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-container.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-node-container.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node-container.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-node.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-node.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-node.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-queue.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-queue.js new file mode 100644 index 00000000000..ebe7b391f56 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-queue.js @@ -0,0 +1,38 @@ +/** + * 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 DS from 'ember-data'; +import Config from 'yarn-ui/config'; + +export default DS.JSONAPIAdapter.extend({ + headers: { + Accept: 'application/json' + }, + host: 'http://localhost:1337/' + Config.RM_HOST + ':' + Config.RM_PORT, // configurable + namespace: 'ws/v1/cluster', // common const + pathForType(modelName) { + return 'scheduler'; // move to some common place, return path by modelname. + }, + ajax(url, method, hash) { + hash = hash || {}; + hash.crossDomain = true; + hash.xhrFields = {withCredentials: true}; + hash.targetServer = "RM"; + return this._super(url, method, hash); + } +}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-rm-node.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-rm-node.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/adapters/yarn-rm-node.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/adapters/yarn-rm-node.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/app.js new file mode 100644 index 00000000000..5617953c0a2 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/app.js @@ -0,0 +1,38 @@ +/** + * 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 Resolver from 'ember/resolver'; +import loadInitializers from 'ember/load-initializers'; +import config from './config/environment'; +import Sorter from 'yarn-ui/utils/sorter'; + +var App; + +Ember.MODEL_FACTORY_INJECTIONS = true; + +App = Ember.Application.extend({ + modulePrefix: config.modulePrefix, + podModulePrefix: config.podModulePrefix, + Resolver: Resolver +}); + +loadInitializers(App, config.modulePrefix); +Sorter.initDataTableSorter(); + +export default App; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/app-attempt-table.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/app-attempt-table.js new file mode 100644 index 00000000000..4b741b88627 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/app-attempt-table.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.Component.extend({ +}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/app-table.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/app-table.js new file mode 100644 index 00000000000..4b741b88627 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/app-table.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.Component.extend({ +}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/bar-chart.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/bar-chart.js similarity index 77% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/bar-chart.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/bar-chart.js index f24e947cded..8e48279f645 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/bar-chart.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/bar-chart.js @@ -1,3 +1,21 @@ +/** + * 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 BaseChartComponent from 'yarn-ui/components/base-chart-component'; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/base-chart-component.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/base-chart-component.js similarity index 76% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/base-chart-component.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/base-chart-component.js index acf2b5fe074..b85b6ab4d05 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/base-chart-component.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/base-chart-component.js @@ -1,3 +1,21 @@ +/** + * 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.Component.extend({ diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/container-table.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/container-table.js new file mode 100644 index 00000000000..4b741b88627 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/container-table.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.Component.extend({ +}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/donut-chart.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/donut-chart.js similarity index 82% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/donut-chart.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/donut-chart.js index 608b0c12922..e6dcb12c508 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/donut-chart.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/donut-chart.js @@ -1,3 +1,21 @@ +/** + * 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 BaseChartComponent from 'yarn-ui/components/base-chart-component'; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/item-selector.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/item-selector.js new file mode 100644 index 00000000000..235e4386e45 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/item-selector.js @@ -0,0 +1,39 @@ +/** + * 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.Component.extend({ + didInsertElement: function() { + $(".js-example-basic-single").select2( + { + width: '100%', + placeholder: "Select a queue" + }); + var elementId = this.get("element-id"); + var prefix = this.get("prefix"); + + var element = d3.select("#" + elementId); + + if (element) { + this.get("model").forEach(function(o) { + element.append("option").attr("value", o.get("name")).text(prefix + o.get("name")); + }); + } + } +}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/queue-configuration-table.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/queue-configuration-table.js new file mode 100644 index 00000000000..4b741b88627 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/queue-configuration-table.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.Component.extend({ +}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/queue-navigator.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/queue-navigator.js new file mode 100644 index 00000000000..4b741b88627 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/queue-navigator.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.Component.extend({ +}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/queue-view.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/queue-view.js new file mode 100644 index 00000000000..2a907719c0b --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/queue-view.js @@ -0,0 +1,290 @@ +/** + * 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 ChartUtilsMixin from 'yarn-ui/mixins/charts-utils'; + +export default Ember.Component.extend(ChartUtilsMixin, { + queues: { + data: undefined, + foldedQueues: {}, + selectedQueueCircle: undefined, + maxDepth: -1, + }, + + queueColors: d3.scale.category20().range(), + + renderQueue: function (now, depth, sequence) { + if (depth > this.queues.maxDepth) { + this.queues.maxDepth = depth; + } + + var cx = 20 + depth * 30; + var cy = 20 + sequence * 30; + var name = now.get("name"); + + var g = this.queues.dataGroup.append("g") + .attr("id", "queue-" + name + "-g"); + + var folded = this.queues.foldedQueues[name]; + var isParentQueue = false; + + // render its children + var children = []; + var childrenNames = now.get("children"); + if (childrenNames) { + childrenNames.forEach(function (name) { + isParentQueue = true; + var child = this.queues.data[name]; + if (child) { + children.push(child); + } + }.bind(this)); + } + if (folded) { + children = []; + } + var linefunction = d3.svg.line() + .interpolate("basis") + .x(function (d) { + return d.x; + }) + .y(function (d) { + return d.y; + }); + + for (var i = 0; i < children.length; i++) { + sequence = sequence + 1; + // Get center of children queue + var cc = this.renderQueue(children[i], + depth + 1, sequence); + g.append("path") + .attr("class", "queue") + .attr("d", linefunction([{ + x: cx, + y: cy + }, { + x: cc.x - 20, + y: cc.y + }, cc])); + } + + var circle = g.append("circle") + .attr("cx", cx) + .attr("cy", cy) + .attr("class", "queue"); + + circle.on('mouseover', function () { + circle.style("fill", this.queueColors[1]); + }.bind(this)); + circle.on('mouseout', function () { + if (circle != this.queues.selectedQueueCircle) { + circle.style("fill", this.queueColors[0]); + } + }.bind(this)); + circle.on('click', function () { + circle.style("fill", this.queueColors[2]); + var pre = this.queues.selectedQueueCircle; + this.queues.selectedQueueCircle = circle; + if (pre) { + pre.on('mouseout')(); + } + this.renderCharts(name); + }.bind(this)); + circle.on('dblclick', function () { + if (!isParentQueue) { + return; + } + + if (this.queues.foldedQueues[name]) { + delete this.queues.foldedQueues[name]; + } else { + this.queues.foldedQueues[name] = now; + } + this.renderQueues(); + }.bind(this)); + + var text = name; + if (folded) { + text = name + " (+)"; + } + + // print queue's name + g.append("text") + .attr("x", cx + 30) + .attr("y", cy + 5) + .text(text) + .attr("class", "queue"); + + return { + x: cx, + y: cy + }; + }, + + renderQueues: function () { + if (this.queues.dataGroup) { + this.queues.dataGroup.remove(); + } + // render queues + this.queues.dataGroup = this.canvas.svg.append("g") + .attr("id", "queues-g"); + var rootQueue = undefined; + + if (this.queues.data) { + this.renderQueue(this.queues.data['root'], 0, 0); + + } + }, + + draw: function () { + this.queues.data = {}; + this.get("model") + .forEach(function (o) { + this.queues.data[o.id] = o; + }.bind(this)); + + // get w/h of the svg + var bbox = d3.select("#main-container") + .node() + .getBoundingClientRect(); + this.canvas.w = bbox.width; + this.canvas.h = Math.max(Object.keys(this.queues.data) + .length * 35, 1500); + + this.canvas.svg = d3.select("#main-container") + .append("svg") + .attr("width", this.canvas.w) + .attr("height", this.canvas.h) + .attr("id", "main-svg"); + + this.renderBackground(); + + this.renderQueues(); + this.renderCharts("root"); + }, + + didInsertElement: function () { + this.draw(); + }, + + /* + * data = [{label="xx", value=},{...}] + */ + renderTable: function (data, title, layout) { + d3.select("#main-svg") + .append('table') + .selectAll('tr') + .data(data) + .enter() + .append('tr') + .selectAll('td') + .data(function (d) { + return d; + }) + .enter() + .append('td') + .text(function (d) { + return d; + }); + }, + + renderQueueCapacities: function (queue, layout) { + // Render bar chart + this.renderBarChart(this.charts.g, [{ + label: "Cap", + value: queue.get("capacity") + }, { + label: "MaxCap", + value: queue.get("maxCapacity") + }, { + label: "UsedCap", + value: queue.get("usedCapacity") + }], "Queue Capacities", layout, 60); + }, + + renderChildrenCapacities: function (queue, layout) { + var data = []; + var children = queue.get("children"); + if (children) { + for (var i = 0; i < children.length; i++) { + var child = this.queues.data[children[i]]; + data.push({ + label: child.get("name"), + value: child.get("capacity") + }); + } + } + + this.renderDonutChart(this.charts.g, data, "Children Capacities", layout, true); + }, + + renderChildrenUsedCapacities: function (queue, layout) { + var data = []; + var children = queue.get("children"); + if (children) { + for (var i = 0; i < children.length; i++) { + var child = this.queues.data[children[i]]; + data.push({ + label: child.get("name"), + value: child.get("usedCapacity") + }); + } + } + + this.renderDonutChart(this.charts.g, data, "Children Used Capacities", layout, true); + }, + + renderLeafQueueUsedCapacities: function (layout) { + var leafQueueUsedCaps = []; + for (var queueName in this.queues.data) { + var q = this.queues.data[queueName]; + if ((!q.get("children")) || q.get("children") + .length == 0) { + // it's a leafqueue + leafQueueUsedCaps.push({ + label: q.get("name"), + value: q.get("usedCapacity") + }); + } + } + + this.renderDonutChart(this.charts.g, leafQueueUsedCaps, "LeafQueues Used Capacities", + layout, true); + }, + + renderCharts: function (queueName) { + this.charts.leftBannerLen = this.queues.maxDepth * 30 + 100; + this.initCharts(); + + var queue = this.queues.data[queueName]; + var idx = 0; + + if (queue.get("name") == "root") { + this.renderLeafQueueUsedCapacities(this.getLayout(idx++)); + } + if (queue.get("name") != "root") { + this.renderQueueCapacities(queue, this.getLayout(idx++)); + } + if (queue.get("children") && queue.get("children") + .length > 0) { + this.renderChildrenCapacities(queue, this.getLayout(idx++)); + this.renderChildrenUsedCapacities(queue, this.getLayout(idx++)); + } + }, +}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/simple-table.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/simple-table.js similarity index 68% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/simple-table.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/simple-table.js index 447533e7e75..e5da81afa2c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/simple-table.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/simple-table.js @@ -1,3 +1,21 @@ +/** + * 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.Component.extend({ diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/timeline-view.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/timeline-view.js similarity index 88% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/timeline-view.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/timeline-view.js index fe402bbcb73..b92f4bfb6af 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/timeline-view.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/timeline-view.js @@ -1,3 +1,21 @@ +/** + * 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 Converter from 'yarn-ui/utils/converter'; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/tree-selector.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/tree-selector.js similarity index 89% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/tree-selector.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/tree-selector.js index 470deaf0f4d..f7ec0207cca 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/components/tree-selector.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/components/tree-selector.js @@ -1,3 +1,21 @@ +/** + * 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.Component.extend({ diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/config.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/config.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/config.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/config.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/constants.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/constants.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/constants.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/constants.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/application.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/application.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/controllers/application.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/application.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/cluster-overview.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/cluster-overview.js new file mode 100644 index 00000000000..dc2f6e4907a --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/cluster-overview.js @@ -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. + */ + +import Ember from 'ember'; + +export default Ember.Controller.extend({ + loading: true, +}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-apps.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-apps.js new file mode 100644 index 00000000000..dc99fd1acf8 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-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.Controller.extend({ +}); 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 new file mode 100644 index 00000000000..38cf35235b3 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/controllers/yarn-queue.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({ + needReload: true, + selectedQueue: undefined, +}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/helpers/divide.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/divide.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/helpers/divide.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/divide.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/helpers/log-files-comma.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/log-files-comma.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/helpers/log-files-comma.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/log-files-comma.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/helpers/node-link.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-link.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/helpers/node-link.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-link.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/helpers/node-menu.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-menu.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/helpers/node-menu.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/helpers/node-menu.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/index.html b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/index.html new file mode 100644 index 00000000000..969ea2fdaf2 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/index.html @@ -0,0 +1,43 @@ + + + + + + + + YarnUi + + + + {{content-for 'head'}} + + + + + {{content-for 'head-footer'}} + + + {{content-for 'body'}} + + + + + {{content-for 'body-footer'}} + + diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/cluster-info.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/cluster-info.js new file mode 100644 index 00000000000..332fdf3113c --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/cluster-info.js @@ -0,0 +1,31 @@ +/** + * 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 DS from 'ember-data'; + +export default DS.Model.extend({ + startedOn: DS.attr('string'), + state: DS.attr('string'), + haState: DS.attr('string'), + rmStateStoreName: DS.attr('string'), + resourceManagerVersion: DS.attr('string'), + resourceManagerBuildVersion: DS.attr('string'), + hadoopVersion: DS.attr('string'), + hadoopBuildVersion: DS.attr('string'), + hadoopVersionBuiltOn: DS.attr('string') +}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/cluster-metric.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/cluster-metric.js similarity index 78% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/cluster-metric.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/cluster-metric.js index 2dd428c344d..981375ac263 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/cluster-metric.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/cluster-metric.js @@ -1,3 +1,21 @@ +/** + * 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 DS from 'ember-data'; export default DS.Model.extend({ diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-app-attempt.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app-attempt.js similarity index 60% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-app-attempt.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app-attempt.js index fcb5134537f..b699bb35aa7 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-app-attempt.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app-attempt.js @@ -1,3 +1,21 @@ +/** + * 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 DS from 'ember-data'; import Converter from 'yarn-ui/utils/converter'; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app.js similarity index 73% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-app.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app.js index fec2bd3f2ec..1d506c25a2a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-app.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-app.js @@ -1,3 +1,21 @@ +/** + * 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 Converter from 'yarn-ui/utils/converter'; import DS from 'ember-data'; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-container-log.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-container-log.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-container-log.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-container-log.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-container.js similarity index 58% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-container.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-container.js index f7977be4b79..b745296249b 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-container.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-container.js @@ -1,3 +1,21 @@ +/** + * 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 DS from 'ember-data'; import Converter from 'yarn-ui/utils/converter'; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-node-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-node-app.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-node-app.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-node-app.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-node-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-node-container.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-node-container.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-node-container.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-node.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-node.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-node.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-node.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-queue.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-queue.js similarity index 71% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-queue.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-queue.js index 5b91d70f5c0..7de4ccca78f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-queue.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-queue.js @@ -1,3 +1,21 @@ +/** + * 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 DS from 'ember-data'; export default DS.Model.extend({ diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-rm-node.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-rm-node.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/models/yarn-rm-node.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-rm-node.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-user.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-user.js new file mode 100644 index 00000000000..7cfd182b3e6 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/models/yarn-user.js @@ -0,0 +1,26 @@ +/** + * 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 DS from 'ember-data'; + +export default DS.Model.extend({ + name: DS.attr('string'), + queueName: DS.attr('string'), + usedMemoryMB: DS.attr('number'), + usedVCore: DS.attr('number') +}) \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/router.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/router.js similarity index 57% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/router.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/router.js index 5db083e6d06..67e9d2c87d6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/router.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/router.js @@ -1,3 +1,21 @@ +/** + * 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 config from './config/environment'; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/application.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/application.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/application.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/application.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 new file mode 100644 index 00000000000..4b4e5544809 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/cluster-overview.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 Ember from 'ember'; + +export default Ember.Route.extend({ + model() { + return this.store.findAll('ClusterMetric'); + }, + + afterModel() { + this.controllerFor("ClusterOverview").set("loading", false); + } +}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/index.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/index.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/index.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/index.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 new file mode 100644 index 00000000000..72a001ca940 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app-attempt.js @@ -0,0 +1,39 @@ +/** + * 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(param) { + return Ember.RSVP.hash({ + attempt: this.store.findRecord('yarnAppAttempt', param.app_attempt_id), + + rmContainers: this.store.query('yarnContainer', + { + app_attempt_id: param.app_attempt_id, + is_rm: true + }), + + tsContainers: this.store.query('yarnContainer', + { + app_attempt_id: param.app_attempt_id, + is_rm: false + }), + }); + } +}); \ No newline at end of file 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 new file mode 100644 index 00000000000..fcdfad849f3 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-app.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.Route.extend({ + model(param) { + return Ember.RSVP.hash({ + app: this.store.find('yarnApp', param.app_id), + attempts: this.store.query('yarnAppAttempt', { appId: param.app_id}) + }); + } +}); 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 new file mode 100644 index 00000000000..083f62daa57 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-apps.js @@ -0,0 +1,26 @@ +/** + * 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() { + var apps = this.store.findAll('yarnApp'); + return apps; + } +}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-container-log.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-container-log.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-container-log.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-container-log.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-node-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node-app.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-node-app.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node-app.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-node-apps.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node-apps.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-node-apps.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node-apps.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-node-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node-container.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-node-container.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node-container.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-node-containers.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node-containers.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-node-containers.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node-containers.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-node.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-node.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-node.js rename to 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/app/routes/yarn-nodes.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-nodes.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/routes/yarn-nodes.js rename to 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-queue.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue.js new file mode 100644 index 00000000000..89858bf31b2 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queue.js @@ -0,0 +1,38 @@ +/** + * 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(param) { + return Ember.RSVP.hash({ + selected : param.queue_name, + queues: this.store.findAll('yarnQueue'), + selectedQueue : undefined, + apps: undefined, // apps of selected queue + }); + }, + + afterModel(model) { + model.selectedQueue = this.store.peekRecord('yarnQueue', model.selected); + model.apps = this.store.findAll('yarnApp'); + model.apps.forEach(function(o) { + console.log(o); + }) + } +}); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queues/index.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queues/index.js new file mode 100644 index 00000000000..7da6f6d4689 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queues/index.js @@ -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. + */ + +export default Ember.Route.extend({ + beforeModel() { + this.transitionTo('yarnQueues.root'); + } +}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queues/queues-selector.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queues/queues-selector.js new file mode 100644 index 00000000000..3686c83fe46 --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/routes/yarn-queues/queues-selector.js @@ -0,0 +1,25 @@ +/** + * 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 this.store.findAll('yarnQueue'); + }, +}); \ No newline at end of file diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/cluster-info.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/cluster-info.js similarity index 53% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/cluster-info.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/cluster-info.js index cc936cb5c40..fad321af143 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/cluster-info.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/cluster-info.js @@ -1,3 +1,21 @@ +/** + * 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 DS from 'ember-data'; export default DS.JSONAPISerializer.extend({ diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/cluster-metric.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/cluster-metric.js similarity index 52% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/cluster-metric.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/cluster-metric.js index d39885e6bda..73c4bc5ca61 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/cluster-metric.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/cluster-metric.js @@ -1,3 +1,21 @@ +/** + * 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 DS from 'ember-data'; export default DS.JSONAPISerializer.extend({ diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-app-attempt.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app-attempt.js similarity index 67% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-app-attempt.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app-attempt.js index c5394d042ba..291589c2d2f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-app-attempt.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app-attempt.js @@ -1,3 +1,21 @@ +/** + * 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 DS from 'ember-data'; import Converter from 'yarn-ui/utils/converter'; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app.js similarity index 76% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-app.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app.js index a038fffabdc..234ad244774 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-app.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-app.js @@ -1,3 +1,21 @@ +/** + * 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 DS from 'ember-data'; import Converter from 'yarn-ui/utils/converter'; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-container-log.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-container-log.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-container-log.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-container-log.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-container.js similarity index 70% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-container.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-container.js index 665b9df2cbf..6f0386ffe0c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-container.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-container.js @@ -1,3 +1,21 @@ +/** + * 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 DS from 'ember-data'; import Converter from 'yarn-ui/utils/converter'; diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-node-app.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-app.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-node-app.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-app.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-node-container.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-container.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-node-container.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node-container.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-node.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-node.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-node.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-queue.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-queue.js similarity index 83% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-queue.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-queue.js index ce4d775332b..1c5b7b3fd5c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-queue.js +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-queue.js @@ -1,3 +1,21 @@ +/** + * 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 DS from 'ember-data'; export default DS.JSONAPISerializer.extend({ diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-rm-node.js b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-rm-node.js similarity index 100% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/serializers/yarn-rm-node.js rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/serializers/yarn-rm-node.js diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/styles/app.css b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/styles/app.css similarity index 72% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/styles/app.css rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/styles/app.css index e1ff994d577..bcb6aab6bf8 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/styles/app.css +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/styles/app.css @@ -1,3 +1,21 @@ +/** + * 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. + */ + /* Over all style */ diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/application.hbs b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs similarity index 52% rename from hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/application.hbs rename to hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs index a9de20342a3..88702c4ad67 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/app/templates/application.hbs +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-ui/src/main/webapp/app/templates/application.hbs @@ -1,3 +1,21 @@ +{{! + * 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. +}} +