ref 11724: SAI - Update to StorageHUB
https://support.d4science.org/issues/11724 Updated to StorageHub git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/statistical-algorithms-importer@172014 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
9c480e2c84
commit
2a8fef0299
|
@ -88,7 +88,7 @@ public class DownloadServlet extends HttpServlet {
|
||||||
ServiceCredentials serviceCredentials = SessionUtil.getServiceCredentials(req, scopeGroupId);
|
ServiceCredentials serviceCredentials = SessionUtil.getServiceCredentials(req, scopeGroupId);
|
||||||
FilesStorage filesStorage = new FilesStorage();
|
FilesStorage filesStorage = new FilesStorage();
|
||||||
ItemDownload itemDownload = filesStorage.getItemDownload(serviceCredentials.getUserName(), itemId);
|
ItemDownload itemDownload = filesStorage.getItemDownload(serviceCredentials.getUserName(), itemId);
|
||||||
logger.debug("ItemDownload: "+itemDownload);
|
logger.debug("ItemDownload: " + itemDownload);
|
||||||
if (itemDownload == null) {
|
if (itemDownload == null) {
|
||||||
logger.error("This type of item does not support download operation");
|
logger.error("This type of item does not support download operation");
|
||||||
throw new ServletException("This type of item does not support download operation");
|
throw new ServletException("This type of item does not support download operation");
|
||||||
|
@ -101,27 +101,36 @@ public class DownloadServlet extends HttpServlet {
|
||||||
String fileName;
|
String fileName;
|
||||||
if (itemDownload.getItemDescription() == null) {
|
if (itemDownload.getItemDescription() == null) {
|
||||||
fileName = "filename";
|
fileName = "filename";
|
||||||
|
resp.setHeader("Content-Disposition:", "attachment;filename=\"" + fileName + "\"");
|
||||||
|
resp.setHeader("Content-Type", "application/force-download");
|
||||||
} else {
|
} else {
|
||||||
if (itemDownload.getItemDescription().getName() == null
|
if (itemDownload.getItemDescription().getName() == null
|
||||||
|| itemDownload.getItemDescription().getName().isEmpty()) {
|
|| itemDownload.getItemDescription().getName().isEmpty()) {
|
||||||
if (itemDownload.getItemDescription().getType() != null && itemDownload.getItemDescription()
|
if (itemDownload.getItemDescription().getType() != null && itemDownload.getItemDescription()
|
||||||
.getType().compareTo(FolderItem.class.getSimpleName()) == 0) {
|
.getType().compareTo(FolderItem.class.getSimpleName()) == 0) {
|
||||||
fileName = "folder.zip";
|
fileName = "folder.zip";
|
||||||
|
resp.setHeader("Content-Disposition:", "attachment;filename=\"" + fileName + "\"");
|
||||||
|
resp.setHeader("Content-Type", "application/zip");
|
||||||
} else {
|
} else {
|
||||||
fileName = "filename";
|
fileName = "filename";
|
||||||
|
resp.setHeader("Content-Disposition:", "attachment;filename=\"" + fileName + "\"");
|
||||||
|
resp.setHeader("Content-Type", "application/force-download");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (itemDownload.getItemDescription().getType() != null && itemDownload.getItemDescription()
|
if (itemDownload.getItemDescription().getType() != null && itemDownload.getItemDescription()
|
||||||
.getType().compareTo(FolderItem.class.getSimpleName()) == 0) {
|
.getType().compareTo(FolderItem.class.getSimpleName()) == 0) {
|
||||||
fileName = itemDownload.getItemDescription().getName() + ".zip";
|
fileName = itemDownload.getItemDescription().getName() + ".zip";
|
||||||
|
resp.setHeader("Content-Disposition:", "attachment;filename=\"" + fileName + "\"");
|
||||||
|
resp.setHeader("Content-Type", "application/zip");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
fileName = itemDownload.getItemDescription().getName();
|
fileName = itemDownload.getItemDescription().getName();
|
||||||
|
resp.setHeader("Content-Disposition:", "attachment;filename=\"" + fileName + "\"");
|
||||||
|
resp.setHeader("Content-Type", "application/force-download");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
logger.debug("DownloadServlet filename: "+fileName);
|
logger.debug("DownloadServlet filename: " + fileName);
|
||||||
resp.setHeader("Content-Disposition:", "attachment;filename=\"" + fileName + "\"");
|
|
||||||
resp.setHeader("Content-Type", "application/force-download");
|
|
||||||
stream(itemDownload.getInputStream(), resp.getOutputStream());
|
stream(itemDownload.getInputStream(), resp.getOutputStream());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,12 +81,14 @@ public class ProjectBuilder {
|
||||||
private Path infoTXT;
|
private Path infoTXT;
|
||||||
|
|
||||||
public ProjectBuilder(Project project, ServiceCredentials serviceCredentials, SAIDescriptor saiDescriptor) {
|
public ProjectBuilder(Project project, ServiceCredentials serviceCredentials, SAIDescriptor saiDescriptor) {
|
||||||
|
logger.debug("ProjectBuilder");
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.serviceCredentials = serviceCredentials;
|
this.serviceCredentials = serviceCredentials;
|
||||||
this.saiDescriptor = saiDescriptor;
|
this.saiDescriptor = saiDescriptor;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Project buildTarget() throws StatAlgoImporterServiceException {
|
public Project buildTarget() throws StatAlgoImporterServiceException {
|
||||||
|
logger.debug("Project Builder: Build Target");
|
||||||
checkInfoForBuild();
|
checkInfoForBuild();
|
||||||
createShareInfo();
|
createShareInfo();
|
||||||
createBackup();
|
createBackup();
|
||||||
|
@ -117,12 +119,14 @@ public class ProjectBuilder {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Project buildDeploy() throws StatAlgoImporterServiceException {
|
public Project buildDeploy() throws StatAlgoImporterServiceException {
|
||||||
|
logger.debug("Project Builder: Deploy");
|
||||||
checkInfoForDeploy();
|
checkInfoForDeploy();
|
||||||
copyJarInDeploy();
|
copyJarInDeploy();
|
||||||
return project;
|
return project;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Project buildRepackage() throws StatAlgoImporterServiceException {
|
public Project buildRepackage() throws StatAlgoImporterServiceException {
|
||||||
|
logger.debug("Project Builder: Repackage");
|
||||||
checkInfoForRepackage();
|
checkInfoForRepackage();
|
||||||
createBackupOfPackageProject();
|
createBackupOfPackageProject();
|
||||||
createMainCodeIfRequest();
|
createMainCodeIfRequest();
|
||||||
|
@ -158,16 +162,18 @@ public class ProjectBuilder {
|
||||||
|
|
||||||
private void repackageProjectPackage() throws StatAlgoImporterServiceException {
|
private void repackageProjectPackage() throws StatAlgoImporterServiceException {
|
||||||
List<String> idsToExclude = new ArrayList<String>();
|
List<String> idsToExclude = new ArrayList<String>();
|
||||||
logger.debug("Exclude Backup Folder Id: "+backupFolderId);
|
if (backupFolderId != null && !backupFolderId.isEmpty()) {
|
||||||
idsToExclude.add(backupFolderId);
|
logger.debug("Exclude Backup Folder Id: " + backupFolderId);
|
||||||
|
idsToExclude.add(backupFolderId);
|
||||||
|
}
|
||||||
|
|
||||||
FilesStorage filesStorage = new FilesStorage();
|
FilesStorage filesStorage = new FilesStorage();
|
||||||
|
|
||||||
if (project.getProjectTarget() != null && project.getProjectTarget().getFolder() != null
|
if (project.getProjectTarget() != null && project.getProjectTarget().getFolder() != null
|
||||||
&& project.getProjectTarget().getFolder().getId() != null
|
&& project.getProjectTarget().getFolder().getId() != null
|
||||||
&& !project.getProjectTarget().getFolder().getId().isEmpty()) {
|
&& !project.getProjectTarget().getFolder().getId().isEmpty()) {
|
||||||
String targetFolderId=project.getProjectTarget().getFolder().getId();
|
String targetFolderId = project.getProjectTarget().getFolder().getId();
|
||||||
logger.debug("Exclude Target Folder Id: "+targetFolderId);
|
logger.debug("Exclude Target Folder Id: " + targetFolderId);
|
||||||
idsToExclude.add(targetFolderId);
|
idsToExclude.add(targetFolderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,12 +215,12 @@ public class ProjectBuilder {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createBackupOfPackageProject() throws StatAlgoImporterServiceException {
|
private void createBackupOfPackageProject() throws StatAlgoImporterServiceException {
|
||||||
logger.debug("Create Backup of PackageProject");
|
|
||||||
if (project.getProjectTarget() != null && project.getProjectTarget().getProjectDeploy() != null
|
if (project.getProjectTarget() != null && project.getProjectTarget().getProjectDeploy() != null
|
||||||
&& project.getProjectTarget().getProjectDeploy().getPackageProject() != null
|
&& project.getProjectTarget().getProjectDeploy().getPackageProject() != null
|
||||||
&& project.getProjectTarget().getProjectDeploy().getPackageProject().getId() != null
|
&& project.getProjectTarget().getProjectDeploy().getPackageProject().getId() != null
|
||||||
&& !project.getProjectTarget().getProjectDeploy().getPackageProject().getId().isEmpty()) {
|
&& !project.getProjectTarget().getProjectDeploy().getPackageProject().getId().isEmpty()) {
|
||||||
|
logger.debug("Create Backup of PackageProject");
|
||||||
createBackupFolder();
|
createBackupFolder();
|
||||||
|
|
||||||
FilesStorage filesStorage = new FilesStorage();
|
FilesStorage filesStorage = new FilesStorage();
|
||||||
|
@ -227,6 +233,8 @@ public class ProjectBuilder {
|
||||||
filesStorage.copyItemOnFolderWithNewName(serviceCredentials.getUserName(),
|
filesStorage.copyItemOnFolderWithNewName(serviceCredentials.getUserName(),
|
||||||
project.getProjectTarget().getProjectDeploy().getPackageProject().getId(), backupFolderId,
|
project.getProjectTarget().getProjectDeploy().getPackageProject().getId(), backupFolderId,
|
||||||
packageProjectNewName);
|
packageProjectNewName);
|
||||||
|
} else {
|
||||||
|
logger.debug("First deploy, no backup needed");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -428,19 +436,20 @@ public class ProjectBuilder {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createProjectPackage() throws StatAlgoImporterServiceException {
|
private void createProjectPackage() throws StatAlgoImporterServiceException {
|
||||||
|
|
||||||
|
|
||||||
List<String> idsToExclude = new ArrayList<String>();
|
List<String> idsToExclude = new ArrayList<String>();
|
||||||
logger.debug("Exclude Backup Folder Id: "+backupFolderId);
|
if (backupFolderId != null && !backupFolderId.isEmpty()) {
|
||||||
idsToExclude.add(backupFolderId);
|
logger.debug("Exclude Backup Folder Id: " + backupFolderId);
|
||||||
|
idsToExclude.add(backupFolderId);
|
||||||
|
}
|
||||||
|
|
||||||
FilesStorage filesStorage = new FilesStorage();
|
FilesStorage filesStorage = new FilesStorage();
|
||||||
|
|
||||||
if (project.getProjectTarget() != null && project.getProjectTarget().getFolder() != null
|
if (project.getProjectTarget() != null && project.getProjectTarget().getFolder() != null
|
||||||
&& project.getProjectTarget().getFolder().getId() != null
|
&& project.getProjectTarget().getFolder().getId() != null
|
||||||
&& !project.getProjectTarget().getFolder().getId().isEmpty()) {
|
&& !project.getProjectTarget().getFolder().getId().isEmpty()) {
|
||||||
String targetFolderId=project.getProjectTarget().getFolder().getId();
|
String targetFolderId = project.getProjectTarget().getFolder().getId();
|
||||||
logger.debug("Exclude Target Folder Id: "+targetFolderId);
|
logger.debug("Exclude Target Folder Id: " + targetFolderId);
|
||||||
idsToExclude.add(targetFolderId);
|
idsToExclude.add(targetFolderId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -459,7 +468,7 @@ public class ProjectBuilder {
|
||||||
project.getInputData().getProjectInfo().getAlgorithmNameToClassName() + PROJECT_PACKAGE_EXTENTION,
|
project.getInputData().getProjectInfo().getAlgorithmNameToClassName() + PROJECT_PACKAGE_EXTENTION,
|
||||||
PROJECT_PACKAGE_DESCRIPTION, PROJECT_PACKAGE_MIMETYPE,
|
PROJECT_PACKAGE_DESCRIPTION, PROJECT_PACKAGE_MIMETYPE,
|
||||||
project.getProjectTarget().getProjectDeploy().getFolder().getId());
|
project.getProjectTarget().getProjectDeploy().getFolder().getId());
|
||||||
String pLink=filesStorage.getPublicLink(serviceCredentials.getUserName(), packageUrl.getId());
|
String pLink = filesStorage.getPublicLink(serviceCredentials.getUserName(), packageUrl.getId());
|
||||||
packageUrl.setPublicLink(pLink);
|
packageUrl.setPublicLink(pLink);
|
||||||
logger.debug("ProjectPackageItem:" + packageUrl);
|
logger.debug("ProjectPackageItem:" + packageUrl);
|
||||||
project.getProjectTarget().getProjectDeploy().setPackageProject(packageUrl);
|
project.getProjectTarget().getProjectDeploy().setPackageProject(packageUrl);
|
||||||
|
@ -515,10 +524,10 @@ public class ProjectBuilder {
|
||||||
ItemDescription newBackupFolder = filesStorage.createFolder(serviceCredentials.getUserName(),
|
ItemDescription newBackupFolder = filesStorage.createFolder(serviceCredentials.getUserName(),
|
||||||
project.getProjectFolder().getFolder().getId(), STATISTICAL_ALGORITHM_BACKUP_FOLDER_NAME,
|
project.getProjectFolder().getFolder().getId(), STATISTICAL_ALGORITHM_BACKUP_FOLDER_NAME,
|
||||||
STATISTICAL_ALGORITHM_BACKUP_FOLDER_DESCRIPTION);
|
STATISTICAL_ALGORITHM_BACKUP_FOLDER_DESCRIPTION);
|
||||||
logger.debug("BackupFolder:" + backupFolder);
|
logger.debug("BackupFolder created:" + backupFolder);
|
||||||
|
|
||||||
backupFolderId = newBackupFolder.getId();
|
backupFolderId = newBackupFolder.getId();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
backupFolderId = backupFolder.getId();
|
backupFolderId = backupFolder.getId();
|
||||||
|
|
||||||
|
@ -539,7 +548,7 @@ public class ProjectBuilder {
|
||||||
project.getInputData().getProjectInfo().getAlgorithmNameToClassName() + ALGORITHM_EXTENTION,
|
project.getInputData().getProjectInfo().getAlgorithmNameToClassName() + ALGORITHM_EXTENTION,
|
||||||
ALGORITHM_DESCRIPTION, ALGORITHM_MIMETYPE,
|
ALGORITHM_DESCRIPTION, ALGORITHM_MIMETYPE,
|
||||||
project.getProjectTarget().getProjectCompile().getFolder().getId());
|
project.getProjectTarget().getProjectCompile().getFolder().getId());
|
||||||
String pLink=filesStorage.getPublicLink(serviceCredentials.getUserName(), codeSource.getId());
|
String pLink = filesStorage.getPublicLink(serviceCredentials.getUserName(), codeSource.getId());
|
||||||
codeSource.setPublicLink(pLink);
|
codeSource.setPublicLink(pLink);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
logger.error(e.getLocalizedMessage());
|
logger.error(e.getLocalizedMessage());
|
||||||
|
@ -564,7 +573,8 @@ public class ProjectBuilder {
|
||||||
Files.newInputStream(infoTXT, StandardOpenOption.READ), INFO_NAME + INFO_EXTENTION,
|
Files.newInputStream(infoTXT, StandardOpenOption.READ), INFO_NAME + INFO_EXTENTION,
|
||||||
INFO_DESCRIPTION, INFO_MIMETYPE,
|
INFO_DESCRIPTION, INFO_MIMETYPE,
|
||||||
project.getProjectTarget().getProjectCompile().getFolder().getId());
|
project.getProjectTarget().getProjectCompile().getFolder().getId());
|
||||||
String pLink=filesStorage.getPublicLink(serviceCredentials.getUserName(), integrationItemDescription.getId());
|
String pLink = filesStorage.getPublicLink(serviceCredentials.getUserName(),
|
||||||
|
integrationItemDescription.getId());
|
||||||
integrationItemDescription.setPublicLink(pLink);
|
integrationItemDescription.setPublicLink(pLink);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
logger.error(e.getLocalizedMessage(), e);
|
logger.error(e.getLocalizedMessage(), e);
|
||||||
|
@ -656,7 +666,7 @@ public class ProjectBuilder {
|
||||||
project.getInputData().getProjectInfo().getAlgorithmNameToClassName() + JAR_EXTENTION,
|
project.getInputData().getProjectInfo().getAlgorithmNameToClassName() + JAR_EXTENTION,
|
||||||
CODE_JAR_DESCRIPTION, CODE_JAR_MIMETYPE,
|
CODE_JAR_DESCRIPTION, CODE_JAR_MIMETYPE,
|
||||||
project.getProjectTarget().getProjectCompile().getFolder().getId());
|
project.getProjectTarget().getProjectCompile().getFolder().getId());
|
||||||
String pLink=filesStorage.getPublicLink(serviceCredentials.getUserName(), codeJarItemDescription.getId());
|
String pLink = filesStorage.getPublicLink(serviceCredentials.getUserName(), codeJarItemDescription.getId());
|
||||||
codeJarItemDescription.setPublicLink(pLink);
|
codeJarItemDescription.setPublicLink(pLink);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
logger.error(e.getLocalizedMessage(), e);
|
logger.error(e.getLocalizedMessage(), e);
|
||||||
|
|
Loading…
Reference in New Issue