+ ngEntity.getName());
logger.debug("system disk storage name pattern is "
+ systemDiskStoreNames + " for node group " + ngEntity.getName());
logger.debug("data disk storage name pattern is " + dataDiskStoreNames
+ " for node group " + ngEntity.getName());
StorageRead storage = new StorageRead();
group.setStorage(storage);
storage.setSizeGB(storageSize);
if (storageType != null) {
storage.setType(storageType.toString().toLowerCase());
}
if (systemDiskStoreNames != null && !systemDiskStoreNames.isEmpty())
storage.setImagestoreNamePattern(getDatastoreNamePattern(storageType,
systemDiskStoreNames));
else
storage.setImagestoreNamePattern(getDatastoreNamePattern(storageType,
storeNames));
if (dataDiskStoreNames != null && !dataDiskStoreNames.isEmpty())
storage.setDiskstoreNamePattern(getDatastoreNamePattern(storageType,
dataDiskStoreNames));
else
storage.setDiskstoreNamePattern(getDatastoreNamePattern(storageType,
storeNames));
storage.setShares(ngEntity.getCluster().getIoShares());
// set storage split policy based on group roles
SoftwareManager softwareManager =
getSoftwareManager(ngEntity.getCluster().getAppManager());
if (softwareManager.twoDataDisksRequired(group.toNodeGroupInfo())) {
logger.debug("use bi_sector disk layout for zookeeper only group.");
storage.setSplitPolicy(DiskSplitPolicy.BI_SECTOR);
} else {
if (storage.getType().equalsIgnoreCase(DatastoreType.LOCAL.toString())) {
logger.debug("use even split disk layout for local datastore.");
storage.setSplitPolicy(DiskSplitPolicy.EVEN_SPLIT);
} else {
logger.debug("use aggregate split disk layout.");
storage.setSplitPolicy(DiskSplitPolicy.AGGREGATE);
}
}
// set disk scsi controller type
setDiskAttributes(storageType, storage, storeNames);