package ee.elinyo.teamcity.plugins.ansible.logparser.domain;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HostRecap {
private static final Pattern HOST_RECAP_LINE_PATTERN = Pattern
.compile("^([^:\\s]+)\\s*:\\s+ok=(\\d+)\\s+changed=(\\d+)\\s+unreachable=(\\d+)\\s+failed=(\\d+).*");
private String hostName;
private Map<String, Integer> statusSummary = new HashMap<String, Integer>();
public static HostRecap fromOutputLine(String line) {
Matcher matcher = HOST_RECAP_LINE_PATTERN.matcher(line);
HostRecap hr = null;
if (matcher.find()) {
hr = new HostRecap();
hr.hostName = matcher.group(1);
hr.statusSummary.put("ok", Integer.valueOf(matcher.group(2)));
hr.statusSummary.put("changed", Integer.valueOf(matcher.group(3)));
hr.statusSummary.put("unreachable", Integer.valueOf(matcher.group(4)));
hr.statusSummary.put("failed", Integer.valueOf(matcher.group(5)));
}
return hr;
}
public String getHostName() {
return hostName;
}
public void setHostName(String hostName) {
this.hostName = hostName;
}
public Map<String, Integer> getStatusSummary() {
return statusSummary;
}
public void setStatusSummary(Map<String, Integer> statusSummary) {
this.statusSummary = statusSummary;
}
}