You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sr...@apache.org on 2014/08/08 05:28:52 UTC
git commit: AMBARI-6784. Provide 'Add Flume Component' action in
Flume service actions menu
Repository: ambari
Updated Branches:
refs/heads/trunk f1273f29d -> b6851a877
AMBARI-6784. Provide 'Add Flume Component' action in Flume service actions menu
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/b6851a87
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/b6851a87
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/b6851a87
Branch: refs/heads/trunk
Commit: b6851a877b6252593678e35e553e5280f86137f8
Parents: f1273f2
Author: Srimanth Gunturi <sg...@hortonworks.com>
Authored: Thu Aug 7 16:51:28 2014 -0700
Committer: Srimanth Gunturi <sg...@hortonworks.com>
Committed: Thu Aug 7 20:27:47 2014 -0700
----------------------------------------------------------------------
ambari-web/app/controllers/main/service/item.js | 84 +++++---------------
ambari-web/app/messages.js | 1 +
ambari-web/app/templates/main/service/item.hbs | 8 +-
ambari-web/app/views/main/service/item.js | 41 ++++++----
4 files changed, 53 insertions(+), 81 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/b6851a87/ambari-web/app/controllers/main/service/item.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/item.js b/ambari-web/app/controllers/main/service/item.js
index 255bde0..0aaf78c 100644
--- a/ambari-web/app/controllers/main/service/item.js
+++ b/ambari-web/app/controllers/main/service/item.js
@@ -52,30 +52,37 @@ App.MainServiceItemController = Em.Controller.extend({
var hostNames = App.Host.find().mapProperty('hostName');
this.set('allHosts', hostNames);
- ['HBASE_MASTER', 'ZOOKEEPER_SERVER'].forEach(function(componentName) {
+ ['HBASE_MASTER', 'ZOOKEEPER_SERVER', 'FLUME_HANDLER'].forEach(function(componentName) {
self.loadHostsWithoutComponent(componentName);
});
}
}.observes('App.components.masters', 'content.hostComponents.length'),
loadHostsWithoutComponent: function (componentName) {
+ var self = this;
var hostsWithComponent = App.HostComponent.find().filterProperty('componentName', componentName).mapProperty('hostName');
var hostsWithoutComponent = this.get('allHosts').filter(function(hostName) {
return !hostsWithComponent.contains(hostName);
});
+ self.set('add' + componentName, function() {
+ self.addComponent(componentName);
+ });
- if (componentName === 'HBASE_MASTER') {
- this.set('hostsWithoutHBaseMaster', hostsWithoutComponent);
- var disabledMsg = Em.I18n.t('services.summary.allHostsAlreadyRunComponent').format(Em.I18n.t('dashboard.services.hbase.masterServer'));
- this.set('addHBaseMasterDisabledMsg', disabledMsg);
- }
- if (componentName === 'ZOOKEEPER_SERVER') {
- this.set('hostsWithoutZookeeperServer', hostsWithoutComponent);
- var disabledMsg = Em.I18n.t('services.summary.allHostsAlreadyRunComponent').format(Em.I18n.t('dashboard.services.zookeeper.server'));
- this.set('addZookeeperServerDisabledMsg', disabledMsg);
- }
+ Em.defineProperty(self, 'addDisabledTooltip-' + componentName, Em.computed('isAddDisabled-' + componentName, 'addDisabledMsg-' + componentName, function() {
+ if (self.get('isAddDisabled-' + componentName)) {
+ return self.get('addDisabledMsg-' + componentName);
+ }
+ }));
+
+ Em.defineProperty(self, 'isAddDisabled-' + componentName, Em.computed('hostsWithoutComponent-' + componentName, function() {
+ return self.get('hostsWithoutComponent-' + componentName).length === 0 ? 'disabled' : '';
+ }));
+
+ var disabledMsg = Em.I18n.t('services.summary.allHostsAlreadyRunComponent').format(componentName);
+ self.set('hostsWithoutComponent-' + componentName, hostsWithoutComponent);
+ self.set('addDisabledMsg-' + componentName, disabledMsg);
},
/**
@@ -92,34 +99,6 @@ App.MainServiceItemController = Em.Controller.extend({
return !App.get('services.noConfigTypes').concat('HCATALOG').contains(this.get('content.serviceName'));
}.property('App.services.noConfigTypes','content.serviceName'),
- isAddHBaseMasterDisabled: function() {
- return this.get('hostsWithoutHBaseMaster').length === 0;
- }.property('hostsWithoutHBaseMaster'),
-
- addHBaseMasterDisabledMsg: null,
-
- addHBaseMasterDisabledTooltip: function() {
- if (this.get('isAddHBaseMasterDisabled')) {
- return this.get('addHBaseMasterDisabledMsg');
- }
- }.property('isAddHBaseMasterDisabled', 'addHBaseMasterDisabledMsg'),
-
- hostsWithoutHBaseMaster: [],
-
- isAddZooKeeperServerDisabled: function() {
- return this.get('hostsWithoutZookeeperServer').length === 0;
- }.property('hostsWithoutZookeeperServer'),
-
- addZookeeperServerDisabledMsg: null,
-
- addZooKeeperServerDisabledTooltip: function() {
- if (this.get('isAddZooKeeperServerDisabled')) {
- return this.get('addZookeeperServerDisabledMsg');
- }
- }.property('isAddZooKeeperServerDisabled', 'addZookeeperServerDisabledMsg'),
-
- hostsWithoutZookeeperServer: [],
-
allHosts: [],
/**
@@ -445,19 +424,11 @@ App.MainServiceItemController = Em.Controller.extend({
}
},
- addHbaseMaster: function () {
- this.addClientComponent('HBASE_MASTER');
- },
-
- addZooKeeperServer: function () {
- this.addClientComponent('ZOOKEEPER_SERVER');
- },
-
/**
* Send command to server to install client on selected host
* @param componentName
*/
- addClientComponent: function (componentName) {
+ addComponent: function (componentName) {
var self = this;
var component = App.HostComponent.find().findProperty('componentName', componentName);
var componentDisplayName = component.get('displayName');
@@ -488,13 +459,8 @@ App.MainServiceItemController = Em.Controller.extend({
}.property('componentDisplayName'),
hostsWithoutComponent: function() {
- if (this.get('componentName') === 'HBASE_MASTER') {
- return self.hostsWithoutHBaseMaster;
- }
- if (this.get('componentName') === 'ZOOKEEPER_SERVER') {
- return self.hostsWithoutZookeeperServer;
- }
- }.property('componentName', 'self.hostsWithoutHBaseMaster', 'self.hostsWithoutZookeeperServer'),
+ return self.get("hostsWithoutComponent-" + this.get('componentName'));
+ }.property('componentName', 'self.hostsWithoutComponent-' + this.get('componentName')),
anyHostsWithoutComponent: function() {
return this.get('hostsWithoutComponent').length > 0
@@ -531,13 +497,7 @@ App.MainServiceItemController = Em.Controller.extend({
hostsWithoutComponent.splice(index, 1);
}
- if (this.get('componentName') === 'HBASE_MASTER') {
- self.set('hostsWithoutHBaseMaster', hostsWithoutComponent)
- }
- if (this.get('componentName') === 'ZOOKEEPER_SERVER') {
- self.set('hostsWithoutZookeeperServer', hostsWithoutComponent)
- }
-
+ self.set('hostsWithoutComponent-' + this.get('componentName'), hostsWithoutComponent);
this.hide();
}
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/b6851a87/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 417ddc7..1d5395e 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -1916,6 +1916,7 @@ Em.I18n.translations = {
'dashboard.services.flume.summary.title':'Flume installed on {0} host{1} ({2} agent{3})',
'dashboard.services.flume.summary.configure':'Configure Agents',
'dashboard.services.flume.agentsLabel': 'Flume',
+ 'dashboard.services.flume.agentLabel': 'Flume Component',
'dashboard.services.flume.channels': 'Channels',
'dashboard.services.flume.sources': 'Sources',
'dashboard.services.flume.sinks': 'Sinks',
http://git-wip-us.apache.org/repos/asf/ambari/blob/b6851a87/ambari-web/app/templates/main/service/item.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/service/item.hbs b/ambari-web/app/templates/main/service/item.hbs
index 5e2446c..71bf554 100644
--- a/ambari-web/app/templates/main/service/item.hbs
+++ b/ambari-web/app/templates/main/service/item.hbs
@@ -83,9 +83,11 @@
<!-- Other service actions -->
{{#each option in view.maintenance}}
- <li {{bindAttr class="option.disabled:disabled option.isHidden:hidden"}}>
- <a {{action "doAction" option target="controller" href=true}} {{bindAttr data-title="option.tooltip"}} rel="HealthTooltip"><i {{bindAttr class="option.cssClass"}}></i>
-{{option.label}}</a>
+ <li {{bindAttr class="option.disabled option.isHidden:hidden"}}>
+ <a {{action "doAction" option target="controller" href=true}} {{bindAttr data-title="option.tooltip"}} rel="HealthTooltip">
+ <i {{bindAttr class="option.cssClass"}}></i>
+ {{option.label}}
+ </a>
</li>
{{/each}}
</ul>
http://git-wip-us.apache.org/repos/asf/ambari/blob/b6851a87/ambari-web/app/views/main/service/item.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/item.js b/ambari-web/app/views/main/service/item.js
index 258456f..badd94f 100644
--- a/ambari-web/app/views/main/service/item.js
+++ b/ambari-web/app/views/main/service/item.js
@@ -92,22 +92,31 @@ App.MainServiceItemView = Em.View.extend({
label: Em.I18n.t('services.service.actions.reassign.master'),
cssClass: 'icon-share-alt',
disabled: false
- },
- ADD_HBASE_MASTER_COMPONENT: {
- action: 'addHbaseMaster',
+ }
+ }
+ },
+
+ addActionMap: function() {
+ return [
+ {
cssClass: 'icon-plus',
'label': '{0} {1}'.format(Em.I18n.t('add'), Em.I18n.t('dashboard.services.hbase.masterServer')),
- disabled: this.get('controller.isAddHBaseMasterDisabled'),
- tooltip: this.get('controller.addHBaseMasterDisabledTooltip')
+ service: 'HBASE',
+ component: 'HBASE_MASTER'
},
- ADD_ZOO_KEEPER_SERVER_COMPONENT: {
- action: 'addZooKeeperServer',
+ {
cssClass: 'icon-plus',
'label': '{0} {1}'.format(Em.I18n.t('add'), Em.I18n.t('dashboard.services.zookeeper.server')),
- disabled: this.get('controller.isAddZooKeeperServerDisabled'),
- tooltip: this.get('controller.addZooKeeperServerDisabledTooltip')
+ service: 'ZOOKEEPER',
+ component: 'ZOOKEEPER_SERVER'
+ },
+ {
+ cssClass: 'icon-plus',
+ 'label': '{0} {1}'.format(Em.I18n.t('add'), Em.I18n.t('dashboard.services.flume.agentLabel')),
+ service: 'FLUME',
+ component: 'FLUME_HANDLER'
}
- }
+ ]
},
/**
* Create option for MOVE_COMPONENT or ROLLING_RESTART task.
@@ -174,12 +183,12 @@ App.MainServiceItemView = Em.View.extend({
options.push(actionMap.TOGGLE_PASSIVE);
var serviceName = service.get('serviceName');
- if (serviceName === 'HBASE') {
- options.push(actionMap.ADD_HBASE_MASTER_COMPONENT);
- }
- if (serviceName === 'ZOOKEEPER') {
- options.push(actionMap.ADD_ZOO_KEEPER_SERVER_COMPONENT);
- }
+ self.addActionMap().filterProperty('service', serviceName).forEach(function(item) {
+ item.action = 'add' + item.component;
+ item.disabled = self.get('controller.isAddDisabled-' + item.component);
+ item.tooltip = self.get('controller.addDisabledTooltip' + item.component);
+ options.push(item);
+ });
}
return options;
}.property('controller.content', 'controller.isStopDisabled','controller.isClientsOnlyService', 'controller.content.isRestartRequired', 'isPassive'),