package ee.elinyo.teamcity.plugins.ansible.logparser.domain;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HostResult {
private static final Pattern HOST_RESULT_FIRST_LINE_PATTERN = Pattern
.compile("^([a-z]+):\\s+\\Q[\\E(.+)\\Q]\\E\\s*(.+)?");
private String hostName;
private String status;
private String result;
private List<String> details = new ArrayList<String>();
public static HostResult fromOutputLine(String line) {
Matcher matcher = HOST_RESULT_FIRST_LINE_PATTERN.matcher(line);
HostResult hr = null;
if (matcher.find()) {
hr = new HostResult();
hr.setStatus(matcher.group(1));
hr.setHostName(matcher.group(2));
if (matcher.groupCount() == 3) {
hr.setResult(matcher.group(3));
}
}
return hr;
}
public String getHostName() {
return hostName;
}
public void setHostName(String hostName) {
this.hostName = hostName;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
public List<String> getDetails() {
return details;
}
public void setDetails(List<String> details) {
this.details = details;
}
}