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: