56 lines
1.7 KiB
Java
56 lines
1.7 KiB
Java
package org.gcube.application.perform.service.engine.dm;
|
|
|
|
import java.util.Map;
|
|
|
|
import org.gcube.data.analysis.dataminermanagercl.server.DataMinerService;
|
|
import org.gcube.data.analysis.dataminermanagercl.server.dmservice.SClient;
|
|
import org.gcube.data.analysis.dataminermanagercl.server.monitor.DMMonitor;
|
|
import org.gcube.data.analysis.dataminermanagercl.server.monitor.DMMonitorListener;
|
|
import org.gcube.data.analysis.dataminermanagercl.shared.data.computations.ComputationId;
|
|
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.Parameter;
|
|
import org.gcube.data.analysis.dataminermanagercl.shared.process.Operator;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
@Slf4j
|
|
public class DMUtils {
|
|
|
|
public static SClient getClient() throws DMException {
|
|
try {
|
|
return new DataMinerService().getClient();
|
|
}catch(Exception e) {
|
|
throw new DMException(e);
|
|
}
|
|
}
|
|
|
|
|
|
public static void monitor(SClient client,ComputationId computationId,DMMonitorListener listener) {
|
|
DMMonitor monitor=new DMMonitor(computationId,client);
|
|
monitor.add(listener);
|
|
monitor.start();
|
|
}
|
|
|
|
|
|
public static ComputationId submitJob(SClient client, String operatorId, Map<String,String> parameters) throws DMException {
|
|
try {
|
|
log.debug("Looking for operator by Id {} ",operatorId);
|
|
Operator op=client.getOperatorById(operatorId);
|
|
|
|
|
|
log.debug("Preparing parameters, values : {} ",parameters);
|
|
for(Parameter param:op.getOperatorParameters()) {
|
|
String paramName=param.getName();
|
|
if(parameters.containsKey(paramName))
|
|
param.setValue(parameters.get(paramName));
|
|
}
|
|
|
|
log.info("Submitting Operator {} to DM",op);
|
|
|
|
return client.startComputation(op);
|
|
}catch(Exception e) {
|
|
throw new DMException(e);
|
|
}
|
|
}
|
|
|
|
}
|