data-miner-manager-tester/src/main/java/org/gcube/portlets/user/dataminermanagertester/server/DataMinerTesterCallable.java

97 lines
3.2 KiB
Java

package org.gcube.portlets.user.dataminermanagertester.server;
import java.util.HashMap;
import java.util.concurrent.Callable;
import javax.servlet.http.HttpSession;
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.portlets.user.dataminermanagertester.server.task.TaskRequest;
import org.gcube.portlets.user.dataminermanagertester.server.task.TaskWrapper;
import org.gcube.portlets.user.dataminermanagertester.server.testbatch.TesterCaller;
***REMOVED***
import org.gcube.portlets.user.dataminermanagertester.shared.result.BatchTestResult;
import org.gcube.portlets.user.dataminermanagertester.shared.task.TaskStatus;
***REMOVED***
***REMOVED***
/**
*
* @author Giancarlo Panichi
*
*/
public class DataMinerTesterCallable implements Callable<TaskStatus> {
private static Logger logger = LoggerFactory.getLogger(DataMinerTesterCallable.class);
private TaskRequest taskRequest;
public DataMinerTesterCallable(TaskRequest taskRequest) {
super();
this.taskRequest = taskRequest;
logger.debug("DataMinerTesterCallable: " + taskRequest);
***REMOVED***
@Override
public TaskStatus call() throws Exception {
***REMOVED***
HttpSession httpSession = taskRequest.getHttpSession();
if (httpSession == null) {
logger.error("Error retrieving HttpSession in DataMinerTesterCallable: is null");
return TaskStatus.ERROR;
***REMOVED***
logger.debug("Set SecurityToken: " + taskRequest.getServiceCredentials().getToken());
SecurityTokenProvider.instance.set(taskRequest.getServiceCredentials().getToken());
logger.debug("Set ScopeProvider: " + taskRequest.getServiceCredentials().getScope());
ScopeProvider.instance.set(taskRequest.getServiceCredentials().getScope());
TesterCaller testerCaller = new TesterCaller();
BatchTestResult result = null;
***REMOVED***
result = testerCaller.runTest(taskRequest);
***REMOVED*** catch (ServiceException e) {
TaskWrapper taskWrapper = new TaskWrapper(taskRequest.getOperationId(), TaskStatus.ERROR,
e.getLocalizedMessage());
HashMap<String, TaskWrapper> taskWrapperMap = SessionUtil.getTaskWrapperMap(httpSession,
taskRequest.getServiceCredentials());
if (taskWrapperMap == null) {
taskWrapperMap = new HashMap<>();
SessionUtil.setTaskWrapperMap(httpSession, taskRequest.getServiceCredentials(), taskWrapperMap);
***REMOVED***
taskWrapperMap.put(taskWrapper.getOperationId(), taskWrapper);
return TaskStatus.ERROR;
***REMOVED***
TaskWrapper taskWrapper = new TaskWrapper(taskRequest.getOperationId(), TaskStatus.COMPLETED,
result);
HashMap<String, TaskWrapper> taskWrapperMap = SessionUtil.getTaskWrapperMap(httpSession,
taskRequest.getServiceCredentials());
if (taskWrapperMap == null) {
taskWrapperMap = new HashMap<>();
SessionUtil.setTaskWrapperMap(httpSession, taskRequest.getServiceCredentials(), taskWrapperMap);
***REMOVED***
taskWrapperMap.put(taskWrapper.getOperationId(), taskWrapper);
return TaskStatus.COMPLETED;
***REMOVED***
logger.error("DataMinerTesterDaemon Execute(): " + e.getLocalizedMessage(), e);
return TaskStatus.ERROR;
***REMOVED***
***REMOVED***
***REMOVED***