ApiStackServiceList stackServiceList =
apiManager.getStackWithCompAndConfigs(clusterDef.getAmStack()
.getName(), clusterDef.getAmStack().getVersion());
Map<String, String> configTypeToService = stackServiceList.configTypeToService();
Map<String, ApiComponentInfo> componentToInfo = stackServiceList.componentToInfo();
ApiHostComponents apiHostComponents = null;
Set<String> serviceNames = getExistingClusterServices(clusterDef);
List<String> targetHostNames = new ArrayList<>();
List<AmNodeDef> targetNodeDefs = new ArrayList<>();
for (AmNodeDef nodeDef : clusterDef.getNodes()) {
if (addedNodeNames.contains(nodeDef.getName())) {
if (apiHostComponents == null) {
apiHostComponents =
createHostComponents(componentToInfo, serviceNames,
nodeDef);
}
targetHostNames.add(nodeDef.getFqdn());
targetNodeDefs.add(nodeDef);
}
}
removeHosts(clusterDef, targetHostNames, reports);
apiManager.addHostsToCluster(clusterDef.getName(), targetHostNames);
if (apiHostComponents.getHostComponents().isEmpty()) {
logger.info("No roles need to install on hosts.");
return true;
}
// add configurations
createConfigGroups(clusterDef, configTypeToService, targetNodeDefs);