You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ab...@apache.org on 2014/01/06 18:44:54 UTC
git commit: AMBARI-4229 Maintenance Mode: Host Detail page
(Components Section). (ababiichuk)
Updated Branches:
refs/heads/trunk a440c0a84 -> ad3bc8efb
AMBARI-4229 Maintenance Mode: Host Detail page (Components Section). (ababiichuk)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/ad3bc8ef
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ad3bc8ef
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ad3bc8ef
Branch: refs/heads/trunk
Commit: ad3bc8efbc3d93edc1294ce39230e605fd9c338d
Parents: a440c0a
Author: aBabiichuk <ab...@cybervisiontech.com>
Authored: Mon Jan 6 19:02:37 2014 +0200
Committer: aBabiichuk <ab...@cybervisiontech.com>
Committed: Mon Jan 6 19:02:37 2014 +0200
----------------------------------------------------------------------
ambari-web/app/controllers/main/host/details.js | 36 ++++++++-
ambari-web/app/messages.js | 3 +
ambari-web/app/models/host_component.js | 2 +
ambari-web/app/templates/main/host/summary.hbs | 82 ++++++++++++--------
ambari-web/app/utils/ajax.js | 20 +++++
ambari-web/app/views/main/host/summary.js | 13 ++++
6 files changed, 121 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/ad3bc8ef/ambari-web/app/controllers/main/host/details.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/host/details.js b/ambari-web/app/controllers/main/host/details.js
index fe46dcc..2304a47 100644
--- a/ambari-web/app/controllers/main/host/details.js
+++ b/ambari-web/app/controllers/main/host/details.js
@@ -796,7 +796,7 @@ App.MainHostDetailsController = Em.Controller.extend({
break;
}
},
-
+
doStartAllComponents: function() {
var self = this;
var components = this.get('content.hostComponents');
@@ -1076,6 +1076,38 @@ App.MainHostDetailsController = Em.Controller.extend({
reassignMasterController.setCurrentStep('1');
App.router.transitionTo('services.reassign');
});
- }
+ },
+
+ turnOnOffMaintenanceConfirmation: function(event){
+ var self = this;
+ var component = event.context;
+ var componentName = component.get('componentName').toUpperCase();
+ var state, onOff;
+ if (component.get("workStatus") == App.HostComponentStatus.maintenance) {
+ onOff = "Off";
+ state = App.HostComponentStatus.stopped;
+ } else {
+ onOff = "On";
+ state = App.HostComponentStatus.maintenance;
+ }
+ App.showConfirmationPopup(function() {
+ self.turnOnOffmaintenance(state, componentName)
+ },
+ Em.I18n.t('hosts.maintenanceMode.popup').format(onOff,component.get('displayName'))
+ );
+ },
+ turnOnOffmaintenance: function(state,componentName) {
+ var hostName = this.get('content.hostName');
+ App.ajax.send({
+ name: 'host_component.maintenance_mode',
+ sender: this,
+ data: {
+ hostName: hostName,
+ componentName: componentName,
+ state: state,
+ requestInfo: componentName + " " + state
+ }
+ });
+ }
});
http://git-wip-us.apache.org/repos/asf/ambari/blob/ad3bc8ef/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 8ded97d..9e96578 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -165,6 +165,8 @@ Em.I18n.translations = {
'common.discard': 'Discard',
'common.actions': 'Actions',
'common.maintenance': 'Maintenance',
+ 'maintenance.turnOn':'Turn On Maintenance Mode',
+ 'maintenance.turnOff':'Turn Off Maintenance Mode',
'requestInfo.installComponents':'Install Components',
'requestInfo.installServices':'Install Services',
@@ -1408,6 +1410,7 @@ Em.I18n.translations = {
'If this host has a DataNode, it should be decommissioned first to prevent data loss.',
'hosts.add.header':'Add Host Wizard',
'hosts.assignRack':'Assign Rack',
+ 'hosts.maintenanceMode.popup':'Are you sure you want to Turn {0} Maintenance Mode for {1}?',
'charts.horizon.chart.showText':'show',
'charts.horizon.chart.hideText':'hide',
http://git-wip-us.apache.org/repos/asf/ambari/blob/ad3bc8ef/ambari-web/app/models/host_component.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/host_component.js b/ambari-web/app/models/host_component.js
index 081442c..ca65b75 100644
--- a/ambari-web/app/models/host_component.js
+++ b/ambari-web/app/models/host_component.js
@@ -217,6 +217,8 @@ App.HostComponentStatus = {
return 'Heartbeat lost...';
case this.upgrade_failed:
return 'Upgrade Failed';
+ case this.maintenance:
+ return 'Maintenance';
}
return 'Unknown';
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/ad3bc8ef/ambari-web/app/templates/main/host/summary.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/host/summary.hbs b/ambari-web/app/templates/main/host/summary.hbs
index f8de8cf..a64d664 100644
--- a/ambari-web/app/templates/main/host/summary.hbs
+++ b/ambari-web/app/templates/main/host/summary.hbs
@@ -103,40 +103,56 @@
</li>
{{/if}}
{{#unless view.isInstalling}}
- {{#if view.isStart}}
- <li {{bindAttr class=" view.isDecommissioning:hidden view.noActionAvailable"}}>
- <a href="javascript:void(null)" data-toggle="modal" {{action "stopComponent" view.content target="controller"}}>
- {{t common.stop}}
- </a>
- </li>
- {{/if}}
- {{#unless view.isStart}}
- <li {{bindAttr class="view.isUpgradeFailed:hidden view.isInstallFailed:hidden view.isDecommissioning:hidden view.noActionAvailable"}}>
- <a href="javascript:void(null)" data-toggle="modal" {{action "startComponent" view.content target="controller"}}>
- {{t common.start}}
- </a>
- </li>
+ {{#unless view.isInMaintenance}}
+ {{#if view.isStart}}
+ <li {{bindAttr class=" view.isDecommissioning:hidden view.noActionAvailable"}}>
+ <a href="javascript:void(null)" data-toggle="modal" {{action "stopComponent" view.content target="controller"}}>
+ {{t common.stop}}
+ </a>
+ </li>
+ {{/if}}
+ {{#unless view.isStart}}
+ <li {{bindAttr class="view.isUpgradeFailed:hidden view.isInstallFailed:hidden view.isDecommissioning:hidden view.noActionAvailable"}}>
+ <a href="javascript:void(null)" data-toggle="modal" {{action "startComponent" view.content target="controller"}}>
+ {{t common.start}}
+ </a>
+ </li>
+ {{/unless}}
+ {{#if view.isUpgradeFailed}}
+ <li {{bindAttr class="view.noActionAvailable"}}>
+ <a href="javascript:void(null)" data-toggle="modal" {{action "upgradeComponent" view.content target="controller"}}>
+ {{t common.reUpgrade}}
+ </a>
+ </li>
+ {{/if}}
+ {{#if view.isInstallFailed}}
+ <li {{bindAttr class="view.noActionAvailable"}}>
+ <a href="javascript:void(null)" data-toggle="modal" {{action "installComponent" view.content target="controller"}}>
+ {{t common.reinstall}}
+ </a>
+ </li>
+ {{/if}}
+ {{#if view.isReassignable}}
+ <li {{bindAttr class="view.noActionAvailable"}}>
+ <a href="javascript:void(null)" data-toggle="modal" {{action "moveComponent" view.content target="controller"}}>
+ {{t common.move}}
+ </a>
+ </li>
+ {{/if}}
+ {{#if view.isStop}}
+ <li {{bindAttr class="view.noActionAvailable"}}>
+ <a href="javascript:void(null)" data-toggle="modal" {{action "turnOnOffMaintenanceConfirmation" view.content target="controller"}}>
+ {{t maintenance.turnOn}}
+ </a>
+ </li>
+ {{/if}}
{{/unless}}
- {{#if view.isUpgradeFailed}}
- <li {{bindAttr class="view.noActionAvailable"}}>
- <a href="javascript:void(null)" data-toggle="modal" {{action "upgradeComponent" view.content target="controller"}}>
- {{t common.reUpgrade}}
- </a>
- </li>
- {{/if}}
- {{#if view.isInstallFailed}}
- <li {{bindAttr class="view.noActionAvailable"}}>
- <a href="javascript:void(null)" data-toggle="modal" {{action "installComponent" view.content target="controller"}}>
- {{t common.reinstall}}
- </a>
- </li>
- {{/if}}
- {{#if view.isReassignable}}
- <li {{bindAttr class="view.noActionAvailable"}}>
- <a href="javascript:void(null)" data-toggle="modal" {{action "moveComponent" view.content target="controller"}}>
- {{t common.move}}
- </a>
- </li>
+ {{#if view.isInMaintenance}}
+ <li {{bindAttr class="view.noActionAvailable"}}>
+ <a href="javascript:void(null)" data-toggle="modal" {{action "turnOnOffMaintenanceConfirmation" view.content target="controller"}}>
+ {{t maintenance.turnOff}}
+ </a>
+ </li>
{{/if}}
{{/unless}}
</ul>
http://git-wip-us.apache.org/repos/asf/ambari/blob/ad3bc8ef/ambari-web/app/utils/ajax.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ajax.js b/ambari-web/app/utils/ajax.js
index 51c204e..992f12d 100644
--- a/ambari-web/app/utils/ajax.js
+++ b/ambari-web/app/utils/ajax.js
@@ -199,6 +199,26 @@ var urls = {
}
},
+ 'host_component.maintenance_mode': {
+ 'real': '/clusters/{clusterName}/hosts/{hostName}/host_components/{componentName}',
+ 'mock': '',
+ 'type': 'PUT',
+ 'format': function (data, opt) {
+ return {
+ data: JSON.stringify({
+ RequestInfo: {
+ "context": data.requestInfo
+ },
+ Body: {
+ HostRoles: {
+ state: data.state
+ }
+ }
+ })
+ };
+ }
+ },
+
'config.advanced': {
'real': '{stack2VersionUrl}/stackServices/{serviceName}/configurations?fields=*',
'mock': '/data/wizard/stack/hdp/version{stackVersion}/{serviceName}.json',
http://git-wip-us.apache.org/repos/asf/ambari/blob/ad3bc8ef/ambari-web/app/views/main/host/summary.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/host/summary.js b/ambari-web/app/views/main/host/summary.js
index 211e065..7f4aab0 100644
--- a/ambari-web/app/views/main/host/summary.js
+++ b/ambari-web/app/views/main/host/summary.js
@@ -356,6 +356,11 @@ App.MainHostSummaryView = Em.View.extend({
return 'health-status-color-blue icon-cog';
}
+ //Class when maintenance
+ if (this.get('workStatus') === App.HostComponentStatus.maintenance) {
+ return 'icon-medkit';
+ }
+
//For all other cases
return 'health-status-' + App.HostComponentStatus.getKeyName(this.get('workStatus'));
}.property('workStatus', 'isDataNodeRecommissionAvailable', 'this.content.isDecommissioning'),
@@ -409,6 +414,10 @@ App.MainHostSummaryView = Em.View.extend({
return (this.get('workStatus') == App.HostComponentStatus.started || this.get('workStatus') == App.HostComponentStatus.starting);
}.property('workStatus'),
+ isStop: function () {
+ return (this.get('workStatus') == App.HostComponentStatus.stopped);
+ }.property('workStatus'),
+
isInstalling: function () {
return (this.get('workStatus') == App.HostComponentStatus.installing);
}.property('workStatus'),
@@ -441,6 +450,10 @@ App.MainHostSummaryView = Em.View.extend({
return this.get('isDataNode') && this.get("isDataNodeRecommissionAvailable") && hostComponentDecommissioning;
}.property("workStatus", "isDataNodeRecommissionAvailable", "hostComponent.isDecommissioning"),
+ isInMaintenance: function () {
+ return (this.get('workStatus') == App.HostComponentStatus.maintenance);
+ }.property("workStatus"),
+
/**
* Set in template via binding from parent view
*/