From 109423f1c0d4cd2c97415c83bf5ef9c8b95ad17c Mon Sep 17 00:00:00 2001 From: Giancarlo Panichi Date: Fri, 20 May 2016 15:57:35 +0000 Subject: [PATCH] refs 2521: Explore the possibility to port the StatMan interface onto Dataminer https://support.d4science.org/issues/2521 Fixed time delay on Show Computation git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/data-miner-manager@128758 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../ComputationsExecutedPanel.java | 4 +- .../client/resources/logo.png | Bin 6264 -> 4222 bytes .../client/resources/logoLittle.png | Bin 7845 -> 4252 bytes .../server/DataMinerManagerServiceImpl.java | 32 ++-- .../server/DownloadFolderServlet.java | 67 ++++++++ .../dataminermanager/server/SessionUtil.java | 15 +- .../ComputationValueBuilder.java | 78 +++++---- .../server/storage/StorageUtil.java | 30 ++++ src/main/webapp/WEB-INF/web.xml | 162 ++++++++---------- 9 files changed, 240 insertions(+), 148 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/dataminermanager/server/DownloadFolderServlet.java diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/computations/ComputationsExecutedPanel.java b/src/main/java/org/gcube/portlets/user/dataminermanager/client/computations/ComputationsExecutedPanel.java index 5a8cd10..80ba861 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/client/computations/ComputationsExecutedPanel.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/client/computations/ComputationsExecutedPanel.java @@ -328,7 +328,7 @@ public class ComputationsExecutedPanel extends FramedPanel { @Override public void onSelect(SelectEvent event) { - openFile(); + downloadFile(); } }); @@ -461,7 +461,7 @@ public class ComputationsExecutedPanel extends FramedPanel { } - private void openFile() { + private void downloadFile() { if (selectedItem != null && !selectedItem.isFolder()) { final ItemDescription itemDescription = new ItemDescription( diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/logo.png b/src/main/java/org/gcube/portlets/user/dataminermanager/client/resources/logo.png index d2313dc8dbee971a3ff7b23a4a58ee6ee3113724..ba6819f7cbb7469573dd70d88c94b48143cae9f2 100644 GIT binary patch delta 4179 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 JdUeOB{{hs70 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 delta 7831 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 diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/server/DataMinerManagerServiceImpl.java b/src/main/java/org/gcube/portlets/user/dataminermanager/server/DataMinerManagerServiceImpl.java index b71bbc0..ecb2440 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/server/DataMinerManagerServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/server/DataMinerManagerServiceImpl.java @@ -93,9 +93,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements try { HttpSession session = this.getThreadLocalRequest().getSession(); ASLSession aslSession = SessionUtil.getASLSession(session); - SClient smClient = SessionUtil.getSClient(session, aslSession); + SClient smClient = SessionUtil.getSClient(aslSession); List list= smClient.getOperatorsClassifications(); - SessionUtil.putSClient(session, smClient); + //SessionUtil.putSClient(session, smClient); return list; } catch (ServiceException e) { logger.error(e.getLocalizedMessage()); @@ -117,9 +117,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements HttpSession session = this.getThreadLocalRequest().getSession(); ASLSession aslSession = SessionUtil.getASLSession(session); - SClient smClient = SessionUtil.getSClient(session, aslSession); + SClient smClient = SessionUtil.getSClient(aslSession); List list=smClient.getInputParameters(operator); - SessionUtil.putSClient(session, smClient); + //SessionUtil.putSClient(session, smClient); return list; } catch (ServiceException e) { logger.error(e.getLocalizedMessage()); @@ -139,9 +139,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements HttpSession session = this.getThreadLocalRequest().getSession(); ASLSession aslSession = SessionUtil.getASLSession(session); logger.debug("StartComputation(): [ operator=" + operator + "]"); - SClient smClient = SessionUtil.getSClient(session, aslSession); + SClient smClient = SessionUtil.getSClient(aslSession); ComputationId computationId= smClient.startComputation(operator); - SessionUtil.putSClient(session, smClient); + //SessionUtil.putSClient(session, smClient); return computationId; } catch (ServiceException e) { logger.error(e.getLocalizedMessage()); @@ -164,9 +164,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements Map properties = StorageUtil.getProperties( aslSession.getUsername(), itemDescription.getId()); logger.debug("Properties: " + properties); - SClient smClient = SessionUtil.getSClient(session, aslSession); + SClient smClient = SessionUtil.getSClient(aslSession); ComputationId computationId= smClient.resubmitComputation(properties); - SessionUtil.putSClient(session, smClient); + //SessionUtil.putSClient(session, smClient); return computationId; } catch (ServiceException e) { logger.error(e.getLocalizedMessage()); @@ -186,9 +186,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements HttpSession session = this.getThreadLocalRequest().getSession(); ASLSession aslSession = SessionUtil.getASLSession(session); - SClient smClient = SessionUtil.getSClient(session, aslSession); + SClient smClient = SessionUtil.getSClient(aslSession); ComputationStatus computationStatus= smClient.getComputationStatus(computationId); - SessionUtil.putSClient(session, smClient); + //SessionUtil.putSClient(session, smClient); return computationStatus; } catch (ServiceException e) { @@ -293,9 +293,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements HttpSession session = this.getThreadLocalRequest().getSession(); ASLSession aslSession = SessionUtil.getASLSession(session); logger.debug("CancelComputation(): " + computationId); - SClient smClient = SessionUtil.getSClient(session, aslSession); + SClient smClient = SessionUtil.getSClient(aslSession); String result = smClient.cancelComputation(computationId); - SessionUtil.putSClient(session, smClient); + //SessionUtil.putSClient(session, smClient); return result; } catch (ServiceException e) { logger.error(e.getLocalizedMessage()); @@ -315,10 +315,10 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements HttpSession session = this.getThreadLocalRequest().getSession(); ASLSession aslSession = SessionUtil.getASLSession(session); - SClient smClient = SessionUtil.getSClient(session, aslSession); + SClient smClient = SessionUtil.getSClient(aslSession); OutputData outputData = smClient .getOutputDataByComputationId(computationId); - SessionUtil.putSClient(session, smClient); + //SessionUtil.putSClient(session, smClient); Log.debug("OutputData: " + outputData); return outputData; } catch (ServiceException e) { @@ -344,9 +344,9 @@ public class DataMinerManagerServiceImpl extends RemoteServiceServlet implements Map properties = StorageUtil.getProperties( aslSession.getUsername(), itemDescription.getId()); logger.debug("Properties: " + properties); - SClient smClient = SessionUtil.getSClient(session, aslSession); + SClient smClient = SessionUtil.getSClient(aslSession); ComputationData computationData= smClient.getComputationDataByComputationProperties(properties); - SessionUtil.putSClient(session, smClient); + //SessionUtil.putSClient(session, smClient); return computationData; diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/server/DownloadFolderServlet.java b/src/main/java/org/gcube/portlets/user/dataminermanager/server/DownloadFolderServlet.java new file mode 100644 index 0000000..e28be9d --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/server/DownloadFolderServlet.java @@ -0,0 +1,67 @@ +package org.gcube.portlets.user.dataminermanager.server; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * DownloadFolder Servlet + */ +@WebServlet("/DownloadFolderServlet") +public class DownloadFolderServlet extends HttpServlet { + private static final long serialVersionUID = 1L; + + /** + * @see HttpServlet#HttpServlet() + */ + public DownloadFolderServlet() { + super(); + // TODO Auto-generated constructor stub + } + + /** + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) + */ + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + createResponse(request, response); + } + + /** + * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) + */ + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + createResponse(request, response); + } + + + private void createResponse(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ + /*try { + + request.getParameter("c") + + File tmpZip = ZipUtil.zipFolder((WorkspaceFolder) item); + resp.setHeader( "Content-Disposition", "attachment; filename=\"" + item.getName() + ".zip\"" ); + resp.setContentType("application/zip"); + resp = setContentLength(resp, tmpZip.length()); + OutputStream out = resp.getOutputStream(); + + FileInputStream fileTmpZip = new FileInputStream(tmpZip); + IOUtils.copy(fileTmpZip, resp.getOutputStream()); + fileTmpZip.close(); + + out.close(); + tmpZip.delete(); + return; + + } catch (Exception e) { + logger.error("Error during folder compression "+itemId,e); + handleError(urlRedirectOnError, req, resp, itemId, HttpServletResponse.SC_INTERNAL_SERVER_ERROR +": Error during folder compression: "+e.getMessage()); + return; + } + }*/ + } + +} diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/server/SessionUtil.java b/src/main/java/org/gcube/portlets/user/dataminermanager/server/SessionUtil.java index b974eb1..c34158e 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/server/SessionUtil.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/server/SessionUtil.java @@ -89,7 +89,7 @@ public class SessionUtil { } - + /* public static void putSClient(HttpSession session, SClient sClient) throws Exception { SClient sc = (SClient) session.getAttribute(Constants.SClient); @@ -99,15 +99,20 @@ public class SessionUtil { session.removeAttribute(Constants.SClient); session.setAttribute(Constants.SClient, sClient); } - } + }*/ - public static SClient getSClient(HttpSession session, ASLSession aslSession) + public static SClient getSClient(ASLSession aslSession) throws Exception { - SClient sClient = (SClient) session.getAttribute(Constants.SClient); + if(aslSession==null){ + logger.error("ASLSession is null!"); + throw new ExpiredSessionServiceException("Session Expired!"); + } + + SClient sClient = (SClient) aslSession.getAttribute(Constants.SClient); if (sClient == null) { logger.info("Created new SClient"); ServiceCredential serviceCredential=new ServiceCredential(aslSession.getUsername(), aslSession.getScope(), @@ -118,7 +123,7 @@ public class SessionUtil { director.setSClientBuilder(sBuilder); director.constructSClient(); sClient = director.getSClient(); - session.setAttribute(Constants.SClient, sClient); + aslSession.setAttribute(Constants.SClient, sClient); } else { logger.info("Use SClient in session"); } diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/server/smservice/wps/computationsvalue/ComputationValueBuilder.java b/src/main/java/org/gcube/portlets/user/dataminermanager/server/smservice/wps/computationsvalue/ComputationValueBuilder.java index 6059c2f..0763e4d 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/server/smservice/wps/computationsvalue/ComputationValueBuilder.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/server/smservice/wps/computationsvalue/ComputationValueBuilder.java @@ -1,7 +1,7 @@ package org.gcube.portlets.user.dataminermanager.server.smservice.wps.computationsvalue; -import java.net.HttpURLConnection; import java.net.URL; +import java.net.URLConnection; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; @@ -73,37 +73,13 @@ public class ComputationValueBuilder { } private ComputationValue retrieveFileName(final String value) { - HttpURLConnection conn = null; - + URLConnection conn = null; + logger.debug("Retrieve File Header from Storage for value: "+value); try { + //Use URL connection because in internal network is more fast URL url = new URL(value); - int attempts = 0; - do { - conn = (HttpURLConnection) url.openConnection(); - conn.setConnectTimeout(30000); - conn.setReadTimeout(30000); - conn.setRequestMethod("HEAD"); - conn.setAllowUserInteraction(false); - conn.setDoInput(true); - conn.setDoOutput(true); - conn.connect(); - if (conn.getResponseCode() != 200) { - logger.error("Retrieve File Name Response Code: " - + conn.getResponseCode()); - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - - } - } - attempts++; - } while (attempts <= 5 || conn.getResponseCode() != 200); - - if (conn.getResponseCode() == 200) { - return extractFileName(conn, value); - } else { - return new ComputationValueFile(value, null, null); - } + conn = url.openConnection(); + return extractFileName(conn, value); } catch (Throwable e) { logger.error("Retrieve File Name: " + e.getLocalizedMessage()); @@ -111,8 +87,48 @@ public class ComputationValueBuilder { return new ComputationValueFile(value, null, null); } } + + /* + int attempts = 0; + - private ComputationValue extractFileName(HttpURLConnection conn, + do { + logger.debug("Attempts: "+attempts); + + conn = (HttpURLConnection) url.openConnection(); + conn.setConnectTimeout(30000); + conn.setReadTimeout(30000); + conn.setRequestMethod("HEAD"); + conn.setAllowUserInteraction(false); + conn.setDoInput(false); + conn.setDoOutput(false); + + conn.connect(); + + if (conn.getResponseCode() != 200) { + logger.error("Retrieve File Name Response Code: " + + conn.getResponseCode()); + try { + logger.debug("Sleep time: 5000"); + Thread.sleep(5000); + } catch (InterruptedException e) { + + } + } + attempts++; + + } while (attempts <= 5 || conn.getResponseCode() != 200); + + if (conn.getResponseCode() == 200) { + logger.debug("Retrived Header"); + return extractFileName(conn, value); + } else { + logger.debug("Header not retrieved use default"); + return new ComputationValueFile(value, null, null); + } + */ + + private ComputationValue extractFileName(URLConnection conn, String value) { ComputationValue computationValue = null; String fileName = null; diff --git a/src/main/java/org/gcube/portlets/user/dataminermanager/server/storage/StorageUtil.java b/src/main/java/org/gcube/portlets/user/dataminermanager/server/storage/StorageUtil.java index 5ac7663..2cf0281 100644 --- a/src/main/java/org/gcube/portlets/user/dataminermanager/server/storage/StorageUtil.java +++ b/src/main/java/org/gcube/portlets/user/dataminermanager/server/storage/StorageUtil.java @@ -1,5 +1,6 @@ package org.gcube.portlets.user.dataminermanager.server.storage; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URL; @@ -15,11 +16,13 @@ import org.gcube.common.homelibrary.home.exceptions.HomeNotFoundException; import org.gcube.common.homelibrary.home.exceptions.InternalErrorException; import org.gcube.common.homelibrary.home.workspace.Properties; import org.gcube.common.homelibrary.home.workspace.Workspace; +import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder; import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; import org.gcube.common.homelibrary.home.workspace.exceptions.InsufficientPrivilegesException; import org.gcube.common.homelibrary.home.workspace.exceptions.ItemNotFoundException; import org.gcube.common.homelibrary.home.workspace.exceptions.WorkspaceFolderNotFoundException; import org.gcube.common.homelibrary.home.workspace.exceptions.WrongItemTypeException; +import org.gcube.common.homelibrary.util.zip.ZipUtil; import org.gcube.contentmanagement.blobstorage.service.IClient; import org.gcube.contentmanager.storageclient.model.protocol.smp.SMPURLConnection; import org.gcube.contentmanager.storageclient.wrapper.AccessType; @@ -215,6 +218,33 @@ public class StorageUtil { } } + + public File zipFolder(String user, String folderId) + throws ServiceException { + Workspace ws; + try { + ws = HomeLibrary.getUserWorkspace(user); + + WorkspaceItem workSpaceItem = ws.getItem(folderId); + if (!workSpaceItem.isFolder()) { + throw new ServiceException( + "Item is not valid folder!"); + } + + WorkspaceFolder folder = (WorkspaceFolder) workSpaceItem; + + File fileZip = ZipUtil.zipFolder(folder); + + return fileZip; + + } catch (IOException | InternalErrorException + | WorkspaceFolderNotFoundException | HomeNotFoundException + | ItemNotFoundException e) { + e.printStackTrace(); + throw new ServiceException(e.getLocalizedMessage()); + } + + } /** * diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 6f968af..07c8b03 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -1,96 +1,70 @@ - - - - DataMinerManagerServlet - org.gcube.portlets.user.dataminermanager.server.DataMinerManagerServiceImpl - - - jUnitHostImpl - com.google.gwt.junit.server.JUnitHostImpl - - - DownloadService - org.gcube.portlets.user.dataminermanager.server.DownloadServlet - - - - - workspaceExplorer - org.gcube.portlets.widgets.wsexplorer.server.WorkspaceExplorerServiceImpl - - - - - workspaceUploaderService - org.gcube.portlets.widgets.workspaceuploader.server.WorkspaceUploaderServiceImpl - - - - workspaceUploadServletStream - org.gcube.portlets.widgets.workspaceuploader.server.WorkspaceUploadServletStream - - - - checkServlet - org.gcube.portlets.widgets.sessionchecker.server.SessionCheckerServiceImpl - - - - scopeService - org.gcube.portlets.user.gcubewidgets.server.ScopeServiceImpl - - - - - DataMinerManagerServlet - /dataminermanager/dataminerman - - - - jUnitHostImpl - /dataminermanager/junithost/* - - - DownloadService - /dataminermanager/DownloadService - - - - workspaceExplorer - /dataminermanager/WorkspaceExplorerService - - - - workspaceUploaderService - /dataminermanager/workspaceUploaderService - - - - - workspaceUploadServletStream - /dataminermanager/workspaceUploadServletStream - - - - - checkServlet - /dataminermanager/checksession - - - - - - scopeService - /dataminermanager/scopeService - - - - - DataMinerManager.html - - - + + + DataMinerManagerServlet + org.gcube.portlets.user.dataminermanager.server.DataMinerManagerServiceImpl + + + jUnitHostImpl + com.google.gwt.junit.server.JUnitHostImpl + + + DownloadService + org.gcube.portlets.user.dataminermanager.server.DownloadServlet + + + workspaceExplorer + org.gcube.portlets.widgets.wsexplorer.server.WorkspaceExplorerServiceImpl + + + workspaceUploaderService + org.gcube.portlets.widgets.workspaceuploader.server.WorkspaceUploaderServiceImpl + + + workspaceUploadServletStream + org.gcube.portlets.widgets.workspaceuploader.server.WorkspaceUploadServletStream + + + checkServlet + org.gcube.portlets.widgets.sessionchecker.server.SessionCheckerServiceImpl + + + scopeService + org.gcube.portlets.user.gcubewidgets.server.ScopeServiceImpl + + + DataMinerManagerServlet + /dataminermanager/dataminerman + + + jUnitHostImpl + /dataminermanager/junithost/* + + + DownloadService + /dataminermanager/DownloadService + + + workspaceExplorer + /dataminermanager/WorkspaceExplorerService + + + workspaceUploaderService + /dataminermanager/workspaceUploaderService + + + workspaceUploadServletStream + /dataminermanager/workspaceUploadServletStream + + + checkServlet + /dataminermanager/checksession + + + scopeService + /dataminermanager/scopeService + + + DataMinerManager.html + \ No newline at end of file