use of com.tremolosecurity.config.xml.WorkflowType in project OpenUnison by TremoloSecurity.
the class LoadWorkflowsFromK8s method createWorkflow.
private WorkflowType createWorkflow(JSONObject item, String name) throws ProvisioningException {
WorkflowType wft = new WorkflowType();
JSONObject spec = (JSONObject) item.get("spec");
String jsonString = spec.toJSONString();
StringBuffer b = new StringBuffer();
b.setLength(0);
OpenUnisonConfigLoader.integrateIncludes(b, jsonString);
try {
spec = (JSONObject) new JSONParser().parse(b.toString());
} catch (ParseException e1) {
throw new ProvisioningException("Could not parse workflow", e1);
}
wft.setName(name);
wft.setInList(((Boolean) spec.get("inList")));
wft.setLabel((String) spec.get("label"));
wft.setOrgid((String) spec.get("orgId"));
wft.setDescription((String) spec.get("description"));
JSONObject dynWfJson = (JSONObject) spec.get("dynamicConfiguration");
if (dynWfJson != null) {
DynamicWorkflowType dwt = new DynamicWorkflowType();
wft.setDynamicConfiguration(dwt);
Boolean isdyn = (Boolean) dynWfJson.get("dynamic");
if (isdyn != null) {
dwt.setDynamic(isdyn.booleanValue());
}
dwt.setClassName((String) dynWfJson.get("className"));
JSONArray params = (JSONArray) dynWfJson.get("params");
for (Object o : params) {
JSONObject p = (JSONObject) o;
ParamType pt = new ParamType();
pt.setName((String) p.get("name"));
pt.setValue((String) p.get("value"));
dwt.getParam().add(pt);
}
}
String wfJson = null;
try {
wfJson = convertYamlToJson((String) spec.get("tasks"));
ParsedWorkflow pw = new ParseWorkflow().parseWorkflow(wfJson);
if (pw.getError() != null) {
throw new ProvisioningException("Invalid workflow '" + pw.getError() + "', path='" + pw.getErrorPath() + "'");
}
wft.setTasks(pw.getWft().getTasks());
} catch (JsonProcessingException e) {
throw new ProvisioningException("Could not parse workflow tasks for '" + name + "'", e);
}
return wft;
}
Aggregations