You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2015/05/15 19:59:55 UTC
[1/3] ambari git commit: AMBARI-11178. List of components which need
restart have not refreshed after restart (alexantonenko)
Repository: ambari
Updated Branches:
refs/heads/trunk e07d8c931 -> aedb50c0e
AMBARI-11178. List of components which need restart have not refreshed after restart (alexantonenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/c8ac1348
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/c8ac1348
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/c8ac1348
Branch: refs/heads/trunk
Commit: c8ac13489d5c01aacc826b5aa58a560008f3c5d4
Parents: e07d8c9
Author: Alex Antonenko <hi...@gmail.com>
Authored: Fri May 15 20:43:38 2015 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Fri May 15 20:43:38 2015 +0300
----------------------------------------------------------------------
ambari-web/app/assets/test/tests.js | 2 +
.../controllers/main/service/info/configs.js | 4 +-
.../app/templates/main/service/info/configs.hbs | 4 +-
.../app/templates/main/service/info/summary.hbs | 4 +-
ambari-web/test/controllers/application_test.js | 203 ++++++++++++++
.../test/controllers/login_controller_test.js | 44 ++++
.../main/service/info/config_test.js | 20 +-
ambari-web/test/controllers/main_test.js | 264 ++++++++++++++++++-
8 files changed, 532 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/c8ac1348/ambari-web/app/assets/test/tests.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/test/tests.js b/ambari-web/app/assets/test/tests.js
index eeafa57..64456a9 100644
--- a/ambari-web/app/assets/test/tests.js
+++ b/ambari-web/app/assets/test/tests.js
@@ -98,7 +98,9 @@ var files = ['test/init_model_test',
'test/controllers/main/admin_test',
'test/controllers/main/views_controller_test',
'test/controllers/installer_test',
+ 'test/controllers/application_test',
'test/controllers/main_test',
+ 'test/controllers/login_controller_test',
'test/controllers/wizard_test',
'test/controllers/wizard/slave_component_groups_controller',
'test/controllers/wizard/step0_test',
http://git-wip-us.apache.org/repos/asf/ambari/blob/c8ac1348/ambari-web/app/controllers/main/service/info/configs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/info/configs.js b/ambari-web/app/controllers/main/service/info/configs.js
index 52e6785..abd7048 100644
--- a/ambari-web/app/controllers/main/service/info/configs.js
+++ b/ambari-web/app/controllers/main/service/info/configs.js
@@ -1274,7 +1274,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
* @method showHostsShouldBeRestarted
*/
showHostsShouldBeRestarted: function (event) {
- var restartRequiredHostsAndComponents = event.context;
+ var restartRequiredHostsAndComponents = event.context.restartRequiredHostsAndComponents;
var hosts = [];
for (var hostName in restartRequiredHostsAndComponents) {
hosts.push(hostName);
@@ -1290,7 +1290,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
* @method showComponentsShouldBeRestarted
*/
showComponentsShouldBeRestarted: function (event) {
- var restartRequiredHostsAndComponents = event.context;
+ var restartRequiredHostsAndComponents = event.context.restartRequiredHostsAndComponents;
var hostsComponets = [];
var componentsObject = {};
for (var hostName in restartRequiredHostsAndComponents) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/c8ac1348/ambari-web/app/templates/main/service/info/configs.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/service/info/configs.hbs b/ambari-web/app/templates/main/service/info/configs.hbs
index 030d330..5a60f91 100644
--- a/ambari-web/app/templates/main/service/info/configs.hbs
+++ b/ambari-web/app/templates/main/service/info/configs.hbs
@@ -23,8 +23,8 @@
<div>
<div class="alert alert-warning clearfix">
<i class="icon-refresh"></i> {{t services.service.config.restartService.needToRestart}} <a
- href="#" {{action "showComponentsShouldBeRestarted" controller.content.restartRequiredHostsAndComponents target="controller"}}>{{view.componentsCount}} {{pluralize view.componentsCount singular="t:common.component" plural="t:common.components"}}</a> {{t on}}
- <a href="#" {{action "showHostsShouldBeRestarted" controller.content.restartRequiredHostsAndComponents target="controller"}}>{{view.hostsCount}} {{pluralize view.hostsCount singular="t:common.host" plural="t:common.hosts"}}</a>
+ href="#" {{action "showComponentsShouldBeRestarted" controller.content target="controller"}}>{{view.componentsCount}} {{pluralize view.componentsCount singular="t:common.component" plural="t:common.components"}}</a> {{t on}}
+ <a href="#" {{action "showHostsShouldBeRestarted" controller.content target="controller"}}>{{view.hostsCount}} {{pluralize view.hostsCount singular="t:common.host" plural="t:common.hosts"}}</a>
<span class="restart-components pull-right"> </span>
<div class="btn-group pull-right">
http://git-wip-us.apache.org/repos/asf/ambari/blob/c8ac1348/ambari-web/app/templates/main/service/info/summary.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/service/info/summary.hbs b/ambari-web/app/templates/main/service/info/summary.hbs
index 740368d..d3b5c06 100644
--- a/ambari-web/app/templates/main/service/info/summary.hbs
+++ b/ambari-web/app/templates/main/service/info/summary.hbs
@@ -21,8 +21,8 @@
<div id="summary-restart-bar">
<div class="alert alert-warning clearfix">
<i class="icon-refresh"></i> {{{view.needToRestartMessage}}} {{t services.service.config.restartService.needToRestart}}
- <a href="#" {{action showComponentsShouldBeRestarted controller.content.restartRequiredHostsAndComponents target="App.router.mainServiceInfoConfigsController"}}>{{view.componentsCount}} {{pluralize view.componentsCount singular="t:common.component" plural="t:common.components"}}</a> {{t on}}
- <a href="#" {{action showHostsShouldBeRestarted controller.content.restartRequiredHostsAndComponents target="App.router.mainServiceInfoConfigsController"}}>{{view.hostsCount}} {{pluralize view.hostsCount singular="t:common.host" plural="t:common.hosts"}}</a>
+ <a href="#" {{action showComponentsShouldBeRestarted controller.content target="App.router.mainServiceInfoConfigsController"}}>{{view.componentsCount}} {{pluralize view.componentsCount singular="t:common.component" plural="t:common.components"}}</a> {{t on}}
+ <a href="#" {{action showHostsShouldBeRestarted controller.content target="App.router.mainServiceInfoConfigsController"}}>{{view.hostsCount}} {{pluralize view.hostsCount singular="t:common.host" plural="t:common.hosts"}}</a>
<span class="restart-components pull-right"> </span>
<div class="btn-group pull-right">
http://git-wip-us.apache.org/repos/asf/ambari/blob/c8ac1348/ambari-web/test/controllers/application_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/application_test.js b/ambari-web/test/controllers/application_test.js
new file mode 100644
index 0000000..d894038
--- /dev/null
+++ b/ambari-web/test/controllers/application_test.js
@@ -0,0 +1,203 @@
+/**
+ * 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.
+ */
+
+
+var App = require('app');
+require('models/cluster');
+
+describe('App.ApplicationController', function () {
+
+ var installerController = App.ApplicationController.create();
+
+ describe('#showAboutPopup', function() {
+ var dataToShowRes = {};
+ beforeEach(function () {
+ sinon.stub(App.ModalPopup, 'show', function(dataToShow){
+ dataToShowRes = dataToShow;
+ });
+ });
+ afterEach(function () {
+ App.ModalPopup.show.restore();
+ });
+ it ('Should send correct data to popup', function() {
+ installerController.showAboutPopup();
+ dataToShowRes = JSON.parse(JSON.stringify(dataToShowRes));
+ expect(dataToShowRes).to.eql({
+ "header": "About",
+ "secondary": false
+ });
+ });
+ });
+
+ describe('#clusterName', function() {
+ beforeEach(function () {
+ sinon.stub(App.router, 'get').returns('cl1');
+ });
+ afterEach(function () {
+ App.router.get.restore();
+ });
+ it ('Should return cluster name', function() {
+ expect(installerController.get('clusterName')).to.equal('cl1');
+ });
+ });
+
+ describe('#showSettingsPopup', function() {
+ var dataToShowRes = {};
+
+ beforeEach(function () {
+ sinon.stub(App.ModalPopup, 'show', function(dataToShow){
+ dataToShowRes = dataToShow;
+ });
+ sinon.stub(App, 'isAccessible').returns(true);
+ var emulatorClass = function() {};
+ emulatorClass.prototype.done = function(func) {
+ if (func) {
+ func();
+ }
+ };
+ var emulator = new emulatorClass();
+ sinon.stub(installerController, 'dataLoading').returns(emulator);
+ });
+ afterEach(function () {
+ App.isAccessible.restore();
+ App.ModalPopup.show.restore();
+ installerController.dataLoading.restore();
+ });
+ it ('Should show settings popup', function() {
+ installerController.showSettingsPopup();
+ dataToShowRes = JSON.parse(JSON.stringify(dataToShowRes));
+ expect(dataToShowRes).to.eql({
+ "header": "User Settings",
+ "primary": "Save"
+ });
+ });
+ });
+
+ describe('#startKeepAlivePoller', function() {
+ it ('Should change run poller state', function() {
+ installerController.set('isPollerRunning', false);
+ installerController.startKeepAlivePoller();
+ expect(installerController.get('isPollerRunning')).to.be.true;
+ });
+ });
+
+ describe('#getUserPrefErrorCallback', function() {
+ it ('Should set currentPrefObject', function() {
+ installerController.getUserPrefErrorCallback({status: 404}, {}, {});
+ expect(installerController.get('currentPrefObject')).to.be.true;
+ });
+ });
+
+ describe('#getUserPrefSuccessCallback', function() {
+ it ('Should set currentPrefObject', function() {
+ installerController.getUserPrefSuccessCallback({status: 200}, {}, {});
+ expect(installerController.get('currentPrefObject')).to.be.eql({status: 200});
+ });
+ });
+
+ describe('#goToAdminView', function() {
+ var result;
+ beforeEach(function () {
+ sinon.stub(App.router, 'route', function(data) {
+ result = data;
+ return false;
+ });
+ });
+ afterEach(function () {
+ App.router.route.restore();
+ });
+ it ('Should call route once', function() {
+ installerController.goToAdminView();
+ expect(result).to.be.equal('adminView');
+ });
+ });
+
+ describe('#dataLoading', function() {
+ beforeEach(function () {
+ sinon.stub(installerController, 'getUserPref', function(){
+ return {
+ complete: function(func) {
+ if (func) {
+ func();
+ }
+ }
+ };
+ });
+ });
+ afterEach(function () {
+ installerController.getUserPref.restore();
+ });
+ it ('Should change run poller state', function() {
+ installerController.set('currentPrefObject', {name: 'n1'});
+ installerController.dataLoading().then(function(data){
+ expect(data).to.be.eql({
+ "name": "n1"
+ });
+ });
+ });
+ });
+
+ describe('#getStack', function() {
+ var res;
+ beforeEach(function () {
+ sinon.stub(App.ajax, 'send', function(data) {
+ res = data;
+ });
+ });
+ afterEach(function () {
+ App.ajax.send.restore();
+ });
+ it ('Should return send value', function() {
+ var callback = {
+ 'callback': true
+ };
+ installerController.getStack(callback);
+ res = JSON.parse(JSON.stringify(res));
+ expect(res).to.be.eql({
+ "name": "router.login.clusters",
+ "sender": {
+ "isPollerRunning": true,
+ "currentPrefObject": null
+ },
+ "callback": {
+ "callback": true
+ }
+ });
+ });
+ });
+
+ describe('#clusterDisplayName', function() {
+ it ('Should return cluster display name', function() {
+ installerController.set('clusterName', '');
+ expect(installerController.get('clusterDisplayName')).to.equal('mycluster');
+ });
+ });
+
+ describe('#isClusterDataLoaded', function() {
+ beforeEach(function () {
+ sinon.stub(App.router, 'get').returns('cl1');
+ });
+ afterEach(function () {
+ App.router.get.restore();
+ });
+ it ('Should return true, when data loaded', function() {
+ expect(installerController.get('isClusterDataLoaded')).to.be.equal('cl1');
+ });
+ });
+
+});
http://git-wip-us.apache.org/repos/asf/ambari/blob/c8ac1348/ambari-web/test/controllers/login_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/login_controller_test.js b/ambari-web/test/controllers/login_controller_test.js
new file mode 100644
index 0000000..90ba06a
--- /dev/null
+++ b/ambari-web/test/controllers/login_controller_test.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.
+ */
+
+
+var App = require('app');
+require('models/cluster');
+require('controllers/wizard');
+require('controllers/installer');
+
+describe('App.LoginController', function () {
+
+ var loginController = App.LoginController.create();
+
+ describe('#postLogin', function() {
+ it ('Should set error connect', function() {
+ loginController.postLogin(false, false, false);
+ expect(loginController.get('errorMessage')).to.be.equal('Unable to connect to Ambari Server. Confirm Ambari Server is running and you can reach Ambari Server from this machine.');
+ });
+ it ('Should set error login', function() {
+ loginController.postLogin(true, false, 'User is disabled');
+ expect(loginController.get('errorMessage')).to.be.equal('Unable to sign in. Invalid username/password combination.');
+ });
+ it ('Should set error', function() {
+ loginController.postLogin(true, false, '');
+ expect(loginController.get('errorMessage')).to.be.equal('Unable to sign in. Invalid username/password combination.');
+ });
+ });
+
+});
http://git-wip-us.apache.org/repos/asf/ambari/blob/c8ac1348/ambari-web/test/controllers/main/service/info/config_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/service/info/config_test.js b/ambari-web/test/controllers/main/service/info/config_test.js
index de0e618..7d46d9d 100644
--- a/ambari-web/test/controllers/main/service/info/config_test.js
+++ b/ambari-web/test/controllers/main/service/info/config_test.js
@@ -199,8 +199,10 @@ describe("App.MainServiceInfoConfigsController", function () {
{
input: {
context: {
- 'publicHostName1': ['TaskTracker'],
- 'publicHostName2': ['JobTracker', 'TaskTracker']
+ restartRequiredHostsAndComponents: {
+ 'publicHostName1': ['TaskTracker'],
+ 'publicHostName2': ['JobTracker', 'TaskTracker']
+ }
}
},
components: "2 TaskTrackers, 1 JobTracker",
@@ -209,7 +211,9 @@ describe("App.MainServiceInfoConfigsController", function () {
{
input: {
context: {
- 'publicHostName1': ['TaskTracker']
+ restartRequiredHostsAndComponents: {
+ 'publicHostName1': ['TaskTracker']
+ }
}
},
components: "1 TaskTracker",
@@ -238,8 +242,10 @@ describe("App.MainServiceInfoConfigsController", function () {
{
input: {
context: {
- 'publicHostName1': ['TaskTracker'],
- 'publicHostName2': ['JobTracker', 'TaskTracker']
+ restartRequiredHostsAndComponents: {
+ 'publicHostName1': ['TaskTracker'],
+ 'publicHostName2': ['JobTracker', 'TaskTracker']
+ }
}
},
hosts: "publicHostName1, publicHostName2",
@@ -248,7 +254,9 @@ describe("App.MainServiceInfoConfigsController", function () {
{
input: {
context: {
- 'publicHostName1': ['TaskTracker']
+ restartRequiredHostsAndComponents: {
+ 'publicHostName1': ['TaskTracker']
+ }
}
},
hosts: "publicHostName1",
http://git-wip-us.apache.org/repos/asf/ambari/blob/c8ac1348/ambari-web/test/controllers/main_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main_test.js b/ambari-web/test/controllers/main_test.js
index 43ec400..03f8e47 100644
--- a/ambari-web/test/controllers/main_test.js
+++ b/ambari-web/test/controllers/main_test.js
@@ -19,7 +19,8 @@
var App = require('app');
-describe('App.InstallerController', function () {
+describe('App.MainController', function () {
+ var mainController = App.MainController.create();
describe('#getServerVersionSuccessCallback', function () {
@@ -53,7 +54,268 @@ describe('App.InstallerController', function () {
expect(App.get('isManagedMySQLForHiveEnabled')).to.equal(item.expected);
});
});
+ });
+
+ describe('#isClusterDataLoaded', function() {
+ beforeEach(function () {
+ sinon.stub(App.router, 'get').returns(true);
+ });
+ afterEach(function () {
+ App.router.get.restore();
+ });
+ it ('Should return true', function() {
+ expect(mainController.get('isClusterDataLoaded')).to.be.true;
+ });
+ });
+
+ describe('#clusterDataLoadedPercent', function() {
+ beforeEach(function () {
+ sinon.stub(App.router, 'get').returns(16);
+ });
+ afterEach(function () {
+ App.router.get.restore();
+ });
+ it ('Should return 16', function() {
+ expect(mainController.get('clusterDataLoadedPercent')).to.be.equal(16);
+ });
+ });
+
+ describe('#initialize', function() {
+ var initialize = false;
+ beforeEach(function () {
+ sinon.stub(App.router, 'get').returns({
+ loadClusterData: function() {
+ initialize = true;
+ }
+ });
+ });
+ afterEach(function () {
+ App.router.get.restore();
+ });
+ it ('Should return true', function() {
+ mainController.initialize();
+ expect(initialize).to.be.true;
+ });
+ });
+
+ describe('#dataLoading', function() {
+ it ('Should resolve promise', function() {
+ sinon.stub(App.router, 'get').returns(true);
+ var deffer = mainController.dataLoading();
+ App.router.get.restore();
+ deffer.then(function(val){
+ expect(val).to.be.undefined;
+ });
+ });
+ it ('Should resolve promise', function() {
+ sinon.stub(App.router, 'get').returns(false);
+
+ setTimeout(function() {
+ mainController.set('isClusterDataLoaded', true);
+ },150);
+
+ var deffer = mainController.dataLoading();
+ App.router.get.restore();
+ deffer.then(function(val){
+ expect(val).to.be.undefined;
+ });
+ });
+ });
+
+ describe('#checkServerClientVersion', function() {
+ var initialize = false;
+ beforeEach(function () {
+ sinon.stub(mainController, 'getServerVersion').returns({
+ done: function(func) {
+ if (func) {
+ func();
+ }
+ }
+ });
+ });
+ afterEach(function () {
+ mainController.getServerVersion.restore();
+ });
+ it ('Should resolve promise', function() {
+ var deffer = mainController.checkServerClientVersion();
+ deffer.then(function(val){
+ expect(val).to.be.undefined;
+ });
+ });
+ });
+
+ describe('#getServerVersion', function() {
+ var res;
+ beforeEach(function () {
+ sinon.stub(App.ajax, 'send', function(data) {
+ res = JSON.parse(JSON.stringify(data));
+ });
+ });
+ afterEach(function () {
+ App.ajax.send.restore();
+ });
+ it ('Should send data', function() {
+ mainController.getServerVersion();
+ expect(res).to.be.eql({
+ "name": "ambari.service",
+ "sender": {},
+ "data": {
+ "fields": "?fields=RootServiceComponents/component_version,RootServiceComponents/properties/server.os_family&minimal_response=true"
+ },
+ "success": "getServerVersionSuccessCallback",
+ "error": "getServerVersionErrorCallback"
+ });
+ });
+ });
+
+ describe('#stopAllService', function() {
+ beforeEach(function () {
+ sinon.stub(App.router, 'get').returns({
+ stopAllService: function(func) {
+ if (func) {
+ func();
+ }
+ }
+ });
+ });
+ afterEach(function () {
+ App.router.get.restore();
+ });
+ it ('Should call event', function() {
+ var done = false;
+ var event = function() {
+ done = true;
+ };
+ mainController.stopAllService(event);
+ expect(done).to.be.true;
+ });
+ });
+
+ describe('#startAllService', function() {
+ beforeEach(function () {
+ sinon.stub(App.router, 'get').returns({
+ startAllService: function(func) {
+ if (func) {
+ func();
+ }
+ }
+ });
+ });
+ afterEach(function () {
+ App.router.get.restore();
+ });
+ it ('Should call event', function() {
+ var done = false;
+ var event = function() {
+ done = true;
+ };
+ mainController.startAllService(event);
+ expect(done).to.be.true;
+ });
+ });
+
+ describe('#isStopAllDisabled', function() {
+ beforeEach(function () {
+ sinon.stub(mainController, 'scRequest').returns(true);
+ });
+ afterEach(function () {
+ mainController.scRequest.restore();
+ });
+ it ('Should return true', function() {
+ expect(mainController.get('isStopAllDisabled')).to.be.true;
+ });
+ });
+
+ describe('#gotoAddService', function() {
+ var done = false;
+ beforeEach(function () {
+ sinon.stub(App.router, 'get').returns({
+ gotoAddService: function() {
+ done = true;
+ }
+ });
+ });
+ afterEach(function () {
+ App.router.get.restore();
+ });
+ it ('Should call router', function() {
+ mainController.gotoAddService();
+ expect(done).to.be.true;
+ });
+ });
+ describe('#isStartAllDisabled', function() {
+ beforeEach(function () {
+ sinon.stub(mainController, 'scRequest').returns(true);
+ });
+ afterEach(function () {
+ mainController.scRequest.restore();
+ });
+ it ('Should return true', function() {
+ expect(mainController.get('isStartAllDisabled')).to.be.true;
+ });
+ });
+
+ describe('#isAllServicesInstalled', function() {
+ beforeEach(function () {
+ sinon.stub(mainController, 'scRequest').returns(true);
+ });
+ afterEach(function () {
+ mainController.scRequest.restore();
+ });
+ it ('Should return true', function() {
+ expect(mainController.get('isAllServicesInstalled')).to.be.true;
+ });
+ });
+
+ describe('#scRequest', function() {
+ beforeEach(function () {
+ sinon.stub(App.router, 'get').returns({
+ get: function(request) {
+ if (request) {
+ request();
+ }
+ }
+ });
+ });
+ afterEach(function () {
+ App.router.get.restore();
+ });
+ it ('Should return true', function() {
+ var done = false;
+ var event = function() {
+ done = true;
+ };
+ mainController.scRequest(event);
+ expect(done).to.be.true;
+ });
+ });
+
+ describe('#updateTitle', function() {
+ beforeEach(function () {
+ sinon.stub(App.router, 'get', function(message){
+ if (message == 'clusterController.clusterName') {
+ return 'c1';
+ } else if (message == 'clusterInstallCompleted') {
+ return true;
+ } else if (message == 'clusterController') {
+ return {
+ get: function() {
+ return true;
+ }
+ };
+ }
+ });
+ });
+ afterEach(function () {
+ App.router.get.restore();
+ });
+ it ('Should update title', function() {
+ $('body').append('<title id="title-id">text</title>');
+ mainController.updateTitle();
+ expect($('title').text()).to.be.equal('Ambari - c1');
+ $('body').remove('#title-id');
+ });
});
});
[2/3] ambari git commit: AMBARI-11180. Views: tez view definition
should not include static instance (alexantonenko)
Posted by al...@apache.org.
AMBARI-11180. Views: tez view definition should not include static instance (alexantonenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/b85c6faf
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/b85c6faf
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/b85c6faf
Branch: refs/heads/trunk
Commit: b85c6faf23d4068365f0e389a82c2b4ad78833ae
Parents: c8ac134
Author: Alex Antonenko <hi...@gmail.com>
Authored: Fri May 15 20:49:27 2015 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Fri May 15 20:49:27 2015 +0300
----------------------------------------------------------------------
contrib/views/tez/src/main/resources/view.xml | 5 -----
1 file changed, 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/b85c6faf/contrib/views/tez/src/main/resources/view.xml
----------------------------------------------------------------------
diff --git a/contrib/views/tez/src/main/resources/view.xml b/contrib/views/tez/src/main/resources/view.xml
index 6106818..f446b16 100644
--- a/contrib/views/tez/src/main/resources/view.xml
+++ b/contrib/views/tez/src/main/resources/view.xml
@@ -60,9 +60,4 @@ limitations under the License. Kerberos, LDAP, Custom. Binary/Htt
<service>TEZ</service>
</services>
</auto-instance>
- <instance>
- <name>TEZ_DEPLOYMENT_INSTANCE</name>
- <label>Tez View: Deployment Instance</label>
- <description>This view instance is created when the Tez view is deployed. The instance must be associated with a cluster to have valid cluster configuration values.</description>
- </instance>
</view>
[3/3] ambari git commit: AMBARI-11181. Plugins statuses aren't loaded
on Ranger summary page (alexantonenko)
Posted by al...@apache.org.
AMBARI-11181. Plugins statuses aren't loaded on Ranger summary page (alexantonenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/aedb50c0
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/aedb50c0
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/aedb50c0
Branch: refs/heads/trunk
Commit: aedb50c0eb64c29833bfd956d5f4680049666419
Parents: b85c6fa
Author: Alex Antonenko <hi...@gmail.com>
Authored: Fri May 15 20:53:04 2015 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Fri May 15 20:53:04 2015 +0300
----------------------------------------------------------------------
ambari-web/app/controllers/main/service/info/summary.js | 2 +-
ambari-web/test/controllers/main/service/info/summary_test.js | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/aedb50c0/ambari-web/app/controllers/main/service/info/summary.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/info/summary.js b/ambari-web/app/controllers/main/service/info/summary.js
index ca661d3..c56a922 100644
--- a/ambari-web/app/controllers/main/service/info/summary.js
+++ b/ambari-web/app/controllers/main/service/info/summary.js
@@ -132,7 +132,7 @@ App.MainServiceInfoSummaryController = Em.Controller.extend(App.WidgetSectionMix
getRangerPluginsStatus: function (data) {
var urlParams = [];
this.get('rangerPlugins').forEach(function (item) {
- if (App.Service.find().someProperty('serviceName', item.serviceName)) {
+ if (App.Service.find().someProperty('serviceName', item.serviceName) && data.Clusters.desired_configs.hasOwnProperty(item.type)) {
var currentTag = data.Clusters.desired_configs[item.type].tag;
var isTagChanged = item.tag != currentTag;
Em.set(item, 'isDisplayed', true);
http://git-wip-us.apache.org/repos/asf/ambari/blob/aedb50c0/ambari-web/test/controllers/main/service/info/summary_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/service/info/summary_test.js b/ambari-web/test/controllers/main/service/info/summary_test.js
index 695dbad..1e49be7 100644
--- a/ambari-web/test/controllers/main/service/info/summary_test.js
+++ b/ambari-web/test/controllers/main/service/info/summary_test.js
@@ -185,6 +185,9 @@ describe('App.MainServiceInfoSummaryController', function () {
}),
Em.Object.create({
serviceName: 'HBASE'
+ }),
+ Em.Object.create({
+ serviceName: 'YARN'
})
]);
});
@@ -202,6 +205,9 @@ describe('App.MainServiceInfoSummaryController', function () {
controller.get('rangerPlugins').findProperty('serviceName', 'HBASE').tag = item.hbaseTag;
controller.getRangerPluginsStatus(data);
expect(App.ajax.send.calledOnce).to.equal(item.ajaxRequestSent);
+ if (item.ajaxRequestSent) {
+ expect(App.ajax.send.getCall(0).args[0].data.urlParams.contains('ranger-yarn-plugin-properties')).to.be.false;
+ }
});
});