Updated Branches: refs/heads/trunk 16773c272 -> a1995263f
AMBARI-4473 Maintenance Mode: Host Detail page (Host Actions button). (ababiichuk) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/a1995263 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/a1995263 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/a1995263 Branch: refs/heads/trunk Commit: a1995263fd2f68e3869c81f5f24cd731583611e7 Parents: 16773c2 Author: aBabiichuk <[email protected]> Authored: Thu Jan 30 17:49:39 2014 +0200 Committer: aBabiichuk <[email protected]> Committed: Thu Jan 30 17:52:40 2014 +0200 ---------------------------------------------------------------------- .../controllers/global/cluster_controller.js | 4 ++-- ambari-web/app/controllers/main/host/details.js | 25 ++++++++++++++++++++ ambari-web/app/models/host.js | 3 +++ ambari-web/app/models/host_component.js | 2 +- ambari-web/app/views/main/host/details.js | 10 ++++++-- ambari-web/app/views/main/host/summary.js | 2 +- 6 files changed, 40 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/a1995263/ambari-web/app/controllers/global/cluster_controller.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/controllers/global/cluster_controller.js b/ambari-web/app/controllers/global/cluster_controller.js index f8c4fea..cdfb664 100644 --- a/ambari-web/app/controllers/global/cluster_controller.js +++ b/ambari-web/app/controllers/global/cluster_controller.js @@ -202,10 +202,10 @@ App.ClusterController = Em.Controller.extend({ return false; } var testUrl = App.get('isHadoop2Stack') ? '/data/hosts/HDP2/hc_host_status.json' : '/data/dashboard/services.json'; - var statusUrl = '/hosts?fields=Hosts/host_status,host_components/HostRoles/state,host_components/HostRoles/passive_state&minimal_response=true'; + var statusUrl = '/hosts?fields=Hosts/host_status,Hosts/passive_state,host_components/HostRoles/state,host_components/HostRoles/passive_state&minimal_response=true'; if (isInitialLoad) { testUrl = '/data/hosts/HDP2/hosts_init.json'; - statusUrl = '/hosts?fields=Hosts/host_name,Hosts/public_host_name,Hosts/cpu_count,Hosts/ph_cpu_count,Hosts/total_mem,' + + statusUrl = '/hosts?fields=Hosts/host_name,Hosts/passive_state,Hosts/public_host_name,Hosts/cpu_count,Hosts/ph_cpu_count,Hosts/total_mem,' + 'Hosts/host_status,Hosts/last_heartbeat_time,Hosts/os_arch,Hosts/os_type,Hosts/ip,host_components/HostRoles/state,host_components/HostRoles/passive_state,' + 'Hosts/disk_info,metrics/disk,metrics/load/load_one,metrics/cpu/cpu_system,metrics/cpu/cpu_user,' + 'metrics/memory/mem_total,metrics/memory/mem_free,alerts/summary&minimal_response=true'; http://git-wip-us.apache.org/repos/asf/ambari/blob/a1995263/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 f749e44..6358e65 100644 --- a/ambari-web/app/controllers/main/host/details.js +++ b/ambari-web/app/controllers/main/host/details.js @@ -939,11 +939,36 @@ App.MainHostDetailsController = Em.Controller.extend({ case "restartAllComponents": this.doRestartAllComponents(); break; + case "onOffPassiveModeForHost": + this.onOffPassiveModeForHost(option.context); + break; default: break; } }, + onOffPassiveModeForHost: function(context) { + var state = context.active ? 'PASSIVE' : 'ACTIVE'; + var self = this; + App.showConfirmationPopup(function() { + self.hostPassiveModeRequest(state, context.label) + }, + Em.I18n.t('hosts.passiveMode.popup').format(context.active ? 'On' : 'Off',this.get('content.hostName')) + ); + }, + + hostPassiveModeRequest: function(state,message) { + App.ajax.send({ + name: 'bulk_request.hosts.passive_state', + sender: this, + data: { + hostNames: this.get('content.hostName'), + passive_state: state, + requestInfo: message + } + }); + }, + doStartAllComponents: function() { var self = this; var components = this.get('content.hostComponents'); http://git-wip-us.apache.org/repos/asf/ambari/blob/a1995263/ambari-web/app/models/host.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/models/host.js b/ambari-web/app/models/host.js index 7319cc2..297607f 100644 --- a/ambari-web/app/models/host.js +++ b/ambari-web/app/models/host.js @@ -209,6 +209,9 @@ App.Host = DS.Model.extend({ * @returns {String} */ healthClass: function(){ + if (this.get('passiveState')!= 'ACTIVE') { + return 'icon-medkit'; + } var statusMap = { 'UNKNOWN': 'health-status-DEAD-YELLOW', 'HEALTHY': 'health-status-LIVE', http://git-wip-us.apache.org/repos/asf/ambari/blob/a1995263/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 591b1c4..3d8384a 100644 --- a/ambari-web/app/models/host_component.js +++ b/ambari-web/app/models/host_component.js @@ -197,7 +197,7 @@ App.HostComponentStatus = { case this.unknown: return 'unknown'; } - return 'Unknown'; + return 'unknown'; }, /** http://git-wip-us.apache.org/repos/asf/ambari/blob/a1995263/ambari-web/app/views/main/host/details.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/views/main/host/details.js b/ambari-web/app/views/main/host/details.js index 006297a..13e666e 100644 --- a/ambari-web/app/views/main/host/details.js +++ b/ambari-web/app/views/main/host/details.js @@ -26,13 +26,19 @@ App.MainHostDetailsView = Em.View.extend({ return App.router.get('mainHostDetailsController.content'); }.property('App.router.mainHostDetailsController.content'), + isActive: function() { + return this.get('controller.content.passiveState') === "ACTIVE"; + }.property('controller.content.passiveState'), + maintenance: function(){ + var onOff = this.get('isActive') ? "On" : "Off"; return [ {action: 'startAllComponents', cssClass: 'icon-play enabled', 'label': this.t('hosts.host.details.startAllComponents')}, {action: 'stopAllComponents', cssClass: 'icon-stop enabled', 'label': this.t('hosts.host.details.stopAllComponents')}, {action: 'restartAllComponents', cssClass: 'icon-forward enabled', 'label': this.t('hosts.host.details.restartAllComponents')}, - {action: 'deleteHost', cssClass: 'icon-remove enabled', 'label': this.t('hosts.host.details.deleteHost')}]; - }.property('controller.content'), + {action: 'deleteHost', cssClass: 'icon-remove enabled', 'label': this.t('hosts.host.details.deleteHost')}, + {action: 'onOffPassiveModeForHost', cssClass: 'icon-medkit enabled', active:this.get('isActive'), 'label': this.t('passiveState.turn' + onOff)}]; + }.property('controller.content','isActive'), didInsertElement: function() { App.tooltip($("[rel='HealthTooltip']")); } http://git-wip-us.apache.org/repos/asf/ambari/blob/a1995263/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 6703800..e3befcc 100644 --- a/ambari-web/app/views/main/host/summary.js +++ b/ambari-web/app/views/main/host/summary.js @@ -332,7 +332,7 @@ App.MainHostSummaryView = Em.View.extend({ } //Class when maintenance - if (this.get('content.passiveState') === "PASSIVE") { + if (this.get('content.passiveState') != "ACTIVE") { return 'icon-medkit'; }
