You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ak...@apache.org on 2013/10/10 14:52:00 UTC
[1/2] AMBARI-3492. Reassign Master Wizard: move HA NameNode in 2.x
stack (non-secure). (akovalenko)
Updated Branches:
refs/heads/trunk c0e318b20 -> a0dd6770e
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/views.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views.js b/ambari-web/app/views.js
index 5b837e9..0325d14 100644
--- a/ambari-web/app/views.js
+++ b/ambari-web/app/views.js
@@ -186,6 +186,12 @@ require('views/main/service/info/metrics/flume/jvm_threads_runnable');
require('views/main/service/info/metrics/flume/cpu_user');
require('views/main/service/add_view');
require('views/main/service/reassign_view');
+require('views/main/service/reassign/step1_view');
+require('views/main/service/reassign/step2_view');
+require('views/main/service/reassign/step3_view');
+require('views/main/service/reassign/step4_view');
+require('views/main/service/reassign/step5_view');
+require('views/main/service/reassign/step6_view');
require('views/main/charts/menu');
require('views/main/charts/heatmap');
require('views/main/charts/heatmap/heatmap_rack');
@@ -217,11 +223,6 @@ require('views/wizard/step7_view');
require('views/wizard/step8_view');
require('views/wizard/step9_view');
require('views/wizard/step10_view');
-require('views/wizard/step11_view');
-require('views/wizard/step12_view');
-require('views/wizard/step13_view');
-require('views/wizard/step14_view');
-require('views/wizard/step15_view');
require('views/wizard/stack_upgrade/step1_view');
require('views/wizard/stack_upgrade/step2_view');
require('views/wizard/stack_upgrade/step3_view');
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/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 b20926b..1db8c5e 100644
--- a/ambari-web/app/views/main/service/item.js
+++ b/ambari-web/app/views/main/service/item.js
@@ -23,7 +23,9 @@ App.MainServiceItemView = Em.View.extend({
maintenance: function(){
var options = [];
var service = this.get('controller.content');
- switch(service.get('serviceName')) {
+ var allMasters = this.get('controller.content.hostComponents').filterProperty('isMaster').mapProperty('componentName').uniq();
+ var reassignableMasters = ['NAMENODE', 'SECONDARY_NAMENODE', 'JOBTRACKER', 'RESOURCEMANAGER'];
+ switch (service.get('serviceName')) {
case 'GANGLIA':
case 'NAGIOS':
break;
@@ -31,8 +33,11 @@ App.MainServiceItemView = Em.View.extend({
case 'HDFS':
case 'MAPREDUCE':
if (App.supports.reassignMaster) {
- this.get('controller.content.hostComponents').filterProperty('isMaster').forEach (function (hostComponent){
- options.push({action: 'reassignMaster', context: hostComponent, 'label': Em.I18n.t('services.service.actions.reassign.master').format(hostComponent.get('displayName'))});
+ allMasters.forEach(function (hostComponent) {
+ if (reassignableMasters.contains(hostComponent)) {
+ options.push({action: 'reassignMaster', context: hostComponent,
+ 'label': Em.I18n.t('services.service.actions.reassign.master').format(App.format.role(hostComponent))});
+ }
})
}
default:
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/views/main/service/reassign/step1_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/reassign/step1_view.js b/ambari-web/app/views/main/service/reassign/step1_view.js
new file mode 100644
index 0000000..d0f82de
--- /dev/null
+++ b/ambari-web/app/views/main/service/reassign/step1_view.js
@@ -0,0 +1,26 @@
+/**
+ * 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');
+
+App.ReassignMasterWizardStep1View = Em.View.extend({
+
+ templateName: require('templates/main/service/reassign/step1')
+
+});
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/views/main/service/reassign/step2_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/reassign/step2_view.js b/ambari-web/app/views/main/service/reassign/step2_view.js
new file mode 100644
index 0000000..1e07497
--- /dev/null
+++ b/ambari-web/app/views/main/service/reassign/step2_view.js
@@ -0,0 +1,22 @@
+/**
+ * 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');
+
+App.ReassignMasterWizardStep2View = App.WizardStep5View.extend();
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/views/main/service/reassign/step3_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/reassign/step3_view.js b/ambari-web/app/views/main/service/reassign/step3_view.js
new file mode 100644
index 0000000..20b8323
--- /dev/null
+++ b/ambari-web/app/views/main/service/reassign/step3_view.js
@@ -0,0 +1,37 @@
+/**
+ * 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');
+
+App.ReassignMasterWizardStep3View = Em.View.extend({
+
+ templateName: require('templates/main/service/reassign/step3'),
+
+ sourceHost: function(){
+ return this.get('controller.content.reassignHosts.source');
+ }.property('controller.content.reassignHosts.source'),
+
+ targetHost: function(){
+ return this.get('controller.content.reassignHosts.target');
+ }.property('controller.content.reassignHosts.target'),
+
+ printReview: function () {
+ $("#step8-info").jqprint();
+ }
+});
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/views/main/service/reassign/step4_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/reassign/step4_view.js b/ambari-web/app/views/main/service/reassign/step4_view.js
new file mode 100644
index 0000000..b3eaad7
--- /dev/null
+++ b/ambari-web/app/views/main/service/reassign/step4_view.js
@@ -0,0 +1,51 @@
+/**
+ * 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');
+
+App.ReassignMasterWizardStep4View = App.HighAvailabilityProgressPageView.extend({
+
+ headerTitle: Em.I18n.t('services.reassign.step4.header'),
+
+ noticeInProgress: function () {
+ return Em.I18n.t('services.reassign.step4.status.info').format(App.format.role(this.get('controller.content.reassign.component_name')))
+ }.property('controller.content.reassign.component_name'),
+
+ noticeFailed: function () {
+ return Em.I18n.t('services.reassign.step4.status.failed').format(App.format.role(this.get('controller.content.reassign.component_name')))
+ }.property('controller.content.reassign.component_name'),
+
+ noticeCompleted: function () {
+ if (this.get('controller.content.hasManualSteps')) {
+ return Em.I18n.t('services.reassign.step4.status.success.withManualSteps').format(App.format.role(this.get('controller.content.reassign.component_name')));
+ } else {
+ return Em.I18n.t('services.reassign.step4.status.success').format(App.format.role(this.get('controller.content.reassign.component_name')));
+ }
+ }.property('controller.content.reassign.component_name'),
+
+ submitButtonText: function () {
+ if (this.get('controller.content.hasManualSteps')) {
+ return Em.I18n.t('common.next') + ' →';
+ } else {
+ return Em.I18n.t('common.complete');
+ }
+ }.property('controller.content.hasManualSteps'),
+
+ templateName: require('templates/main/service/reassign/step4')
+});
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/views/main/service/reassign/step5_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/reassign/step5_view.js b/ambari-web/app/views/main/service/reassign/step5_view.js
new file mode 100644
index 0000000..2c84741
--- /dev/null
+++ b/ambari-web/app/views/main/service/reassign/step5_view.js
@@ -0,0 +1,32 @@
+/**
+ * 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');
+
+App.ReassignMasterWizardStep5View = Em.View.extend({
+
+ bodyText: function () {
+ var componentDir = this.get('controller.content.componentDir');
+ var sourceHost = this.get('controller.content.reassignHosts.source');
+ var targetHost = this.get('controller.content.reassignHosts.target');
+ return Em.I18n.t('services.reassign.step5.body.' + this.get('controller.content.reassign.component_name').toLowerCase()).format(componentDir, sourceHost, targetHost);
+ }.property('controller.content.reassign.component_name', 'controller.content.componentDir', 'controller.content.masterComponentHosts', 'controller.content.reassign.host_id'),
+
+ templateName: require('templates/main/service/reassign/step5')
+});
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/views/main/service/reassign/step6_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/service/reassign/step6_view.js b/ambari-web/app/views/main/service/reassign/step6_view.js
new file mode 100644
index 0000000..02aa506
--- /dev/null
+++ b/ambari-web/app/views/main/service/reassign/step6_view.js
@@ -0,0 +1,41 @@
+/**
+ * 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');
+
+App.ReassignMasterWizardStep6View = App.HighAvailabilityProgressPageView.extend({
+
+ headerTitle: Em.I18n.t('services.reassign.step6.header'),
+
+ noticeInProgress: function () {
+ return Em.I18n.t('services.reassign.step6.status.info').format(App.format.role(this.get('controller.content.reassign.component_name')))
+ }.property('controller.content.reassign.component_name'),
+
+ noticeFailed: function () {
+ return Em.I18n.t('services.reassign.step6.status.failed').format(App.format.role(this.get('controller.content.reassign.component_name')))
+ }.property('controller.content.reassign.component_name'),
+
+ noticeCompleted: function () {
+ return Em.I18n.t('services.reassign.step6.status.success').format(App.format.role(this.get('controller.content.reassign.component_name')))
+ }.property('controller.content.reassign.component_name'),
+
+ submitButtonText: Em.I18n.t('common.complete'),
+
+ templateName: require('templates/main/service/reassign/step6')
+});
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/views/wizard/step11_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/wizard/step11_view.js b/ambari-web/app/views/wizard/step11_view.js
deleted file mode 100644
index fd3714b..0000000
--- a/ambari-web/app/views/wizard/step11_view.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * 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');
-
-App.WizardStep11View = Em.View.extend({
-
- templateName: require('templates/wizard/step11')
-
-});
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/views/wizard/step12_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/wizard/step12_view.js b/ambari-web/app/views/wizard/step12_view.js
deleted file mode 100644
index 64885ae..0000000
--- a/ambari-web/app/views/wizard/step12_view.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * 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');
-
-App.WizardStep12View = Em.View.extend({
-
- templateName: require('templates/wizard/step12'),
-
- sourceHost: function () {
- return this.get('controller.content.reassign.host_id')
- }.property('controller.content.reassign.host_id'),
- targetHost: function () {
- return this.get('controller.content.masterComponentHosts').findProperty('component', this.get('controller.content.reassign.component_name')).hostName;
- }.property('controller.content.masterComponentHosts'),
-
- printReview: function() {
- $("#step8-info").jqprint();
- }
-});
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/views/wizard/step13_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/wizard/step13_view.js b/ambari-web/app/views/wizard/step13_view.js
deleted file mode 100644
index c6ef8cf..0000000
--- a/ambari-web/app/views/wizard/step13_view.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * 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');
-
-App.WizardStep13View = App.HighAvailabilityProgressPageView.extend({
-
- headerTitle: Em.I18n.t('installer.step13.header'),
-
- noticeInProgress: function () {
- return Em.I18n.t('installer.step13.status.info').format(App.format.role(this.get('controller.content.reassign.component_name')))
- }.property('controller.content.reassign.component_name'),
-
- noticeFailed: function () {
- return Em.I18n.t('installer.step13.status.failed').format(App.format.role(this.get('controller.content.reassign.component_name')))
- }.property('controller.content.reassign.component_name'),
-
- noticeCompleted: function () {
- if (this.get('controller.content.hasManualSteps')) {
- return Em.I18n.t('installer.step13.status.success.withManualSteps').format(App.format.role(this.get('controller.content.reassign.component_name')));
- } else {
- return Em.I18n.t('installer.step13.status.success').format(App.format.role(this.get('controller.content.reassign.component_name')));
- }
- }.property('controller.content.reassign.component_name'),
-
- submitButtonText: function () {
- if (this.get('controller.content.hasManualSteps')) {
- return Em.I18n.t('common.next') + ' →';
- } else {
- return Em.I18n.t('common.complete');
- }
- }.property('controller.content.hasManualSteps'),
-
- templateName: require('templates/wizard/step13')
-});
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/views/wizard/step14_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/wizard/step14_view.js b/ambari-web/app/views/wizard/step14_view.js
deleted file mode 100644
index 68bb56b..0000000
--- a/ambari-web/app/views/wizard/step14_view.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * 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');
-
-App.WizardStep14View = Em.View.extend({
-
- bodyText: function () {
- var componentDir = this.get('controller.content.componentDir');
- var sourceHost = this.get('controller.content.reassign.host_id');
- var targetHost = this.get('controller.content.masterComponentHosts').findProperty('component', this.get('controller.content.reassign.component_name')).hostName;
- return Em.I18n.t('installer.step14.body.' + this.get('controller.content.reassign.component_name').toLowerCase()).format(componentDir, sourceHost, targetHost);
- }.property('controller.content.reassign.component_name', 'controller.content.componentDir', 'controller.content.masterComponentHosts', 'controller.content.reassign.host_id'),
-
- templateName: require('templates/wizard/step14')
-});
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/views/wizard/step15_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/wizard/step15_view.js b/ambari-web/app/views/wizard/step15_view.js
deleted file mode 100644
index a618c96..0000000
--- a/ambari-web/app/views/wizard/step15_view.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * 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');
-
-App.WizardStep15View = App.HighAvailabilityProgressPageView.extend({
-
- headerTitle: Em.I18n.t('installer.step15.header'),
-
- noticeInProgress: function () {
- return Em.I18n.t('installer.step15.status.info').format(App.format.role(this.get('controller.content.reassign.component_name')))
- }.property('controller.content.reassign.component_name'),
-
- noticeFailed: function () {
- return Em.I18n.t('installer.step15.status.failed').format(App.format.role(this.get('controller.content.reassign.component_name')))
- }.property('controller.content.reassign.component_name'),
-
- noticeCompleted: function () {
- return Em.I18n.t('installer.step15.status.success').format(App.format.role(this.get('controller.content.reassign.component_name')))
- }.property('controller.content.reassign.component_name'),
-
- submitButtonText: Em.I18n.t('common.complete'),
-
- templateName: require('templates/wizard/step15')
-});
[2/2] git commit: AMBARI-3492. Reassign Master Wizard: move HA
NameNode in 2.x stack (non-secure). (akovalenko)
Posted by ak...@apache.org.
AMBARI-3492. Reassign Master Wizard: move HA NameNode in 2.x stack (non-secure). (akovalenko)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/a0dd6770
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/a0dd6770
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/a0dd6770
Branch: refs/heads/trunk
Commit: a0dd6770e2e7594ce8e191e8035f147988b8e59a
Parents: c0e318b
Author: Aleksandr Kovalenko <ol...@ukr.net>
Authored: Thu Oct 10 15:48:09 2013 +0300
Committer: Aleksandr Kovalenko <ol...@ukr.net>
Committed: Thu Oct 10 15:48:09 2013 +0300
----------------------------------------------------------------------
ambari-web/app/controllers.js | 11 +-
.../admin/highAvailability/step5_controller.js | 2 +
.../admin/highAvailability/step7_controller.js | 2 +
.../admin/highAvailability/step9_controller.js | 2 +
ambari-web/app/controllers/main/service/item.js | 2 +-
.../main/service/reassign/step1_controller.js | 22 ++
.../main/service/reassign/step2_controller.js | 46 +++
.../main/service/reassign/step3_controller.js | 21 ++
.../main/service/reassign/step4_controller.js | 337 +++++++++++++++++++
.../main/service/reassign/step5_controller.js | 23 ++
.../main/service/reassign/step6_controller.js | 85 +++++
.../main/service/reassign_controller.js | 11 +
.../app/controllers/wizard/step11_controller.js | 22 --
.../app/controllers/wizard/step12_controller.js | 21 --
.../app/controllers/wizard/step13_controller.js | 320 ------------------
.../app/controllers/wizard/step14_controller.js | 23 --
.../app/controllers/wizard/step15_controller.js | 82 -----
.../app/controllers/wizard/step5_controller.js | 12 +-
ambari-web/app/messages.js | 98 +++---
ambari-web/app/routes/reassign_master_routes.js | 39 ++-
.../main/admin/highAvailability/progress.hbs | 2 +-
.../app/templates/main/service/reassign.hbs | 12 +-
.../templates/main/service/reassign/step1.hbs | 22 ++
.../templates/main/service/reassign/step3.hbs | 41 +++
.../templates/main/service/reassign/step4.hbs | 18 +
.../templates/main/service/reassign/step5.hbs | 25 ++
.../templates/main/service/reassign/step6.hbs | 18 +
ambari-web/app/templates/wizard/step11.hbs | 22 --
ambari-web/app/templates/wizard/step12.hbs | 41 ---
ambari-web/app/templates/wizard/step13.hbs | 18 -
ambari-web/app/templates/wizard/step14.hbs | 25 --
ambari-web/app/templates/wizard/step15.hbs | 18 -
ambari-web/app/utils/db.js | 11 +
ambari-web/app/views.js | 11 +-
ambari-web/app/views/main/service/item.js | 11 +-
.../views/main/service/reassign/step1_view.js | 26 ++
.../views/main/service/reassign/step2_view.js | 22 ++
.../views/main/service/reassign/step3_view.js | 37 ++
.../views/main/service/reassign/step4_view.js | 51 +++
.../views/main/service/reassign/step5_view.js | 32 ++
.../views/main/service/reassign/step6_view.js | 41 +++
ambari-web/app/views/wizard/step11_view.js | 26 --
ambari-web/app/views/wizard/step12_view.js | 36 --
ambari-web/app/views/wizard/step13_view.js | 51 ---
ambari-web/app/views/wizard/step14_view.js | 32 --
ambari-web/app/views/wizard/step15_view.js | 41 ---
46 files changed, 1009 insertions(+), 862 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers.js b/ambari-web/app/controllers.js
index 282ac24..18312e0 100644
--- a/ambari-web/app/controllers.js
+++ b/ambari-web/app/controllers.js
@@ -62,6 +62,12 @@ require('controllers/main/service/info/configs');
require('controllers/main/service/info/audit');
require('controllers/main/service/add_controller');
require('controllers/main/service/reassign_controller');
+require('controllers/main/service/reassign/step1_controller');
+require('controllers/main/service/reassign/step2_controller');
+require('controllers/main/service/reassign/step3_controller');
+require('controllers/main/service/reassign/step4_controller');
+require('controllers/main/service/reassign/step5_controller');
+require('controllers/main/service/reassign/step6_controller');
require('controllers/main/host');
require('controllers/main/host/details');
require('controllers/main/host/configs_service');
@@ -114,11 +120,6 @@ require('controllers/wizard/step7_controller');
require('controllers/wizard/step8_controller');
require('controllers/wizard/step9_controller');
require('controllers/wizard/step10_controller');
-require('controllers/wizard/step11_controller');
-require('controllers/wizard/step12_controller');
-require('controllers/wizard/step13_controller');
-require('controllers/wizard/step14_controller');
-require('controllers/wizard/step15_controller');
require('controllers/wizard/stack_upgrade/step1_controller');
require('controllers/wizard/stack_upgrade/step2_controller');
require('controllers/wizard/stack_upgrade/step3_controller');
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/main/admin/highAvailability/step5_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/highAvailability/step5_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/step5_controller.js
index 1b721a0..0e26fda 100644
--- a/ambari-web/app/controllers/main/admin/highAvailability/step5_controller.js
+++ b/ambari-web/app/controllers/main/admin/highAvailability/step5_controller.js
@@ -22,6 +22,8 @@ App.HighAvailabilityWizardStep5Controller = App.HighAvailabilityProgressPageCont
name:"highAvailabilityWizardStep5Controller",
+ isHA: true,
+
commands: ['stopAllServices', 'installNameNode', 'installJournalNodes', 'startJournalNodes', 'disableSNameNode', 'reconfigureHDFS'],
hdfsSiteTag : "",
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/main/admin/highAvailability/step7_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/highAvailability/step7_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/step7_controller.js
index d26bdbd..5d515ba 100644
--- a/ambari-web/app/controllers/main/admin/highAvailability/step7_controller.js
+++ b/ambari-web/app/controllers/main/admin/highAvailability/step7_controller.js
@@ -22,6 +22,8 @@ App.HighAvailabilityWizardStep7Controller = App.HighAvailabilityProgressPageCont
name:"highAvailabilityWizardStep7Controller",
+ isHA: true,
+
commands: ['startZooKeeperServers', 'startNameNode'],
startZooKeeperServers: function () {
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/main/admin/highAvailability/step9_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/highAvailability/step9_controller.js b/ambari-web/app/controllers/main/admin/highAvailability/step9_controller.js
index 680d16e..1670eac 100644
--- a/ambari-web/app/controllers/main/admin/highAvailability/step9_controller.js
+++ b/ambari-web/app/controllers/main/admin/highAvailability/step9_controller.js
@@ -22,6 +22,8 @@ App.HighAvailabilityWizardStep9Controller = App.HighAvailabilityProgressPageCont
name:"highAvailabilityWizardStep9Controller",
+ isHA: true,
+
commands: ['startSecondNameNode', 'installZKFC', 'startZKFC', 'reconfigureHBase', 'startAllServices', 'deleteSNameNode'],
hbaseSiteTag: "",
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/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 32851c9..d5dd203 100644
--- a/ambari-web/app/controllers/main/service/item.js
+++ b/ambari-web/app/controllers/main/service/item.js
@@ -198,7 +198,7 @@ App.MainServiceItemController = Em.Controller.extend({
* @param hostComponent
*/
reassignMaster: function (hostComponent) {
- var component = App.HostComponent.find().findProperty('componentName', hostComponent.get('componentName'));
+ var component = App.HostComponent.find().findProperty('componentName', hostComponent);
console.log('In Reassign Master', hostComponent);
var reassignMasterController = App.router.get('reassignMasterController');
reassignMasterController.saveComponentToReassign(component);
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/main/service/reassign/step1_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/reassign/step1_controller.js b/ambari-web/app/controllers/main/service/reassign/step1_controller.js
new file mode 100644
index 0000000..0a0bcbd
--- /dev/null
+++ b/ambari-web/app/controllers/main/service/reassign/step1_controller.js
@@ -0,0 +1,22 @@
+/**
+ * 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');
+
+App.ReassignMasterWizardStep1Controller = Em.Controller.extend();
+
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/main/service/reassign/step2_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/reassign/step2_controller.js b/ambari-web/app/controllers/main/service/reassign/step2_controller.js
new file mode 100644
index 0000000..0252b02
--- /dev/null
+++ b/ambari-web/app/controllers/main/service/reassign/step2_controller.js
@@ -0,0 +1,46 @@
+/**
+ * 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');
+
+App.ReassignMasterWizardStep2Controller = App.WizardStep5Controller.extend({
+
+ loadStep: function() {
+ this._super();
+ this.rebalanceComponentHosts('NAMENODE');
+ },
+
+ loadComponents: function () {
+ var components = this.get('components').filterProperty('isMaster', true);
+ var masterComponents = this.get('content.masterComponentHosts');
+ var result = [];
+ masterComponents.forEach(function (master) {
+ result.push({
+ component_name: master.component,
+ display_name: App.format.role(master.component),
+ selectedHost: master.hostName,
+ isInstalled: true,
+ serviceId: App.HostComponent.find().findProperty('componentName', master.component).get('serviceName'),
+ availableHosts: [],
+ isHiveCoHost: ['HIVE_METASTORE', 'WEBHCAT_SERVER'].contains(master.component)
+ });
+ }, this);
+ return result;
+ }
+});
+
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/main/service/reassign/step3_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/reassign/step3_controller.js b/ambari-web/app/controllers/main/service/reassign/step3_controller.js
new file mode 100644
index 0000000..bc17d42
--- /dev/null
+++ b/ambari-web/app/controllers/main/service/reassign/step3_controller.js
@@ -0,0 +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.
+ */
+
+var App = require('app');
+
+App.ReassignMasterWizardStep3Controller = Em.Controller.extend()
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/main/service/reassign/step4_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/reassign/step4_controller.js b/ambari-web/app/controllers/main/service/reassign/step4_controller.js
new file mode 100644
index 0000000..4fa4e75
--- /dev/null
+++ b/ambari-web/app/controllers/main/service/reassign/step4_controller.js
@@ -0,0 +1,337 @@
+/**
+ * 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');
+
+App.ReassignMasterWizardStep4Controller = App.HighAvailabilityProgressPageController.extend({
+
+ isReassign: true,
+
+ commands: ['stopServices', 'createHostComponents', 'putHostComponentsInMaintenanceMode', 'reconfigure', 'installHostComponents', 'deleteHostComponents', 'startServices'],
+
+ clusterDeployState: 'REASSIGN_MASTER_INSTALLING',
+
+ multiTaskCounter: 0,
+
+ hostComponents: [],
+
+ serviceNames: [],
+
+ loadStep: function () {
+ if (this.get('content.reassign.component_name') === 'NAMENODE' && !App.HostComponent.find().someProperty('componentName', 'SECONDARY_NAMENODE')) {
+ this.get('hostComponents').pushObjects(['NAMENODE', 'ZKFC']);
+ } else {
+ this.get('hostComponents').pushObject(this.get('content.reassign.component_name'));
+ }
+ this.get('serviceNames').pushObject(this.get('content.reassign.service_id'));
+ this._super();
+ },
+
+ initializeTasks: function () {
+ var commands = this.get('commands');
+ var currentStep = App.router.get('reassignMasterController.currentStep');
+ var hostComponentsNames = '';
+ var serviceNames = '';
+ this.get('hostComponents').forEach(function (comp, index) {
+ hostComponentsNames += index ? ', ' : '';
+ hostComponentsNames += App.format.role(comp);
+ }, this);
+ this.get('serviceNames').forEach(function (service, index) {
+ serviceNames += index ? ', ' : '';
+ serviceNames += App.Service.find().findProperty('serviceName', service).get('displayName');
+ }, this);
+ for (var i = 0; i < commands.length; i++) {
+ var title = Em.I18n.t('services.reassign.step4.task' + i + '.title').format(hostComponentsNames, serviceNames);
+ this.get('tasks').pushObject(Ember.Object.create({
+ title: title,
+ status: 'PENDING',
+ id: i,
+ command: commands[i],
+ showRetry: false,
+ showRollback: false,
+ name: title,
+ displayName: title,
+ progress: 0,
+ isRunning: false,
+ hosts: []
+ }));
+ }
+
+ if (this.get('content.hasManualSteps')) {
+ this.get('tasks').splice(5, 2);
+ }
+ },
+
+ hideRollbackButton: function () {
+ var failedTask = this.get('tasks').findProperty('showRollback');
+ if (failedTask) {
+ failedTask.set('showRollback', false)
+ }
+ }.observes('tasks.@each.showRollback'),
+
+ onComponentsTasksSuccess: function () {
+ this.set('multiTaskCounter', this.get('multiTaskCounter') + 1);
+ if (this.get('multiTaskCounter') >= this.get('hostComponents').length) {
+ this.onTaskCompleted();
+ }
+ },
+
+ stopServices: function () {
+ this.set('multiTaskCounter', 0);
+ var serviceNames = this.get('serviceNames');
+ for (var i = 0; i < serviceNames.length; i++) {
+ App.ajax.send({
+ name: 'reassign.stop_service',
+ sender: this,
+ data: {
+ serviceName: serviceNames[i],
+ displayName: App.Service.find().findProperty('serviceName', serviceNames[i]).get('displayName'),
+ taskNum: serviceNames.length
+ },
+ success: 'startPolling',
+ error: 'onTaskError'
+ });
+ }
+ },
+
+ createHostComponents: function () {
+ this.set('multiTaskCounter', 0);
+ var hostComponents = this.get('hostComponents');
+ var hostName = this.get('content.reassignHosts.target');
+ for (var i = 0; i < hostComponents.length; i++) {
+ this.createComponent(hostComponents[i], hostName);
+ }
+ },
+
+ onCreateComponent: function () {
+ this.onComponentsTasksSuccess();
+ },
+
+ putHostComponentsInMaintenanceMode: function () {
+ this.set('multiTaskCounter', 0);
+ var hostComponents = this.get('hostComponents');
+ var hostName = this.get('content.reassignHosts.source');
+ for (var i = 0; i < hostComponents.length; i++) {
+ App.ajax.send({
+ name: 'reassign.maintenance_mode',
+ sender: this,
+ data: {
+ hostName: hostName,
+ componentName: hostComponents[i]
+ },
+ success: 'onComponentsTasksSuccess',
+ error: 'onTaskError'
+ });
+ }
+ },
+
+ installHostComponents: function () {
+ this.set('multiTaskCounter', 0);
+ var hostComponents = this.get('hostComponents');
+ var hostName = this.get('content.reassignHosts.target');
+ for (var i = 0; i < hostComponents.length; i++) {
+ this.installComponent(hostComponents[i], hostName, hostComponents.length);
+ }
+ },
+
+ reconfigure: function () {
+ this.loadConfigsTags();
+ },
+
+ loadConfigsTags: function () {
+ App.ajax.send({
+ name: 'config.tags',
+ sender: this,
+ success: 'onLoadConfigsTags',
+ error: 'onTaskError'
+ });
+ },
+
+ onLoadConfigsTags: function (data) {
+ var componentName = this.get('content.reassign.component_name');
+ var urlParams = [];
+ switch (componentName) {
+ case 'NAMENODE':
+ urlParams.push('(type=hdfs-site&tag=' + data.Clusters.desired_configs['hdfs-site'].tag + ')');
+ urlParams.push('(type=core-site&tag=' + data.Clusters.desired_configs['core-site'].tag + ')');
+ if (App.Service.find().someProperty('serviceName', 'HBASE')) {
+ urlParams.push('(type=hbase-site&tag=' + data.Clusters.desired_configs['hbase-site'].tag + ')');
+ }
+ break;
+ case 'SECONDARY_NAMENODE':
+ urlParams.push('(type=hdfs-site&tag=' + data.Clusters.desired_configs['hdfs-site'].tag + ')');
+ urlParams.push('(type=core-site&tag=' + data.Clusters.desired_configs['core-site'].tag + ')');
+ break;
+ case 'JOBTRACKER':
+ urlParams.push('(type=mapred-site&tag=' + data.Clusters.desired_configs['mapred-site'].tag + ')');
+ break;
+ case 'RESOURCEMANAGER':
+ urlParams.push('(type=yarn-site&tag=' + data.Clusters.desired_configs['yarn-site'].tag + ')');
+ break;
+ }
+ App.ajax.send({
+ name: 'reassign.load_configs',
+ sender: this,
+ data: {
+ urlParams: urlParams.join('|')
+ },
+ success: 'onLoadConfigs',
+ error: 'onTaskError'
+ });
+ },
+
+ configsSitesCount: null,
+
+ configsSitesNumber: null,
+
+ onLoadConfigs: function (data) {
+ var isHadoop2Stack = App.get('isHadoop2Stack');
+ var componentName = this.get('content.reassign.component_name');
+ var targetHostName = this.get('content.reassignHosts.target');
+ var sourceHostName = this.get('content.reassignHosts.source');
+ var configs = {};
+ var componentDir = '';
+ this.set('configsSitesNumber', data.items.length);
+ this.set('configsSitesCount', 0);
+ data.items.forEach(function (item) {
+ configs[item.type] = item.properties;
+ }, this);
+ switch (componentName) {
+ case 'NAMENODE':
+ if (isHadoop2Stack) {
+ componentDir = configs['hdfs-site']['dfs.namenode.name.dir'];
+ configs['hdfs-site']['dfs.namenode.http-address'] = targetHostName + ':50070';
+ configs['hdfs-site']['dfs.namenode.https-address'] = targetHostName + ':50470';
+ configs['core-site']['fs.defaultFS'] = 'hdfs://' + targetHostName + ':8020';
+ if (!App.HostComponent.find().someProperty('componentName', 'SECONDARY_NAMENODE')) {
+ var nameServices = configs['hdfs-site']['dfs.nameservices'];
+ if (configs['hdfs-site']['dfs.namenode.http-address.' + nameServices + '.nn1'] === sourceHostName + ':50070') {
+ configs['hdfs-site']['dfs.namenode.http-address.' + nameServices + '.nn1'] = targetHostName + ':50070';
+ configs['hdfs-site']['dfs.namenode.rpc-address.' + nameServices + '.nn1'] = targetHostName + ':8020';
+ } else {
+ configs['hdfs-site']['dfs.namenode.http-address.' + nameServices + '.nn2'] = targetHostName + ':50070';
+ configs['hdfs-site']['dfs.namenode.rpc-address.' + nameServices + '.nn2'] = targetHostName + ':8020';
+ }
+ }
+ } else {
+ componentDir = configs['hdfs-site']['dfs.name.dir'];
+ configs['hdfs-site']['dfs.http.address'] = targetHostName + ':50070';
+ configs['hdfs-site']['dfs.https.address'] = targetHostName + ':50470';
+ configs['core-site']['fs.default.name'] = 'hdfs://' + targetHostName + ':8020';
+ }
+ if (App.Service.find().someProperty('serviceName', 'HBASE')) {
+ configs['hbase-site']['hbase.rootdir'] = configs['hbase-site']['hbase.rootdir'].replace(/\/\/[^\/]*/, '//' + targetHostName);
+ }
+ break;
+ case 'SECONDARY_NAMENODE':
+ componentDir = configs['core-site']['fs.checkpoint.dir'];
+ configs['hdfs-site']['dfs.secondary.http.address'] = targetHostName + ':50090';
+ break;
+ case 'JOBTRACKER':
+ componentDir = configs['mapred-site']['mapred.local.dir'];
+ configs['mapred-site']['mapreduce.history.server.http.address'] = targetHostName + ':51111';
+ configs['mapred-site']['mapred.job.tracker.http.address'] = targetHostName + ':50030';
+ configs['mapred-site']['mapred.job.tracker'] = targetHostName + ':50300';
+ break;
+ case 'RESOURCEMANAGER':
+ configs['yarn-site']['yarn.resourcemanager.address'] = targetHostName + ':8050';
+ configs['yarn-site']['yarn.resourcemanager.admin.address'] = targetHostName + ':8141';
+ configs['yarn-site']['yarn.resourcemanager.resource-tracker.address'] = targetHostName + ':8025';
+ configs['yarn-site']['yarn.resourcemanager.scheduler.address'] = targetHostName + ':8030';
+ configs['yarn-site']['yarn.resourcemanager.webapp.address'] = targetHostName + ':8088';
+ configs['yarn-site']['yarn.resourcemanager.hostname'] = targetHostName;
+ break;
+ }
+ if (componentDir) {
+ App.router.get(this.get('content.controllerName')).saveComponentDir(componentDir);
+ App.clusterStatus.setClusterStatus({
+ clusterName: this.get('content.cluster.name'),
+ clusterState: this.get('clusterDeployState'),
+ wizardControllerName: this.get('content.controllerName'),
+ localdb: App.db.data
+ });
+ }
+ for (var site in configs) {
+ if (!configs.hasOwnProperty(site)) continue;
+ App.ajax.send({
+ name: 'reassign.save_configs',
+ sender: this,
+ data: {
+ siteName: site,
+ properties: configs[site]
+ },
+ success: 'onSaveConfigs',
+ error: 'onTaskError'
+ });
+ }
+ },
+
+ onSaveConfigs: function () {
+ this.set('configsSitesCount', this.get('configsSitesCount') + 1);
+ if (this.get('configsSitesCount') === this.get('configsSitesNumber')) {
+ this.onTaskCompleted();
+ }
+ },
+
+ startServices: function () {
+ this.set('multiTaskCounter', 0);
+ var serviceNames = this.get('serviceNames');
+ for (var i = 0; i < serviceNames.length; i++) {
+ App.ajax.send({
+ name: 'reassign.start_components',
+ sender: this,
+ data: {
+ serviceName: serviceNames[i],
+ displayName: App.Service.find().findProperty('serviceName', serviceNames[i]).get('displayName'),
+ taskNum: serviceNames.length
+ },
+ success: 'startPolling',
+ error: 'onTaskError'
+ });
+ }
+ },
+
+ deleteHostComponents: function () {
+ this.set('multiTaskCounter', 0);
+ var hostComponents = this.get('hostComponents');
+ var hostName = this.get('content.reassignHosts.source');
+ for (var i = 0; i < hostComponents.length; i++) {
+ App.ajax.send({
+ name: 'reassign.remove_component',
+ sender: this,
+ data: {
+ hostName: hostName,
+ componentName: hostComponents[i]
+ },
+ success: 'onComponentsTasksSuccess',
+ error: 'onTaskError'
+ });
+ }
+ },
+
+ done: function () {
+ if (!this.get('isSubmitDisabled')) {
+ this.removeObserver('tasks.@each.status', this, 'onTaskStatusChange');
+ if (this.get('content.hasManualSteps')) {
+ App.router.send('next');
+ } else {
+ App.router.send('complete');
+ }
+ }
+ }
+})
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/main/service/reassign/step5_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/reassign/step5_controller.js b/ambari-web/app/controllers/main/service/reassign/step5_controller.js
new file mode 100644
index 0000000..2de3425
--- /dev/null
+++ b/ambari-web/app/controllers/main/service/reassign/step5_controller.js
@@ -0,0 +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.
+ */
+
+var App = require('app');
+
+App.ReassignMasterWizardStep5Controller = Em.Controller.extend({
+
+})
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/main/service/reassign/step6_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/reassign/step6_controller.js b/ambari-web/app/controllers/main/service/reassign/step6_controller.js
new file mode 100644
index 0000000..4d5a624
--- /dev/null
+++ b/ambari-web/app/controllers/main/service/reassign/step6_controller.js
@@ -0,0 +1,85 @@
+/**
+ * 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');
+
+App.ReassignMasterWizardStep6Controller = App.HighAvailabilityProgressPageController.extend({
+
+ isReassign: true,
+
+ commands: ['deleteHostComponents', 'startServices'],
+
+ clusterDeployState: 'REASSIGN_MASTER_INSTALLING',
+
+ initializeTasks: function () {
+ var commands = this.get('commands');
+ var currentStep = App.router.get('reassignMasterController.currentStep');
+ for (var i = 0; i < commands.length; i++) {
+ var title = Em.I18n.t('services.reassign.step6.task' + i + '.title').format(App.format.role(this.get('content.reassign.component_name')),
+ App.Service.find().findProperty('serviceName', this.get('content.reassign.service_id')).get('displayName'));
+ this.get('tasks').pushObject(Ember.Object.create({
+ title: title,
+ status: 'PENDING',
+ id: i,
+ command: commands[i],
+ showRetry: false,
+ showRollback: false,
+ name: title,
+ displayName: title,
+ progress: 0,
+ isRunning: false,
+ hosts: []
+ }));
+ }
+ },
+
+ hideRollbackButton: function () {
+ var failedTask = this.get('tasks').findProperty('showRollback');
+ if (failedTask) {
+ failedTask.set('showRollback', false)
+ }
+ }.observes('tasks.@each.showRollback'),
+
+ startServices: function () {
+ var serviceName = this.get('content.reassign.service_id');
+ App.ajax.send({
+ name: 'reassign.start_components',
+ sender: this,
+ data: {
+ serviceName: serviceName,
+ displayName: App.Service.find().findProperty('serviceName', serviceName).get('displayName')
+ },
+ success: 'startPolling',
+ error: 'onTaskError'
+ });
+ },
+
+ deleteHostComponents: function () {
+ var hostName = this.get('content.reassignHosts.source');
+ App.ajax.send({
+ name: 'reassign.remove_component',
+ sender: this,
+ data: {
+ hostName: hostName,
+ componentName: this.get('content.reassign.component_name')
+ },
+ success: 'onTaskCompleted',
+ error: 'onTaskError'
+ });
+ }
+})
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/main/service/reassign_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/reassign_controller.js b/ambari-web/app/controllers/main/service/reassign_controller.js
index 90be313..803c6f4 100644
--- a/ambari-web/app/controllers/main/service/reassign_controller.js
+++ b/ambari-web/app/controllers/main/service/reassign_controller.js
@@ -236,6 +236,16 @@ App.ReassignMasterController = App.WizardController.extend({
this.set('content.componentDir', componentDir);
},
+ saveReassignHosts: function(reassignHosts){
+ App.db.setReassignMasterWizardReassignHosts(reassignHosts);
+ this.set('content.reassignHosts', reassignHosts);
+ },
+
+ loadReassignHosts: function(){
+ var reassignHosts = App.db.getReassignMasterWizardReassignHosts();
+ this.set('content.reassignHosts', reassignHosts);
+ },
+
/**
* Load data for all steps until <code>current step</code>
*/
@@ -250,6 +260,7 @@ App.ReassignMasterController = App.WizardController.extend({
this.loadRequestIds();
this.loadLogs();
case '3':
+ this.loadReassignHosts();
case '2':
this.loadServicesFromServer();
this.loadMasterComponentHosts();
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/wizard/step11_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step11_controller.js b/ambari-web/app/controllers/wizard/step11_controller.js
deleted file mode 100644
index 23b10b7..0000000
--- a/ambari-web/app/controllers/wizard/step11_controller.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * 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');
-
-App.WizardStep11Controller = Em.Controller.extend();
-
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/wizard/step12_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step12_controller.js b/ambari-web/app/controllers/wizard/step12_controller.js
deleted file mode 100644
index a3e2d82..0000000
--- a/ambari-web/app/controllers/wizard/step12_controller.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * 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');
-
-App.WizardStep12Controller = Em.Controller.extend()
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/wizard/step13_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step13_controller.js b/ambari-web/app/controllers/wizard/step13_controller.js
deleted file mode 100644
index 524d359..0000000
--- a/ambari-web/app/controllers/wizard/step13_controller.js
+++ /dev/null
@@ -1,320 +0,0 @@
-/**
- * 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');
-
-App.WizardStep13Controller = App.HighAvailabilityProgressPageController.extend({
-
- commands: ['stopServices', 'createHostComponents', 'putHostComponentsInMaintenanceMode', 'reconfigure', 'installHostComponents', 'deleteHostComponents', 'startServices'],
-
- clusterDeployState: 'REASSIGN_MASTER_INSTALLING',
-
- multiTaskCounter: 0,
-
- hostComponents: [],
-
- serviceNames: [],
-
- loadStep: function () {
- this.get('hostComponents').pushObject(this.get('content.reassign.component_name'));
- this.get('serviceNames').pushObject(this.get('content.reassign.service_id'));
- this._super();
- },
-
- initializeTasks: function () {
- var commands = this.get('commands');
- var currentStep = App.router.get('reassignMasterController.currentStep');
- var hostComponentsNames = '';
- var serviceNames = '';
- this.get('hostComponents').forEach(function (comp, index) {
- hostComponentsNames += index ? ', ' : '';
- hostComponentsNames += App.format.role(comp);
- }, this);
- this.get('serviceNames').forEach(function (service, index) {
- serviceNames += index ? ', ' : '';
- serviceNames += App.Service.find().findProperty('serviceName', service).get('displayName');
- }, this);
- for (var i = 0; i < commands.length; i++) {
- var title = Em.I18n.t('installer.step13.task' + i + '.title').format(hostComponentsNames, serviceNames);
- this.get('tasks').pushObject(Ember.Object.create({
- title: title,
- status: 'PENDING',
- id: i,
- command: commands[i],
- showRetry: false,
- showRollback: false,
- name: title,
- displayName: title,
- progress: 0,
- isRunning: false,
- hosts: []
- }));
- }
-
- if (this.get('content.hasManualSteps')) {
- this.get('tasks').splice(5, 2);
- }
- },
-
- hideRollbackButton: function () {
- var failedTask = this.get('tasks').findProperty('showRollback');
- if (failedTask) {
- failedTask.set('showRollback', false)
- }
- }.observes('tasks.@each.showRollback'),
-
- onComponentsTasksSuccess: function () {
- this.set('multiTaskCounter', this.get('multiTaskCounter') + 1);
- if (this.get('multiTaskCounter') >= this.get('hostComponents').length) {
- this.onTaskCompleted();
- }
- },
-
- stopServices: function () {
- this.set('multiTaskCounter', 0);
- var serviceNames = this.get('serviceNames');
- for (var i = 0; i < serviceNames.length; i++) {
- App.ajax.send({
- name: 'reassign.stop_service',
- sender: this,
- data: {
- serviceName: serviceNames[i],
- displayName: App.Service.find().findProperty('serviceName', serviceNames[i]).get('displayName'),
- taskNum: serviceNames.length
- },
- success: 'startPolling',
- error: 'onTaskError'
- });
- }
- },
-
- createHostComponents: function () {
- this.set('multiTaskCounter', 0);
- var hostComponents = this.get('hostComponents');
- var hostName = this.get('content.masterComponentHosts').findProperty('component', this.get('content.reassign.component_name')).hostName;
- for (var i = 0; i < hostComponents.length; i++) {
- this.createComponent(hostComponents[i], hostName);
- }
- },
-
- onCreateComponent: function () {
- this.onComponentsTasksSuccess();
- },
-
- putHostComponentsInMaintenanceMode: function () {
- this.set('multiTaskCounter', 0);
- var hostComponents = this.get('hostComponents');
- var hostName = this.get('content.reassign.host_id');
- for (var i = 0; i < hostComponents.length; i++) {
- App.ajax.send({
- name: 'reassign.maintenance_mode',
- sender: this,
- data: {
- hostName: hostName,
- componentName: hostComponents[i]
- },
- success: 'onComponentsTasksSuccess',
- error: 'onTaskError'
- });
- }
- },
-
- installHostComponents: function () {
- this.set('multiTaskCounter', 0);
- var hostComponents = this.get('hostComponents');
- var hostName = this.get('content.masterComponentHosts').findProperty('component', this.get('content.reassign.component_name')).hostName;
- for (var i = 0; i < hostComponents.length; i++) {
- this.installComponent(hostComponents[i], hostName, hostComponents.length);
- }
- },
-
- reconfigure: function () {
- this.loadConfigsTags();
- },
-
- loadConfigsTags: function () {
- App.ajax.send({
- name: 'config.tags',
- sender: this,
- success: 'onLoadConfigsTags',
- error: 'onTaskError'
- });
- },
-
- onLoadConfigsTags: function (data) {
- var componentName = this.get('content.reassign.component_name');
- var urlParams = [];
- switch (componentName) {
- case 'NAMENODE':
- urlParams.push('(type=hdfs-site&tag=' + data.Clusters.desired_configs['hdfs-site'].tag + ')');
- urlParams.push('(type=core-site&tag=' + data.Clusters.desired_configs['core-site'].tag + ')');
- if (App.Service.find().someProperty('serviceName', 'HBASE')) {
- urlParams.push('(type=hbase-site&tag=' + data.Clusters.desired_configs['hbase-site'].tag + ')');
- }
- break;
- case 'SECONDARY_NAMENODE':
- urlParams.push('(type=hdfs-site&tag=' + data.Clusters.desired_configs['hdfs-site'].tag + ')');
- urlParams.push('(type=core-site&tag=' + data.Clusters.desired_configs['core-site'].tag + ')');
- break;
- case 'JOBTRACKER':
- urlParams.push('(type=mapred-site&tag=' + data.Clusters.desired_configs['mapred-site'].tag + ')');
- break;
- case 'RESOURCEMANAGER':
- urlParams.push('(type=yarn-site&tag=' + data.Clusters.desired_configs['yarn-site'].tag + ')');
- break;
- }
- App.ajax.send({
- name: 'reassign.load_configs',
- sender: this,
- data: {
- urlParams: urlParams.join('|')
- },
- success: 'onLoadConfigs',
- error: 'onTaskError'
- });
- },
-
- configsSitesCount: null,
-
- configsSitesNumber: null,
-
- onLoadConfigs: function (data) {
- var isHadoop2Stack = App.get('isHadoop2Stack');
- var componentName = this.get('content.reassign.component_name');
- var targetHostName = this.get('content.masterComponentHosts').findProperty('component', this.get('content.reassign.component_name')).hostName;
- var configs = {};
- var componentDir = '';
- this.set('configsSitesNumber', data.items.length);
- this.set('configsSitesCount', 0);
- data.items.forEach(function (item) {
- configs[item.type] = item.properties;
- }, this);
- switch (componentName) {
- case 'NAMENODE':
- if (isHadoop2Stack) {
- componentDir = configs['hdfs-site']['dfs.namenode.name.dir'];
- configs['hdfs-site']['dfs.namenode.http-address'] = targetHostName + ':50070';
- configs['hdfs-site']['dfs.namenode.https-address'] = targetHostName + ':50470';
- } else {
- componentDir = configs['hdfs-site']['dfs.name.dir'];
- configs['hdfs-site']['dfs.http.address'] = targetHostName + ':50070';
- configs['hdfs-site']['dfs.https.address'] = targetHostName + ':50470';
- }
- configs['core-site']['fs.default.name'] = 'hdfs://' + targetHostName + ':8020';
- configs['hdfs-site']['dfs.safemode.threshold.pct'] = '1.1f';
- if (App.Service.find().someProperty('serviceName', 'HBASE')) {
- configs['hbase-site']['hbase.rootdir'] = configs['hbase-site']['hbase.rootdir'].replace(/\/\/[^\/]*/, '//' + targetHostName);
- }
- break;
- case 'SECONDARY_NAMENODE':
- componentDir = configs['core-site']['fs.checkpoint.dir'];
- configs['hdfs-site']['dfs.secondary.http.address'] = targetHostName + ':50090';
- break;
- case 'JOBTRACKER':
- componentDir = configs['mapred-site']['mapred.local.dir'];
- configs['mapred-site']['mapreduce.history.server.http.address'] = targetHostName + ':51111';
- configs['mapred-site']['mapred.job.tracker.http.address'] = targetHostName + ':50030';
- configs['mapred-site']['mapred.job.tracker'] = targetHostName + ':50300';
- break;
- case 'RESOURCEMANAGER':
- configs['yarn-site']['yarn.resourcemanager.address'] = targetHostName + ':8050';
- configs['yarn-site']['yarn.resourcemanager.admin.address'] = targetHostName + ':8141';
- configs['yarn-site']['yarn.resourcemanager.resource-tracker.address'] = targetHostName + ':8025';
- configs['yarn-site']['yarn.resourcemanager.scheduler.address'] = targetHostName + ':8030';
- configs['yarn-site']['yarn.resourcemanager.webapp.address'] = targetHostName + ':8088';
- configs['yarn-site']['yarn.resourcemanager.hostname'] = targetHostName;
- break;
- }
- if (componentDir) {
- App.router.get(this.get('content.controllerName')).saveComponentDir(componentDir);
- App.clusterStatus.setClusterStatus({
- clusterName: this.get('content.cluster.name'),
- clusterState: this.get('clusterDeployState'),
- wizardControllerName: this.get('content.controllerName'),
- localdb: App.db.data
- });
- }
- for (var site in configs) {
- if (!configs.hasOwnProperty(site)) continue;
- App.ajax.send({
- name: 'reassign.save_configs',
- sender: this,
- data: {
- siteName: site,
- properties: configs[site]
- },
- success: 'onSaveConfigs',
- error: 'onTaskError'
- });
- }
- },
-
- onSaveConfigs: function () {
- this.set('configsSitesCount', this.get('configsSitesCount') + 1);
- if (this.get('configsSitesCount') === this.get('configsSitesNumber')) {
- this.onTaskCompleted();
- }
- },
-
- startServices: function () {
- this.set('multiTaskCounter', 0);
- var serviceNames = this.get('serviceNames');
- for (var i = 0; i < serviceNames.length; i++) {
- App.ajax.send({
- name: 'reassign.start_components',
- sender: this,
- data: {
- serviceName: serviceNames[i],
- displayName: App.Service.find().findProperty('serviceName', serviceNames[i]).get('displayName'),
- taskNum: serviceNames.length
- },
- success: 'startPolling',
- error: 'onTaskError'
- });
- }
- },
-
- deleteHostComponents: function () {
- this.set('multiTaskCounter', 0);
- var hostComponents = this.get('hostComponents');
- var hostName = this.get('content.reassign.host_id');
- for (var i = 0; i < hostComponents.length; i++) {
- App.ajax.send({
- name: 'reassign.remove_component',
- sender: this,
- data: {
- hostName: hostName,
- componentName: hostComponents[i]
- },
- success: 'onComponentsTasksSuccess',
- error: 'onTaskError'
- });
- }
- },
-
- done: function () {
- if (!this.get('isSubmitDisabled')) {
- this.removeObserver('tasks.@each.status', this, 'onTaskStatusChange');
- if (this.get('content.hasManualSteps')) {
- App.router.send('next');
- } else {
- App.router.send('complete');
- }
- }
- }
-})
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/wizard/step14_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step14_controller.js b/ambari-web/app/controllers/wizard/step14_controller.js
deleted file mode 100644
index bc65009..0000000
--- a/ambari-web/app/controllers/wizard/step14_controller.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * 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');
-
-App.WizardStep14Controller = Em.Controller.extend({
-
-})
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/wizard/step15_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step15_controller.js b/ambari-web/app/controllers/wizard/step15_controller.js
deleted file mode 100644
index e5bbe0c..0000000
--- a/ambari-web/app/controllers/wizard/step15_controller.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * 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');
-
-App.WizardStep15Controller = App.HighAvailabilityProgressPageController.extend({
- commands: ['deleteHostComponents', 'startServices'],
-
- clusterDeployState: 'REASSIGN_MASTER_INSTALLING',
-
- initializeTasks: function () {
- var commands = this.get('commands');
- var currentStep = App.router.get('reassignMasterController.currentStep');
- for (var i = 0; i < commands.length; i++) {
- var title = Em.I18n.t('installer.step15.task' + i + '.title').format(App.format.role(this.get('content.reassign.component_name')),
- App.Service.find().findProperty('serviceName', this.get('content.reassign.service_id')).get('displayName'));
- this.get('tasks').pushObject(Ember.Object.create({
- title: title,
- status: 'PENDING',
- id: i,
- command: commands[i],
- showRetry: false,
- showRollback: false,
- name: title,
- displayName: title,
- progress: 0,
- isRunning: false,
- hosts: []
- }));
- }
- },
-
- hideRollbackButton: function () {
- var failedTask = this.get('tasks').findProperty('showRollback');
- if (failedTask) {
- failedTask.set('showRollback', false)
- }
- }.observes('tasks.@each.showRollback'),
-
- startServices: function () {
- var serviceName = this.get('content.reassign.service_id');
- App.ajax.send({
- name: 'reassign.start_components',
- sender: this,
- data: {
- serviceName: serviceName,
- displayName: App.Service.find().findProperty('serviceName', serviceName).get('displayName')
- },
- success: 'startPolling',
- error: 'onTaskError'
- });
- },
-
- deleteHostComponents: function () {
- var hostName = this.get('content.reassign.host_id');
- App.ajax.send({
- name: 'reassign.remove_component',
- sender: this,
- data: {
- hostName: hostName,
- componentName: this.get('content.reassign.component_name')
- },
- success: 'onTaskCompleted',
- error: 'onTaskError'
- });
- }
-})
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/controllers/wizard/step5_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step5_controller.js b/ambari-web/app/controllers/wizard/step5_controller.js
index 7ace88a..2ee3187 100644
--- a/ambari-web/app/controllers/wizard/step5_controller.js
+++ b/ambari-web/app/controllers/wizard/step5_controller.js
@@ -37,19 +37,22 @@ App.WizardStep5Controller = Em.Controller.extend({
return this.get('servicesMasters').objectAt(0) && this.get('servicesMasters').objectAt(0).component_name == 'HIVE_SERVER' && this.get('isReassignWizard');
}.property('isReassignWizard', 'servicesMasters'),
+ /**
+ * Define state for submit button. Return true only for Reassign Master Wizard and if more than one master component was reassigned.
+ */
isSubmitDisabled: function () {
if (!this.get('isReassignWizard')) {
return false;
}
- var reassigned = false;
+ var reassigned = 0;
var arr1 = App.HostComponent.find().filterProperty('componentName', this.get('content.reassign.component_name')).mapProperty('host.hostName');
var arr2 = this.get('servicesMasters').mapProperty('selectedHost');
arr1.forEach(function (host) {
if (!arr2.contains(host)) {
- reassigned = true;
+ reassigned++;
}
}, this);
- return !reassigned;
+ return reassigned !== 1;
}.property('servicesMasters.@each.selectedHost'),
hosts:[],
@@ -222,6 +225,7 @@ App.WizardStep5Controller = Em.Controller.extend({
var showRemoveControlHb = !services.contains('HBASE') && masterComponents.filterProperty('component_name', 'HBASE_MASTER').length > 1;
var zid = 1;
var hid = 1;
+ var nid = 1;
var result = [];
masterComponents.forEach(function (item) {
@@ -235,6 +239,8 @@ App.WizardStep5Controller = Em.Controller.extend({
} else if (App.supports.multipleHBaseMasters && item.component_name === "HBASE_MASTER") {
componentObj.set('zId', hid++);
componentObj.set("showRemoveControl", showRemoveControlHb);
+ } else if (item.component_name === "NAMENODE") {
+ componentObj.set('zId', nid++);
}
componentObj.set("availableHosts", this.get("hosts"));
result.push(componentObj);
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 908ebb3..7b98de4 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -548,54 +548,7 @@ Em.I18n.translations = {
'installer.step10.startStatus.started':'All services started',
'installer.step10.installTime.seconds':'Install and start completed in {0} seconds',
'installer.step10.installTime.minutes':'Install and start completed in {0} minutes and {1} seconds',
- 'installer.step11.header':'Prerequisites',
- 'installer.step12.header':'Review',
- 'installer.step12.body':'Please review the changes you made',
- 'installer.step12.targetHost':'Target Host:',
- 'installer.step12.sourceHost':'Source Host:',
- 'installer.step12.component':'Component name:',
- 'installer.step13.header':'Install, Start and Test',
- 'installer.step13.task0.title':'{1} stop',
- 'installer.step13.task1.title':'{0} create',
- 'installer.step13.task2.title':'{0} disable',
- 'installer.step13.task3.title':'{1} reconfigure',
- 'installer.step13.task4.title':'{0} install',
- 'installer.step13.task5.title':'{1} remove',
- 'installer.step13.task6.title':'{0} start',
- 'installer.step13.status.success': 'Successfully reassigned {0}',
- 'installer.step13.status.success.withManualSteps': 'Proceed to the next step',
- 'installer.step13.status.failed': 'Failed to reassign {0}',
- 'installer.step13.status.info': 'Reassigning {0}. \nPlease wait while all tasks will be completed.',
- 'installer.step13.retry': 'You can click on the Retry or Abort button to retry failed task or abort changes',
- 'installer.step13.abortError': 'Error in aborting changes.',
- 'installer.step14.header': 'Manual commands',
- 'installer.step14.body.namenode': '<ol>' +
- '<li>Copy contents of <b>{0}</b> from source host <b>{1}</b> to the target host <b>{2}</b> same locations</li>' +
- '<li>Login to the target host <b>{2}</b> and change permissions for the NameNode dirs by running:' +
- '<div class="code-snippet">chown -R hdfs:hadoop /hadoop/hdfs/namenode/</div></li>' +
- '<li>Create marker directory by running:' +
- '<div class="code-snippet">mkdir -p /var/run/hadoop/hdfs/namenode/formatted</div></li>' +
- '<li>Proceed next' +
- '</ol>',
- 'installer.step14.body.secondary_namenode': '<ol>' +
- '<li>Copy contents of <b>{0}</b> from source host <b>{1}</b> to the target host <b>{2}</b> same locations</li>' +
- '<li>Login to the target host <b>{2}</b> and change permissions for the SNameNode dirs by running:' +
- '<div class="code-snippet">chown -R hdfs:hadoop /hadoop/hdfs/namesecondary/</div></li>' +
- '<li>Proceed next' +
- '</ol>',
- 'installer.step14.body.jobtracker': '<ol>' +
- '<li>Copy contents of <b>{0}</b> from source host <b>{1}</b> to the target host <b>{2}</b> same locations</li>' +
- '<li>Login to the target host <b>{2}</b> and change permissions for the JobTracker dirs by running:' +
- '<div class="code-snippet">chown -R mapred:hadoop /hadoop/mapred/</div></li>' +
- '<li>Proceed next' +
- '</ol>',
- 'installer.step15.header': 'Install, Start and Test',
- 'installer.step15.task0.title':'{0} remove',
- 'installer.step15.task1.title':'{1} start',
- 'installer.step15.status.success': 'Successfully reassigned {0}',
- 'installer.step15.status.failed': 'Failed to reassign {0}',
- 'installer.step15.status.info': 'Reassigning {0}. \nPlease wait while all tasks will be completed.',
-
+
'installer.stackUpgrade.header':'Stack Upgrade Wizard',
'installer.stackUpgrade.step1.newVersion':'New Version',
'installer.stackUpgrade.step1.installedVersion':'Installed Version',
@@ -1113,6 +1066,55 @@ Em.I18n.translations = {
'services.service.startAll':'Start All',
'services.service.stopAll':'Stop All',
+ 'services.reassign.step1.header':'Prerequisites',
+ 'services.reassign.step2.header':'Assign Masters',
+ 'services.reassign.step3.header':'Review',
+ 'services.reassign.step3.body':'Please review the changes you made',
+ 'services.reassign.step3.targetHost':'Target Host:',
+ 'services.reassign.step3.sourceHost':'Source Host:',
+ 'services.reassign.step3.component':'Component name:',
+ 'services.reassign.step4.header':'Install, Start and Test',
+ 'services.reassign.step4.task0.title':'{1} stop',
+ 'services.reassign.step4.task1.title':'{0} create',
+ 'services.reassign.step4.task2.title':'{0} disable',
+ 'services.reassign.step4.task3.title':'{1} reconfigure',
+ 'services.reassign.step4.task4.title':'{0} install',
+ 'services.reassign.step4.task5.title':'{1} remove',
+ 'services.reassign.step4.task6.title':'{0} start',
+ 'services.reassign.step4.status.success': 'Successfully reassigned {0}',
+ 'services.reassign.step4.status.success.withManualSteps': 'Proceed to the next step',
+ 'services.reassign.step4.status.failed': 'Failed to reassign {0}',
+ 'services.reassign.step4.status.info': 'Reassigning {0}. \nPlease wait while all tasks will be completed.',
+ 'services.reassign.step4.retry': 'You can click on the Retry or Abort button to retry failed task or abort changes',
+ 'services.reassign.step4.abortError': 'Error in aborting changes.',
+ 'services.reassign.step5.header': 'Manual commands',
+ 'services.reassign.step5.body.namenode': '<ol>' +
+ '<li>Copy contents of <b>{0}</b> from source host <b>{1}</b> to the target host <b>{2}</b> same locations</li>' +
+ '<li>Login to the target host <b>{2}</b> and change permissions for the NameNode dirs by running:' +
+ '<div class="code-snippet">chown -R hdfs:hadoop /hadoop/hdfs/namenode/</div></li>' +
+ '<li>Create marker directory by running:' +
+ '<div class="code-snippet">mkdir -p /var/run/hadoop/hdfs/namenode/formatted</div></li>' +
+ '<li>Proceed next' +
+ '</ol>',
+ 'services.reassign.step5.body.secondary_namenode': '<ol>' +
+ '<li>Copy contents of <b>{0}</b> from source host <b>{1}</b> to the target host <b>{2}</b> same locations</li>' +
+ '<li>Login to the target host <b>{2}</b> and change permissions for the SNameNode dirs by running:' +
+ '<div class="code-snippet">chown -R hdfs:hadoop /hadoop/hdfs/namesecondary/</div></li>' +
+ '<li>Proceed next' +
+ '</ol>',
+ 'services.reassign.step5.body.jobtracker': '<ol>' +
+ '<li>Copy contents of <b>{0}</b> from source host <b>{1}</b> to the target host <b>{2}</b> same locations</li>' +
+ '<li>Login to the target host <b>{2}</b> and change permissions for the JobTracker dirs by running:' +
+ '<div class="code-snippet">chown -R mapred:hadoop /hadoop/mapred/</div></li>' +
+ '<li>Proceed next' +
+ '</ol>',
+ 'services.reassign.step6.header': 'Install, Start and Test',
+ 'services.reassign.step6.task0.title':'{0} remove',
+ 'services.reassign.step6.task1.title':'{1} start',
+ 'services.reassign.step6.status.success': 'Successfully reassigned {0}',
+ 'services.reassign.step6.status.failed': 'Failed to reassign {0}',
+ 'services.reassign.step6.status.info': 'Reassigning {0}. \nPlease wait while all tasks will be completed.',
+
/** services page constants **/
'service.hbase.activeMaster': 'Active Master',
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/routes/reassign_master_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/reassign_master_routes.js b/ambari-web/app/routes/reassign_master_routes.js
index addc346..08025d1 100644
--- a/ambari-web/app/routes/reassign_master_routes.js
+++ b/ambari-web/app/routes/reassign_master_routes.js
@@ -71,7 +71,7 @@ module.exports = Em.Route.extend({
controller.setCurrentStep('1');
controller.dataLoading().done(function () {
controller.loadAllPriorSteps();
- controller.connectOutlet('wizardStep11');
+ controller.connectOutlet('reassignMasterWizardStep1');
})
},
next: function (router) {
@@ -88,15 +88,30 @@ module.exports = Em.Route.extend({
controller.setCurrentStep('2');
controller.dataLoading().done(function () {
controller.loadAllPriorSteps();
- controller.connectOutlet('wizardStep5', controller.get('content'));
+ controller.connectOutlet('reassignMasterWizardStep2', controller.get('content'));
})
},
back: Em.Router.transitionTo('step1'),
next: function (router) {
var controller = router.get('reassignMasterController');
- var wizardStep5Controller = router.get('wizardStep5Controller');
- controller.saveMasterComponentHosts(wizardStep5Controller);
+ var reassignMasterWizardStep2 = router.get('reassignMasterWizardStep2Controller');
+ controller.saveMasterComponentHosts(reassignMasterWizardStep2);
+ var reassignHosts = {};
+ var componentName = reassignMasterWizardStep2.get('content.reassign.component_name');
+ var masterAssignmentsHosts = reassignMasterWizardStep2.get('selectedServicesMasters').filterProperty('component_name', componentName).mapProperty('selectedHost');
+ var currentMasterHosts = App.HostComponent.find().filterProperty('componentName', componentName).mapProperty('host.hostName');
+ masterAssignmentsHosts.forEach(function (host) {
+ if (!currentMasterHosts.contains(host)) {
+ reassignHosts.target = host;
+ }
+ }, this);
+ currentMasterHosts.forEach(function (host) {
+ if (!masterAssignmentsHosts.contains(host)) {
+ reassignHosts.source = host;
+ }
+ }, this);
+ controller.saveReassignHosts(reassignHosts);
router.transitionTo('step3');
}
}),
@@ -109,7 +124,7 @@ module.exports = Em.Route.extend({
controller.setCurrentStep('3');
controller.dataLoading().done(function () {
controller.loadAllPriorSteps();
- controller.connectOutlet('wizardStep12', controller.get('content'));
+ controller.connectOutlet('reassignMasterWizardStep3', controller.get('content'));
})
},
back: Em.Router.transitionTo('step2'),
@@ -134,7 +149,7 @@ module.exports = Em.Route.extend({
controller.dataLoading().done(function () {
controller.loadAllPriorSteps();
controller.setLowerStepsDisable(4);
- controller.connectOutlet('wizardStep13', controller.get('content'));
+ controller.connectOutlet('reassignMasterWizardStep4', controller.get('content'));
})
},
next: function (router) {
@@ -150,8 +165,8 @@ module.exports = Em.Route.extend({
complete: function (router) {
var controller = router.get('reassignMasterController');
- var wizardStep13Controller = router.get('wizardStep13Controller');
- if (!wizardStep13Controller.get('isSubmitDisabled')) {
+ var reassignMasterWizardStep4 = router.get('reassignMasterWizardStep4Controller');
+ if (!reassignMasterWizardStep4.get('isSubmitDisabled')) {
controller.finish();
controller.get('popup').hide();
App.clusterStatus.setClusterStatus({
@@ -178,7 +193,7 @@ module.exports = Em.Route.extend({
controller.dataLoading().done(function () {
controller.loadAllPriorSteps();
controller.setLowerStepsDisable(5);
- controller.connectOutlet('wizardStep14', controller.get('content'));
+ controller.connectOutlet('reassignMasterWizardStep5', controller.get('content'));
})
},
next: Em.Router.transitionTo('step6'),
@@ -197,14 +212,14 @@ module.exports = Em.Route.extend({
controller.dataLoading().done(function () {
controller.loadAllPriorSteps();
controller.setLowerStepsDisable(6);
- controller.connectOutlet('wizardStep15', controller.get('content'));
+ controller.connectOutlet('reassignMasterWizardStep6', controller.get('content'));
})
},
next: function (router) {
var controller = router.get('reassignMasterController');
- var wizardStep15Controller = router.get('wizardStep15Controller');
- if (!wizardStep15Controller.get('isSubmitDisabled')) {
+ var reassignMasterWizardStep6 = router.get('reassignMasterWizardStep6Controller');
+ if (!reassignMasterWizardStep6.get('isSubmitDisabled')) {
controller.finish();
controller.get('popup').hide();
App.clusterStatus.setClusterStatus({
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/templates/main/admin/highAvailability/progress.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/admin/highAvailability/progress.hbs b/ambari-web/app/templates/main/admin/highAvailability/progress.hbs
index 81aa7b1..59102b3 100644
--- a/ambari-web/app/templates/main/admin/highAvailability/progress.hbs
+++ b/ambari-web/app/templates/main/admin/highAvailability/progress.hbs
@@ -22,7 +22,7 @@
{{#each task in controller.tasks}}
{{#view view.taskView contentBinding="task"}}
<div class="item">
- <div {{bindAttr class=":pull-left view.linkClass controller.isRollback::span4 controller.isRollback:span3"}}>
+ <div {{bindAttr class=":pull-left view.linkClass controller.isHA:span4 controller.isRollback:span3 controller.isReassign:span5"}}>
<i {{bindAttr class="view.icon view.iconColor"}}></i>
<a {{bindAttr class=""}} {{action "hostsLogPopup" task target="view"}} >{{task.title}}</a>
</div>
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/templates/main/service/reassign.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/service/reassign.hbs b/ambari-web/app/templates/main/service/reassign.hbs
index 656d5ba..45ab9c7 100644
--- a/ambari-web/app/templates/main/service/reassign.hbs
+++ b/ambari-web/app/templates/main/service/reassign.hbs
@@ -25,13 +25,13 @@
<div class="well">
<ul class="nav nav-pills nav-stacked">
<li class="nav-header">{{t services.reassign.header}}</li>
- <li {{bindAttr class="isStep1:active view.isStep1Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep1 target="controller"}}>{{t installer.step11.header}}</a></li>
- <li {{bindAttr class="isStep2:active view.isStep2Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep2 target="controller"}}>{{t installer.step5.reassign.header}}</a></li>
- <li {{bindAttr class="isStep3:active view.isStep3Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep3 target="controller"}}>{{t installer.step12.header}}</a></li>
- <li {{bindAttr class="isStep4:active view.isStep4Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep4 target="controller"}}>{{t installer.step13.header}}</a></li>
+ <li {{bindAttr class="isStep1:active view.isStep1Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep1 target="controller"}}>{{t services.reassign.step1.header}}</a></li>
+ <li {{bindAttr class="isStep2:active view.isStep2Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep2 target="controller"}}>{{t services.reassign.step2.header}}</a></li>
+ <li {{bindAttr class="isStep3:active view.isStep3Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep3 target="controller"}}>{{t services.reassign.step3.header}}</a></li>
+ <li {{bindAttr class="isStep4:active view.isStep4Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep4 target="controller"}}>{{t services.reassign.step4.header}}</a></li>
{{#if controller.content.hasManualSteps}}
- <li {{bindAttr class="isStep5:active view.isStep5Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep3 target="controller"}}>{{t installer.step14.header}}</a></li>
- <li {{bindAttr class="isStep6:active view.isStep6Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep4 target="controller"}}>{{t installer.step15.header}}</a></li>
+ <li {{bindAttr class="isStep5:active view.isStep5Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep3 target="controller"}}>{{t services.reassign.step5.header}}</a></li>
+ <li {{bindAttr class="isStep6:active view.isStep6Disabled:disabled"}}><a href="javascript:void(null);" {{action gotoStep4 target="controller"}}>{{t services.reassign.step6.header}}</a></li>
{{/if}}
</ul>
</div>
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/templates/main/service/reassign/step1.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/service/reassign/step1.hbs b/ambari-web/app/templates/main/service/reassign/step1.hbs
new file mode 100644
index 0000000..d7ca986
--- /dev/null
+++ b/ambari-web/app/templates/main/service/reassign/step1.hbs
@@ -0,0 +1,22 @@
+{{!
+* 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>{{t services.reassign.step1.header}}</h2>
+<div class="btn-area">
+ <a class="btn btn-success pull-right" {{bindAttr disabled="isSubmitDisabled"}} {{action next}}>{{t common.next}} →</a>
+</div>
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/templates/main/service/reassign/step3.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/service/reassign/step3.hbs b/ambari-web/app/templates/main/service/reassign/step3.hbs
new file mode 100644
index 0000000..2eb85a8
--- /dev/null
+++ b/ambari-web/app/templates/main/service/reassign/step3.hbs
@@ -0,0 +1,41 @@
+{{!
+* 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>{{t services.reassign.step3.header}}</h2>
+
+<div class="alert alert-info">
+ {{t services.reassign.step3.body}}
+</div>
+
+<div id="step8-content" class="well pre-scrollable">
+ <div id="printReview">
+ <a class="btn btn-info pull-right" {{action printReview target="view"}}>{{t common.print}}</a> <br/>
+ </div>
+ <div id="step8-info">
+ <p><b>{{t services.reassign.step3.component}}</b> {{controller.content.reassign.display_name}}</p>
+
+ <p><b>{{t services.reassign.step3.sourceHost}}</b> {{view.sourceHost}}</p>
+
+ <p><b>{{t services.reassign.step3.targetHost}}</b> {{view.targetHost}}</p>
+ </div>
+</div>
+<div class="btn-area">
+ <a class="btn pull-left" {{action back href="true"}}>← {{t common.back}}</a>
+ <a class="btn btn-success pull-right"
+ id="spinner" {{bindAttr disabled="controller.isSubmitDisabled"}} {{action next}}>{{t common.deploy}} →</a>
+</div>
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/templates/main/service/reassign/step4.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/service/reassign/step4.hbs b/ambari-web/app/templates/main/service/reassign/step4.hbs
new file mode 100644
index 0000000..defea53
--- /dev/null
+++ b/ambari-web/app/templates/main/service/reassign/step4.hbs
@@ -0,0 +1,18 @@
+{{!
+* 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.
+}}
+{{template "templates/main/admin/highAvailability/progress"}}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/templates/main/service/reassign/step5.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/service/reassign/step5.hbs b/ambari-web/app/templates/main/service/reassign/step5.hbs
new file mode 100644
index 0000000..b46de44
--- /dev/null
+++ b/ambari-web/app/templates/main/service/reassign/step5.hbs
@@ -0,0 +1,25 @@
+{{!
+* 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>{{t services.reassign.step5.header}}</h2>
+<div class="alert alert-info">
+ {{{view.bodyText}}}
+</div>
+<div class="btn-area">
+ <a class="btn btn-success pull-right" {{bindAttr disabled="isSubmitDisabled"}} {{action next}}>{{t common.next}} →</a>
+</div>
+
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/templates/main/service/reassign/step6.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/main/service/reassign/step6.hbs b/ambari-web/app/templates/main/service/reassign/step6.hbs
new file mode 100644
index 0000000..defea53
--- /dev/null
+++ b/ambari-web/app/templates/main/service/reassign/step6.hbs
@@ -0,0 +1,18 @@
+{{!
+* 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.
+}}
+{{template "templates/main/admin/highAvailability/progress"}}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/templates/wizard/step11.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/wizard/step11.hbs b/ambari-web/app/templates/wizard/step11.hbs
deleted file mode 100644
index 5127cc2..0000000
--- a/ambari-web/app/templates/wizard/step11.hbs
+++ /dev/null
@@ -1,22 +0,0 @@
-{{!
-* 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>{{t installer.step11.header}}</h2>
-<div class="btn-area">
- <a class="btn btn-success pull-right" {{bindAttr disabled="isSubmitDisabled"}} {{action next}}>{{t common.next}} →</a>
-</div>
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/templates/wizard/step12.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/wizard/step12.hbs b/ambari-web/app/templates/wizard/step12.hbs
deleted file mode 100644
index ecd8fe6..0000000
--- a/ambari-web/app/templates/wizard/step12.hbs
+++ /dev/null
@@ -1,41 +0,0 @@
-{{!
-* 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>{{t installer.step12.header}}</h2>
-
-<div class="alert alert-info">
- {{t installer.step12.body}}
-</div>
-
-<div id="step8-content" class="well pre-scrollable">
- <div id="printReview">
- <a class="btn btn-info pull-right" {{action printReview target="view"}}>{{t common.print}}</a> <br/>
- </div>
- <div id="step8-info">
- <p><b>{{t installer.step12.component}}</b> {{controller.content.reassign.display_name}}</p>
-
- <p><b>{{t installer.step12.sourceHost}}</b> {{view.sourceHost}}</p>
-
- <p><b>{{t installer.step12.targetHost}}</b> {{view.targetHost}}</p>
- </div>
-</div>
-<div class="btn-area">
- <a class="btn pull-left" {{action back href="true"}}>← {{t common.back}}</a>
- <a class="btn btn-success pull-right"
- id="spinner" {{bindAttr disabled="controller.isSubmitDisabled"}} {{action next}}>{{t common.deploy}} →</a>
-</div>
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/templates/wizard/step13.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/wizard/step13.hbs b/ambari-web/app/templates/wizard/step13.hbs
deleted file mode 100644
index defea53..0000000
--- a/ambari-web/app/templates/wizard/step13.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
-* 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.
-}}
-{{template "templates/main/admin/highAvailability/progress"}}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/templates/wizard/step14.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/wizard/step14.hbs b/ambari-web/app/templates/wizard/step14.hbs
deleted file mode 100644
index ac0ee32..0000000
--- a/ambari-web/app/templates/wizard/step14.hbs
+++ /dev/null
@@ -1,25 +0,0 @@
-{{!
-* 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>{{t installer.step14.header}}</h2>
-<div class="alert alert-info">
- {{{view.bodyText}}}
-</div>
-<div class="btn-area">
- <a class="btn btn-success pull-right" {{bindAttr disabled="isSubmitDisabled"}} {{action next}}>{{t common.next}} →</a>
-</div>
-
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/templates/wizard/step15.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/wizard/step15.hbs b/ambari-web/app/templates/wizard/step15.hbs
deleted file mode 100644
index defea53..0000000
--- a/ambari-web/app/templates/wizard/step15.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-{{!
-* 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.
-}}
-{{template "templates/main/admin/highAvailability/progress"}}
http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/a0dd6770/ambari-web/app/utils/db.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/db.js b/ambari-web/app/utils/db.js
index 48308fc..ebad01f 100644
--- a/ambari-web/app/utils/db.js
+++ b/ambari-web/app/utils/db.js
@@ -418,6 +418,12 @@ App.db.setReassignMasterWizardComponentDir = function (componentDir) {
localStorage.setObject('ambari', App.db.data);
};
+App.db.setReassignMasterWizardReassignHosts = function (reassignHosts) {
+ App.db.data = localStorage.getObject('ambari');
+ App.db.data.ReassignMaster.reassignHosts = reassignHosts;
+ localStorage.setObject('ambari', App.db.data);
+};
+
/*
* getter methods
*/
@@ -686,4 +692,9 @@ App.db.getReassignMasterWizardComponentDir = function () {
return App.db.data.ReassignMaster.componentDir;
};
+App.db.getReassignMasterWizardReassignHosts = function () {
+ App.db.data = localStorage.getObject('ambari');
+ return App.db.data.ReassignMaster.reassignHosts;
+};
+
module.exports = App.db;