
org.rundeck.api.parser.OutputParser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rundeck-api-java-client Show documentation
Show all versions of rundeck-api-java-client Show documentation
Java client for the Rundeck REST API
package org.rundeck.api.parser;
import org.apache.commons.lang.StringUtils;
import org.dom4j.Node;
import org.rundeck.api.domain.RundeckExecution;
import org.rundeck.api.domain.RundeckOutput;
import org.rundeck.api.domain.RundeckOutputEntry;
import java.util.List;
public class OutputParser extends BaseXpathParser {
XmlNodeParser parser;
public OutputParser(String xpath, XmlNodeParser parser) {
super(xpath);
if (null != parser) {
this.parser = parser;
}
}
@Override
public RundeckOutput parse(Node entryNode) {
RundeckOutput output = new RundeckOutput();
//output.setMessage(StringUtils.trimToNull(entryNode.valueOf("message")));
//output.setError(StringUtils.trimToNull(entryNode.valueOf("error")));
try {
output.setExecutionId(Long.valueOf(entryNode.valueOf("id")));
} catch (NumberFormatException e) {
output.setExecutionId(null);
}
try {
output.setOffset(Integer.valueOf(entryNode.valueOf("offset")));
} catch (NumberFormatException e) {
output.setOffset(-1);
}
output.setCompleted(Boolean.valueOf(entryNode.valueOf("completed")));
output.setExecCompleted(Boolean.valueOf(entryNode.valueOf("execCompleted")));
output.setHasFailedNodes(Boolean.valueOf(entryNode.valueOf("hasFailedNodes")));
output.setUnmodified(Boolean.valueOf(entryNode.valueOf("unmodified")));
try {
output.setStatus(RundeckExecution.ExecutionStatus
.valueOf(StringUtils.upperCase(entryNode.valueOf("execState"))));
} catch (IllegalArgumentException e) {
output.setStatus(null);
}
try {
output.setLastModified(Long.valueOf(entryNode.valueOf("lastModified")));
} catch (NumberFormatException e) {
output.setLastModified(null);
}
try {
output.setExecDuration(Long.valueOf(entryNode.valueOf("execDuration")));
} catch (NumberFormatException e) {
output.setExecDuration(null);
}
try {
output.setPercentLoaded(Float.valueOf(entryNode.valueOf("percentLoaded")));
} catch (NumberFormatException e) {
output.setPercentLoaded(null);
}
try {
output.setTotalSize(Integer.valueOf(entryNode.valueOf("totalSize")));
} catch (NumberFormatException e) {
output.setTotalSize(-1);
}
if(entryNode.selectSingleNode("filter")!=null){
output.setFilterNode(StringUtils.trimToNull(entryNode.valueOf("filter/@nodename")));
output.setFilterStep(StringUtils.trimToNull(entryNode.valueOf("filter/@stepctx")));
}
Node entriesListNode = entryNode.selectSingleNode("entries");
if (entriesListNode != null) {
@SuppressWarnings("unchecked")
List entries = entriesListNode.selectNodes("entry");
for (Node logEntryNode : entries) {
RundeckOutputEntry outputEntry = parser.parseXmlNode(logEntryNode);
output.addLogEntry(outputEntry);
}
}
return output;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy