importPackage(java.util);
importPackage(com.cloupia.model.cIM);
importPackage(com.cloupia.service.cIM.inframgr);
importPackage(java.lang);
importPackage(com.cloupia.feature.emcVnxController.blockTabularReports);
importPackage(com.cloupia.lib.cIaaS.emc.vnx.model);
importPackage(com.cloupia.lib.cIaaS.emc);
importPackage(com.cloupia.lib.cIaaS.vnxCLI);
function getAccountName(clusterName) {
var clusterList = InfraPersistenceUtil.getAllVMwareClusters();
for (var i = 0; i < clusterList.length; i++) {
var vmWareCluster = clusterList[i];
if(clusterName.equals(vmWareCluster.getClusterName())){
return vmWareCluster.getAccountName();
}
}
return null;
}
logger.addInfo("Cluster name "+input.cluster_name);
var clusterName = input.cluster_name;
var accountName = getAccountName(clusterName);
var host = InfraPersistenceUtil.getVMWareHostsByCluster(accountName,clusterName);
var hostIdentityBuf = new StringBuffer();
var nasBuf = new StringBuffer();
var storageGroupBuf = new StringBuffer();
var hostNameBuf = new StringBuffer();
var strGrpIdentityBuf = new StringBuffer();
for (var i = 0; i < host.length; i++) {
hostName = host[i].getHostName();
logger.addInfo("HostName "+hostName);
var identity = new VMWareHostNodeIdentity(accountName, hostName);
hostIdentityBuf.append(identity.getIdentityKey());
nasBuf.append(hostName+"@"+accountName);
hostNameBuf.append(hostName);
if((i+1) != host.length){
hostIdentityBuf.append(",");
nasBuf.append(",");
hostNameBuf.append(",");
}
}
var subList = VnxBlockStorageGroupTabularReport.getAllEMCVNXClariionStorageGroups();
var hostHBAmap = new HashMap();
for (var j = 0; j < subList.size(); j++) {
var group = subList.get(j);
var hostNames = hostNameBuf.toString();
var hostArr = hostNames.split(",");
for (var i = 0; i < hostArr.length; i++) {
var initList = VnxPersistenceUtil.getEMCVNXInitiatorsByHostIP(group.getDcName(), group.getAccountName(), hostArr[i]);
if(initList != null){
if(initList.size()>0){
hostHBAmap.put(hostArr[i], initList);
}
}
}
}
logger.addInfo("Map size is "+hostHBAmap.size());
var emcStrGrp = new HashSet();
var iter = hostHBAmap.keySet().iterator();
while(iter.hasNext()) {
var key = iter.next();
var val = hostHBAmap.get(key);
for (var i = 0; i < val.size(); i++) {
emcStrGrp.add(val.get(i).getCliStorageGroupName());
}
}
logger.addInfo("Storage Groups"+emcStrGrp.toString());
var emcStrGrpList = new ArrayList(emcStrGrp);
var isFirstEntry = true;
for (var j = 0; j < subList.size(); j++) {
var group = subList.get(j);
var strName =group.getName();
if(emcStrGrpList.contains(strName)){
strGrpIdentityBuf.append(group.getIdentityKey());
if((j+1) != subList.size()){
strGrpIdentityBuf.append(",");
}
}
}
logger.addInfo("Storage group identities "+strGrpIdentityBuf.toString());
output.HOST_NAMES = hostIdentityBuf.toString();
output.HOST_NAME_FOR_NAS_STORAGE = nasBuf.toString();;
output.OUTPUT_STORAGE_GROUPS_IDENTITY = strGrpIdentityBuf.toString();
Additional Links: