Revision 46794
Added by Michele Artini about 7 years ago
ProcessEngine.java | ||
---|---|---|
7 | 7 |
import java.util.Map; |
8 | 8 |
import java.util.stream.Collectors; |
9 | 9 |
|
10 |
import org.antlr.stringtemplate.StringTemplate; |
|
11 |
import org.apache.commons.io.IOUtils; |
|
12 | 10 |
import org.apache.commons.lang3.StringEscapeUtils; |
13 | 11 |
import org.apache.commons.lang3.StringUtils; |
14 | 12 |
import org.apache.commons.logging.Log; |
... | ... | |
18 | 16 |
|
19 | 17 |
import com.google.common.base.Throwables; |
20 | 18 |
|
21 |
import eu.dnetlib.clients.is.InformationServiceClient; |
|
22 | 19 |
import eu.dnetlib.miscutils.datetime.DateUtils; |
23 | 20 |
import eu.dnetlib.msro.workflows.GraphNode; |
24 | 21 |
import eu.dnetlib.msro.workflows.ProcessStatus; |
... | ... | |
40 | 37 |
@Autowired |
41 | 38 |
private NodeHelper nodeHelper; |
42 | 39 |
|
43 |
@Autowired |
|
44 |
private InformationServiceClient isClient; |
|
45 |
|
|
46 | 40 |
public void startProcess(final WorkflowProcess process) { |
47 | 41 |
log.info(process.getGraph()); |
48 | 42 |
|
... | ... | |
179 | 173 |
|
180 | 174 |
process.getCallback().notify(asyncResponse); |
181 | 175 |
|
182 |
final String profileId = process.getProfileId(); |
|
183 |
if (!process.isTemplate() && StringUtils.isNotBlank(profileId)) { |
|
184 |
try { |
|
185 |
final String template = IOUtils.toString(getClass().getResourceAsStream("/eu/dnetlib/msro/workflows/templates/workflow_status.xml.st")); |
|
186 |
final StringTemplate st = new StringTemplate(template); |
|
187 |
st.setAttribute("procId", StringEscapeUtils.escapeXml11(process.getId())); |
|
188 |
st.setAttribute("date", StringEscapeUtils.escapeXml11(DateUtils.calculate_ISO8601(now))); |
|
189 |
st.setAttribute("params", process.getOutputParams()); |
|
190 |
if (process.getStatus() == ProcessStatus.FAILURE) { |
|
191 |
st.setAttribute("error", StringEscapeUtils.escapeXml11(process.getError())); |
|
192 |
} |
|
193 |
isClient.updateProfileNode(profileId, "//STATUS", st.toString()); |
|
194 |
} catch (final Exception e) { |
|
195 |
log.error("Error updating workflow profile: " + profileId, e); |
|
196 |
process.setStatus(ProcessStatus.FAILURE); |
|
197 |
process.setError("Error updating workflow profile: " + profileId); |
|
198 |
process.setErrorStacktrace(Throwables.getStackTraceAsString(e)); |
|
199 |
} |
|
200 |
} |
|
201 |
|
|
202 |
/* TODO : generare la risposta da passare al manager server */ |
|
203 |
/* |
|
204 |
* dnetLogger.newLogMessage() .addDetails(process.getOutputParams()) .addDetail(WorkflowsConstants.LOG_WF_NAME, process.getName()) |
|
205 |
* .addDetail(WorkflowsConstants.LOG_WF_FAMILY, process.getFamily()) .addDetail(WorkflowsConstants.LOG_WF_PRIORITY, "" + |
|
206 |
* process.getPriority()) .addDetail(WorkflowsConstants.LOG_WF_PROCESS_ID, process.getId()) |
|
207 |
* .addDetail(WorkflowsConstants.LOG_WF_PROCESS_STATUS, process.getStatus().toString()) |
|
208 |
* .addDetail(WorkflowsConstants.LOG_WF_PROCESS_START_DATE, Long.toString(process.getStartDate())) |
|
209 |
* .addDetail(WorkflowsConstants.LOG_WF_PROCESS_END_DATE, Long.toString(process.getEndDate())) |
|
210 |
* .addDetail(WorkflowsConstants.LOG_WF_PROFILE_ID, process.isTemplate() ? null : process.getProfileId()) |
|
211 |
* .addDetail(WorkflowsConstants.LOG_WF_PROFILE_TEMPLATE_ID, process.isTemplate() ? process.getProfileId() : null) |
|
212 |
* .addDetail(WorkflowsConstants.LOG_WF_PARENT, process.getParentProfileId()) .addDetail(WorkflowsConstants.LOG_DATASOURCE_ID, |
|
213 |
* process.getDsId()) .addDetail(WorkflowsConstants.LOG_DATASOURCE_NAME, process.getDsName()) |
|
214 |
* .addDetail(WorkflowsConstants.LOG_DATASOURCE_INTERFACE, process.getDsInterface()) .addDetail(WorkflowsConstants.LOG_SYSTEM_ERROR, |
|
215 |
* process.getError()) .addDetail(WorkflowsConstants.LOG_SYSTEM_ERROR_STACKTRACE, process.getErrorStacktrace()) .flush(); |
|
216 |
* |
|
217 |
* emailDispatcher.sendMails(process); |
|
218 |
*/ |
|
219 | 176 |
} |
220 | 177 |
|
221 | 178 |
private Map<String, String> filterOutputParams(final Map<String, Object> map) { |
Also available in: Unified diff
wf execution