|
@@ -19,53 +19,58 @@
|
|
|
*
|
|
|
*/
|
|
|
|
|
|
-function ClustersList() {
|
|
|
-
|
|
|
- var managerHostName;
|
|
|
-
|
|
|
+function ClustersList() {
|
|
|
+
|
|
|
+ var managerHostName = '';
|
|
|
+
|
|
|
function populateHostToMasterRoleMapping(clusterServices, hostMap) {
|
|
|
-
|
|
|
+
|
|
|
+ var hostName;
|
|
|
+
|
|
|
for (var serviceName in clusterServices) {
|
|
|
if (clusterServices.hasOwnProperty(serviceName)) {
|
|
|
-
|
|
|
- if (clusterServices[serviceName].isEnabled == "1" &&
|
|
|
- clusterServices[serviceName].attributes.runnable &&
|
|
|
- !clusterServices[serviceName].attributes.noDisplay) {
|
|
|
-
|
|
|
+
|
|
|
+ if (clusterServices[serviceName].isEnabled == "1" &&
|
|
|
+ clusterServices[serviceName].attributes.runnable &&
|
|
|
+ !clusterServices[serviceName].attributes.noDisplay) {
|
|
|
+
|
|
|
globalYui.Array.each( clusterServices[serviceName].components, function (serviceComponent) {
|
|
|
if (serviceComponent.isMaster) {
|
|
|
// just add the master to the hostname object
|
|
|
for (var i in serviceComponent.hostNames) {
|
|
|
- var hostName = serviceComponent.hostNames[i];
|
|
|
+ hostName = serviceComponent.hostNames[i];
|
|
|
if ( !( hostName in hostMap ) ) {
|
|
|
- hostMap[hostName] = new Array();
|
|
|
- hostMap[hostName].push({ serviceName: serviceComponent.displayName, isMaster: true });
|
|
|
- } else {
|
|
|
- hostMap[hostName].push({ serviceName: serviceComponent.displayName, isMaster: true });
|
|
|
+ hostMap[hostName] = [];
|
|
|
}
|
|
|
+ hostMap[hostName].push({ serviceName: serviceComponent.displayName, isMaster: true });
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ hostName = managerHostName;
|
|
|
+ if (!(hostName in hostMap)) {
|
|
|
+ hostMap[hostName] = [];
|
|
|
+ }
|
|
|
+ hostMap[hostName].push({ serviceName: App.Props.managerServiceName + ' Server', isMaster: true });
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
function populateHostToClientRoleMapping(clusterServices, hostMap) {
|
|
|
-
|
|
|
+
|
|
|
for (var serviceName in clusterServices) {
|
|
|
if (clusterServices.hasOwnProperty(serviceName)) {
|
|
|
-
|
|
|
- if (clusterServices[serviceName].isEnabled == "1" &&
|
|
|
- !clusterServices[serviceName].attributes.noDisplay) {
|
|
|
-
|
|
|
- globalYui.Array.each( clusterServices[serviceName].components, function (serviceComponent) {
|
|
|
+
|
|
|
+ if (clusterServices[serviceName].isEnabled == "1" &&
|
|
|
+ !clusterServices[serviceName].attributes.noDisplay) {
|
|
|
+
|
|
|
+ globalYui.Array.each( clusterServices[serviceName].components, function (serviceComponent) {
|
|
|
if (serviceComponent.isClient) {
|
|
|
// just add the client to the hostname object
|
|
|
for (var i in serviceComponent.hostNames) {
|
|
|
var hostName = serviceComponent.hostNames[i];
|
|
|
if ( !( hostName in hostMap ) ) {
|
|
|
- hostMap[hostName] = new Array();
|
|
|
+ hostMap[hostName] = [];
|
|
|
hostMap[hostName].push({ serviceName: serviceComponent.displayName, isMaster: false });
|
|
|
} else {
|
|
|
hostMap[hostName].push({ serviceName: serviceComponent.displayName, isMaster: false });
|
|
@@ -77,40 +82,37 @@ function ClustersList() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
function generateHostRoleMappingMarkup( clusterServices ) {
|
|
|
-
|
|
|
+
|
|
|
var hostMap = {};
|
|
|
var markup = '';
|
|
|
-
|
|
|
- populateHostToMasterRoleMapping(clusterServices, hostMap);
|
|
|
+
|
|
|
+ populateHostToMasterRoleMapping(clusterServices, hostMap);
|
|
|
populateHostToClientRoleMapping(clusterServices, hostMap);
|
|
|
-
|
|
|
+
|
|
|
markup += '<div>';
|
|
|
for (var hostName in hostMap) {
|
|
|
markup += '<div class="hostToServices clearfix"><h3>' + hostName + '</h3>' + '<ul>';
|
|
|
- if (hostName == managerHostName) {
|
|
|
- markup += '<li class="master">' + App.Props.managerServiceName + ' Server</li>';
|
|
|
- }
|
|
|
for (var service in hostMap[hostName]) {
|
|
|
markup += '<li class="' + ((hostMap[hostName][service].isMaster) ? 'master' : 'client') + '">' + hostMap[hostName][service].serviceName + '</li>';
|
|
|
}
|
|
|
markup += '</ul></div>';
|
|
|
}
|
|
|
markup += '</div>';
|
|
|
-
|
|
|
+
|
|
|
return markup;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
this.render = function() {
|
|
|
-
|
|
|
+
|
|
|
globalYui.io("../php/frontend/listClusters.php", {
|
|
|
method: 'GET',
|
|
|
timeout : 10000,
|
|
|
on: {
|
|
|
success: function (x,o) {
|
|
|
globalYui.log("RAW JSON DATA: " + o.responseText);
|
|
|
-
|
|
|
+
|
|
|
// Process the JSON data returned from the server
|
|
|
try {
|
|
|
clusterListInfoJson = globalYui.JSON.parse(o.responseText);
|
|
@@ -119,21 +121,21 @@ function ClustersList() {
|
|
|
alert("JSON Parse failed!");
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
globalYui.log("PARSED DATA: " + globalYui.Lang.dump(clusterListInfoJson));
|
|
|
-
|
|
|
+
|
|
|
if (clusterListInfoJson.result != 0) {
|
|
|
// Error!
|
|
|
- alert("Got error!" + clusterListInfoJson.error);
|
|
|
+ alert("Got error!" + clusterListInfoJson.error);
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
- clusterListInfoJson = clusterListInfoJson.response;
|
|
|
+
|
|
|
+ clusterListInfoJson = clusterListInfoJson.response;
|
|
|
var numClusters = clusterListInfoJson.length;
|
|
|
var clustersListMarkup;
|
|
|
var clusterId;
|
|
|
var multipleClustersSupported = false;
|
|
|
-
|
|
|
+
|
|
|
if (numClusters == 0) {
|
|
|
clustersListMarkup = "";
|
|
|
} else {
|
|
@@ -141,7 +143,7 @@ function ClustersList() {
|
|
|
clustersListMarkup = "<table>" +
|
|
|
"<caption>List of clusters</caption>" +
|
|
|
"<thead><tr><th>Name of the cluster</th><th>Cluster status</th><th>Actions</th></tr></thead>";
|
|
|
- var i = 0;
|
|
|
+
|
|
|
for (clusterId in clusterListInfoJson) {
|
|
|
clustersListMarkup += "<tr><td><a href='manageServices.php?clusterId=" + clusterId + "' id='existingClusterLinkDivId'>" + clusterId + "</a></td><td>" + clusterListInfoJson[clusterId] + "</td><td>Uninstall</td></tr>" ;
|
|
|
}
|
|
@@ -155,25 +157,25 @@ function ClustersList() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
var newClusterLinkHTML = "";
|
|
|
if (multipleClustersSupported || numClusters == 0) {
|
|
|
document.location.href = "/hmc/html/welcome.php";
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/* Beginning of adding Role Topology information. */
|
|
|
globalYui.io( "../php/frontend/fetchClusterServices.php?clusterName=" + clusterName + "&getConfigs=true&getComponents=true", {
|
|
|
timeout: 10000,
|
|
|
on: {
|
|
|
success: function(x1, o1) {
|
|
|
-
|
|
|
+
|
|
|
hideLoadingImg();
|
|
|
-
|
|
|
+
|
|
|
globalYui.log("RAW JSON DATA: " + o1.responseText);
|
|
|
-
|
|
|
+
|
|
|
var clusterServicesResponseJson;
|
|
|
-
|
|
|
+
|
|
|
try {
|
|
|
clusterServicesResponseJson = globalYui.JSON.parse(o1.responseText);
|
|
|
}
|
|
@@ -181,27 +183,27 @@ function ClustersList() {
|
|
|
alert("JSON Parse failed");
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
managerHostName = clusterServicesResponseJson.response.managerHostName;
|
|
|
-
|
|
|
+
|
|
|
globalYui.log(globalYui.Lang.dump(clusterServicesResponseJson));
|
|
|
-
|
|
|
+
|
|
|
/* Check that clusterServicesResponseJson actually indicates success. */
|
|
|
if( clusterServicesResponseJson.result == 0 ) {
|
|
|
-
|
|
|
+
|
|
|
var clusterServices = clusterServicesResponseJson.response.services;
|
|
|
-
|
|
|
+
|
|
|
var markup =
|
|
|
'<div class="clearfix">' +
|
|
|
'<h2>Cluster: ' + clusterName + '</h2>' +
|
|
|
- '<div id="serviceLegend">' +
|
|
|
- '<span class="masterLegend">Master</span><span class="clientLegend" style="margin-right:0">Client</span>' +
|
|
|
- '</div>' +
|
|
|
+ '<div id="serviceLegend">' +
|
|
|
+ '<span class="masterLegend">Master</span><span class="clientLegend" style="margin-right:0">Client</span>' +
|
|
|
+ '</div>' +
|
|
|
'</div>' +
|
|
|
- '</div>';
|
|
|
-
|
|
|
+ '</div>';
|
|
|
+
|
|
|
globalYui.one("#clusterHostRoleMappingDynamicRenderDivId").setContent(
|
|
|
- markup + generateHostRoleMappingMarkup(clusterServices) );
|
|
|
+ markup + generateHostRoleMappingMarkup(clusterServices) );
|
|
|
globalYui.one("#clusterHostRoleMappingDivId").show();
|
|
|
}
|
|
|
else {
|
|
@@ -215,18 +217,18 @@ function ClustersList() {
|
|
|
}
|
|
|
});
|
|
|
/* End of adding Role Topology information. */
|
|
|
-
|
|
|
+
|
|
|
globalYui.one("#clustersListDivId").setContent( clustersListMarkup );
|
|
|
globalYui.one("#clustersListDivId").setStyle('display', 'block');
|
|
|
-
|
|
|
+
|
|
|
if (globalYui.one('#newClusterLinkDivId') != null) {
|
|
|
globalYui.one('#newClusterLinkDivId').on('click',function (e) {
|
|
|
/* Done with this stage, hide it. */
|
|
|
globalYui.one("#clustersListDivId").setStyle('display','none');
|
|
|
// globalYui.one("#installationWizardDivId").setStyle('display','block');
|
|
|
- });
|
|
|
+ });
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
},
|
|
|
failure: function (x,o) {
|
|
|
// e.target.set('disabled', false);
|