Repository: tez Updated Branches: refs/heads/TEZ-2980 dc6a3f3ac -> bdcdfcc54 (forced update)
TEZ-3018. Tez UI 2: Add config.env (sree) Project: http://git-wip-us.apache.org/repos/asf/tez/repo Commit: http://git-wip-us.apache.org/repos/asf/tez/commit/d6bb483f Tree: http://git-wip-us.apache.org/repos/asf/tez/tree/d6bb483f Diff: http://git-wip-us.apache.org/repos/asf/tez/diff/d6bb483f Branch: refs/heads/TEZ-2980 Commit: d6bb483feeb9085b001e5e5c6f97431fc5273c5b Parents: 1e5a315 Author: Sreenath Somarajapuram <s...@apache.org> Authored: Tue Dec 29 22:37:26 2015 +0530 Committer: Sreenath Somarajapuram <s...@apache.org> Committed: Thu Feb 25 03:31:58 2016 +0530 ---------------------------------------------------------------------- TEZ-2980-CHANGES.txt | 1 + tez-ui2/src/main/webapp/app/app.js | 20 +++++++++++- tez-ui2/src/main/webapp/app/index.html | 20 ++++++++++++ tez-ui2/src/main/webapp/app/services/hosts.js | 27 ++++++++++------ .../main/webapp/app/templates/application.hbs | 20 ++++++++++++ tez-ui2/src/main/webapp/config/configs.env | 4 +++ tez-ui2/src/main/webapp/ember-cli-build.js | 24 +++++--------- tez-ui2/src/main/webapp/package.json | 1 + .../webapp/tests/unit/services/hosts-test.js | 34 ++++++++++++++++++++ 9 files changed, 125 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tez/blob/d6bb483f/TEZ-2980-CHANGES.txt ---------------------------------------------------------------------- diff --git a/TEZ-2980-CHANGES.txt b/TEZ-2980-CHANGES.txt index 4a4edaf..e792420 100644 --- a/TEZ-2980-CHANGES.txt +++ b/TEZ-2980-CHANGES.txt @@ -2,3 +2,4 @@ ALL CHANGES: TEZ-2982. Tez UI: Create tez-ui2 directory and get a basic dummy page working in ember 2.2 TEZ-3016. Tez UI 2: Make bower dependency silent TEZ-2983. Tez UI 2: Get ember initializers functional + TEZ-3018. Tez UI 2: Add config.env http://git-wip-us.apache.org/repos/asf/tez/blob/d6bb483f/tez-ui2/src/main/webapp/app/app.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/app.js b/tez-ui2/src/main/webapp/app/app.js index 8b234d6..fb4695c 100644 --- a/tez-ui2/src/main/webapp/app/app.js +++ b/tez-ui2/src/main/webapp/app/app.js @@ -1,5 +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'; -import Resolver from 'ember/resolver'; +import Resolver from 'ember-resolver'; import loadInitializers from 'ember/load-initializers'; import config from './config/environment'; http://git-wip-us.apache.org/repos/asf/tez/blob/d6bb483f/tez-ui2/src/main/webapp/app/index.html ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/index.html b/tez-ui2/src/main/webapp/app/index.html index 23a7578..2108d0f 100644 --- a/tez-ui2/src/main/webapp/app/index.html +++ b/tez-ui2/src/main/webapp/app/index.html @@ -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. +--> + <!DOCTYPE html> <html> <head> @@ -17,6 +35,8 @@ <body> {{content-for 'body'}} + <script src="config/configs.env"></script> + <script src="assets/vendor.js"></script> <script src="assets/tez-ui.js"></script> http://git-wip-us.apache.org/repos/asf/tez/blob/d6bb483f/tez-ui2/src/main/webapp/app/services/hosts.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/services/hosts.js b/tez-ui2/src/main/webapp/app/services/hosts.js index 5bdc6d1..7ffdc29 100644 --- a/tez-ui2/src/main/webapp/app/services/hosts.js +++ b/tez-ui2/src/main/webapp/app/services/hosts.js @@ -21,18 +21,27 @@ import environment from '../config/environment'; export default Ember.Service.extend({ - correctProtocol: function (url) { - var proto = window.location.protocol; + correctProtocol: function (url, localProto) { + var urlProto; - if(proto === "file:") { - proto = "http:"; + localProto = localProto || window.location.protocol; + + if(url.match("://")) { + urlProto = url.substr(0, url.indexOf("//")); + } + + if(localProto === "file:") { + urlProto = urlProto || "http:"; + } + else { + urlProto = localProto; } if(url.match("://")) { url = url.substr(url.indexOf("://") + 3); } - return proto + "//" + url; + return urlProto + "//" + url; }, normalizeURL: function (url) { @@ -46,13 +55,13 @@ export default Ember.Service.extend({ }, timelineBaseURL: Ember.computed(function () { - // Todo: Use global ENV if available - // Todo: Use loaded host if protocol is != file - return this.normalizeURL(environment.hosts.timeline); + var ENV = window.ENV; + return this.normalizeURL((ENV && ENV.timelineBaseURL) || environment.hosts.timeline); }), rmBaseURL: Ember.computed(function () { - return this.normalizeURL(environment.hosts.RM); + var ENV = window.ENV; + return this.normalizeURL((ENV && ENV.rmBaseURL) || environment.hosts.RM); }), }); http://git-wip-us.apache.org/repos/asf/tez/blob/d6bb483f/tez-ui2/src/main/webapp/app/templates/application.hbs ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/app/templates/application.hbs b/tez-ui2/src/main/webapp/app/templates/application.hbs index f8bc38e..c1c380d 100644 --- a/tez-ui2/src/main/webapp/app/templates/application.hbs +++ b/tez-ui2/src/main/webapp/app/templates/application.hbs @@ -1,3 +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. +}} + <h2 id="title">Welcome to Ember</h2> {{outlet}} + +{{hosts.timelineBaseURL}} http://git-wip-us.apache.org/repos/asf/tez/blob/d6bb483f/tez-ui2/src/main/webapp/config/configs.env ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/config/configs.env b/tez-ui2/src/main/webapp/config/configs.env new file mode 100644 index 0000000..6e12286 --- /dev/null +++ b/tez-ui2/src/main/webapp/config/configs.env @@ -0,0 +1,4 @@ +ENV = { + //timelineBaseURL: "http://localhost:8188", + //rmBaseURL: "http://localhost:8088" +}; http://git-wip-us.apache.org/repos/asf/tez/blob/d6bb483f/tez-ui2/src/main/webapp/ember-cli-build.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/ember-cli-build.js b/tez-ui2/src/main/webapp/ember-cli-build.js index 9f33b64..ede63b3 100644 --- a/tez-ui2/src/main/webapp/ember-cli-build.js +++ b/tez-ui2/src/main/webapp/ember-cli-build.js @@ -19,28 +19,20 @@ * limitations under the License. */ +var Funnel = require("broccoli-funnel"); var EmberApp = require('ember-cli/lib/broccoli/ember-app'); module.exports = function(defaults) { - var app = new EmberApp(defaults, { - // Add options here - }); + var app = new EmberApp(defaults, {}); - // Use `app.import` to add additional libraries to the generated - // output files. - // - // If you need to use different assets in different - // environments, specify an object as the first parameter. That - // object's keys should be the environment name and the values - // should be the asset to use in that environment. - // - // If the library that you are including contains AMD or ES6 - // modules that you would like to import into your application - // please specify an object with the list of modules as keys - // along with the exports of each module as its value. + var extraAssets = new Funnel('config', { + srcDir: '/', + include: ['*.env'], + destDir: '/config' + }); app.import('bower_components/jquery-ui/jquery-ui.js'); app.import('bower_components/jquery-ui/ui/tooltip.js'); - return app.toTree(); + return app.toTree(extraAssets); }; http://git-wip-us.apache.org/repos/asf/tez/blob/d6bb483f/tez-ui2/src/main/webapp/package.json ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/package.json b/tez-ui2/src/main/webapp/package.json index 38c76da..da85316 100644 --- a/tez-ui2/src/main/webapp/package.json +++ b/tez-ui2/src/main/webapp/package.json @@ -40,6 +40,7 @@ "ember-resolver": "^2.0.3" }, "dependencies": { + "broccoli-funnel": "^1.0.1", "ember-cli-htmlbars": "^1.0.1", "ember-cli-less": "^1.4.0" } http://git-wip-us.apache.org/repos/asf/tez/blob/d6bb483f/tez-ui2/src/main/webapp/tests/unit/services/hosts-test.js ---------------------------------------------------------------------- diff --git a/tez-ui2/src/main/webapp/tests/unit/services/hosts-test.js b/tez-ui2/src/main/webapp/tests/unit/services/hosts-test.js index 8136ae4..b130a2c 100644 --- a/tez-ui2/src/main/webapp/tests/unit/services/hosts-test.js +++ b/tez-ui2/src/main/webapp/tests/unit/services/hosts-test.js @@ -39,4 +39,38 @@ test('Test correctProtocol', function(assert) { assert.equal(service.correctProtocol("localhost:8088"), "http://localhost:8088"); assert.equal(service.correctProtocol("https://localhost:8088"), "http://localhost:8088"); assert.equal(service.correctProtocol("file://localhost:8088"), "http://localhost:8088"); + + assert.equal(service.correctProtocol("localhost:8088", "http:"), "http://localhost:8088"); + assert.equal(service.correctProtocol("https://localhost:8088", "http:"), "http://localhost:8088"); + assert.equal(service.correctProtocol("file://localhost:8088", "http:"), "http://localhost:8088"); + + assert.equal(service.correctProtocol("localhost:8088", "https:"), "https://localhost:8088"); + assert.equal(service.correctProtocol("https://localhost:8088", "https:"), "https://localhost:8088"); + assert.equal(service.correctProtocol("file://localhost:8088", "https:"), "https://localhost:8088"); +}); + +test('Test correctProtocol with protocol=file:', function(assert) { + let service = this.subject(); + + assert.equal(service.correctProtocol("file://localhost:8088", "file:"), "file://localhost:8088"); + assert.equal(service.correctProtocol("http://localhost:8088", "file:"), "http://localhost:8088"); + assert.equal(service.correctProtocol("https://localhost:8088", "file:"), "https://localhost:8088"); +}); + +test('Test base URLs', function(assert) { + let service = this.subject(); + + assert.equal(service.get("timelineBaseURL"), "http://localhost:8188"); + assert.equal(service.get("rmBaseURL"), "http://localhost:8088"); +}); + +test('Test base URLs with ENV set', function(assert) { + let service = this.subject(); + + window.ENV = { + timelineBaseURL: "https://localhost:3333", + rmBaseURL: "https://localhost:4444" + }; + assert.equal(service.get("timelineBaseURL"), "http://localhost:3333"); + assert.equal(service.get("rmBaseURL"), "http://localhost:4444"); });