| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99 |
1
1
1
1
1
1
2
2
1
1
2
2
1
1
1
1
1
1
1
2
2
2
2
2
| 'use strict';
;require.register("controllers/main/admin/highAvailability/journalNode/step4_controller", function (exports, require, module) {
/**
* 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.ManageJournalNodeWizardStep4Controller = App.ManageJournalNodeProgressPageController.extend({
name: 'manageJournalNodeWizardStep4Controller',
clusterDeployState: 'JOURNALNODE_MANAGEMENT',
tasksMessagesPrefix: 'admin.manageJournalNode.wizard.step',
commands: ['stopStandbyNameNode', 'stopAllServices', 'installJournalNodes', 'deleteJournalNodes', 'reconfigureHDFS'],
hdfsSiteTag: "",
stopStandbyNameNode: function stopStandbyNameNode() {
// save who's active and who's standby at this point in time
var hostName = this.get('content.standByNN.host_name');
this.updateComponent('NAMENODE', hostName, 'HDFS', 'INSTALLED');
},
stopAllServices: function stopAllServices() {
this.stopServices([], true, true);
},
installJournalNodes: function installJournalNodes() {
var hostNames = App.router.get('manageJournalNodeWizardController').getJournalNodesToAdd();
if (hostNames && hostNames.length > 0) {
this.createInstallComponentTask('JOURNALNODE', hostNames, "HDFS");
} else {
this.onTaskCompleted();
}
},
deleteJournalNodes: function deleteJournalNodes() {
var hosts = App.router.get('manageJournalNodeWizardController').getJournalNodesToDelete();
if (hosts && hosts.length > 0) {
hosts.forEach(function (host) {
this.deleteComponent('JOURNALNODE', host);
}, this);
} else {
this.onTaskCompleted();
}
},
reconfigureHDFS: function reconfigureHDFS() {
this.updateConfigProperties(this.get('content.serviceConfigProperties'));
},
/**
* Update service configurations
* @param {Object} data - config object to update
*/
updateConfigProperties: function updateConfigProperties(data) {
var siteNames = ['hdfs-site'];
var configData = this.reconfigureSites(siteNames, data, Em.I18n.t('admin.manageJournalNode.step4.save.configuration.note').format(App.format.role('NAMENODE', false)));
App.ajax.send({
name: 'common.service.configurations',
sender: this,
data: {
desired_config: configData
},
success: 'installHDFSClients',
error: 'onTaskError'
});
},
installHDFSClients: function installHDFSClients() {
var nnHostNames = this.get('content.masterComponentHosts').filterProperty('component', 'NAMENODE').mapProperty('hostName');
var jnHostNames = this.get('content.masterComponentHosts').filterProperty('component', 'JOURNALNODE').mapProperty('hostName');
var hostNames = nnHostNames.concat(jnHostNames).uniq();
this.createInstallComponentTask('HDFS_CLIENT', hostNames, 'HDFS');
App.clusterStatus.setClusterStatus({
clusterName: this.get('content.cluster.name'),
clusterState: 'JOURNALNODE_MANAGEMENT',
wizardControllerName: this.get('content.controllerName'),
localdb: App.db.data
});
}
});
}); |