package org.hyperic.hq.plugin.exchange;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class ExchangeDagDetector {
private static final Log log = LogFactory.getLog(ExchangeDagDetector.class);
public static String getDagName(String exchangeInstallDir,String platformName, int timeout) {
String[] command = new String[] { ExchangeUtils.POWERSHELL_COMMAND, "-command",
"\". '" +
exchangeInstallDir +
"\\bin\\RemoteExchange.ps1'; Connect-ExchangeServer -auto ; Get-DatabaseAvailabilityGroup\""};
String commandOutput = ExchangeUtils.runCommand(command,timeout);
log.debug("DAG after run command. Output: " + commandOutput);
String dagName = getDagNameFromCommandOutput(commandOutput, platformName);
return dagName;
}
private static String getDagNameFromCommandOutput(String commandOutput, String platformName) {
Pattern dagNamePattern = Pattern.compile("^(\\S+)\\s+\\{(.*)\\}",
Pattern.MULTILINE);
Matcher matcher = dagNamePattern.matcher(commandOutput);
while(matcher.find()) {
String dagName = matcher.group(1);
String platforms = matcher.group(2);
log.debug("Dag name: " + dagName + " Platforms: " + platforms);
String[] platformsArray = platforms.split(",");
for(String platform : platformsArray) {
if(platformName.equalsIgnoreCase(platform.trim())) {
log.debug("Found DAG name: " + dagName);
return dagName;
}
}
}
log.debug("Didn't find DAG name");
return null;
}
}