event-publisher-library/src/main/java/org/gcube/event/publisher/ConductorResultsParser.java

49 lines
1.6 KiB
Java

package org.gcube.event.publisher;
import org.json.simple.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ConductorResultsParser implements ResultsParser {
protected static final Logger logger = LoggerFactory.getLogger(ConductorResultsParser.class);
public ConductorResultsParser() {
}
@Override
public EventStatus parseResults(String uuid, JSONObject results) {
EventStatus eventStatus = null;
if (results != null) {
JSONObject input = (JSONObject) results.get("input");
JSONObject output = (JSONObject) results.get("output");
switch ((String) results.get("status")) {
case "COMPLETED":
eventStatus = EventStatus.COMPLETED(uuid, input, output);
break;
case "FAILED":
eventStatus = EventStatus.FAILED(uuid, input, output);
break;
case "NOT_FOUND":
eventStatus = EventStatus.NOT_FOUND(uuid);
break;
case "PAUSED":
eventStatus = EventStatus.PAUSED(uuid, input);
break;
case "RUNNING":
eventStatus = EventStatus.RUNNING(uuid, input);
break;
case "TERMINATED":
eventStatus = EventStatus.TERMINATED(uuid, input, output);
break;
default:
eventStatus = EventStatus.NOT_FOUND(uuid);
}
} else {
logger.warn("Nothing to parse since JSON object is null");
}
return eventStatus;
}
}