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@169988 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
75c2213e16
commit
be76132e5b
|
@ -8,8 +8,6 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.storage.FilesStorage;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.util.ServiceCredentials;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
|
||||
|
@ -85,7 +83,7 @@ public class MainGenerator {
|
|||
// project.getProjectConfig().getLanguage(),
|
||||
// binarySoftware.getPublicLink());
|
||||
// } else {
|
||||
|
||||
|
||||
logger.debug("Generate Script R");
|
||||
producedScript = s.generateScript(input, output, binarySoftware.getName(),
|
||||
project.getProjectConfig().getLanguage());
|
||||
|
@ -99,10 +97,10 @@ public class MainGenerator {
|
|||
|
||||
//////
|
||||
FilesStorage filesStorage = new FilesStorage();
|
||||
WorkspaceItem mainItem;
|
||||
ItemDescription mainItemDescription;
|
||||
|
||||
try {
|
||||
mainItem = filesStorage.createItemOnWorkspace(serviceCredentials.getUserName(),
|
||||
mainItemDescription = filesStorage.createItemOnWorkspace(serviceCredentials.getUserName(),
|
||||
Files.newInputStream(producedScript, StandardOpenOption.READ),
|
||||
|
||||
"Main.R", R_DESCRIPTION + project.getProjectConfig().getLanguage(), R_MIMETYPE,
|
||||
|
@ -113,18 +111,6 @@ public class MainGenerator {
|
|||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
ItemDescription mainItemDescription;
|
||||
try {
|
||||
mainItemDescription = new ItemDescription(mainItem.getId(), mainItem.getName(),
|
||||
mainItem.getOwner().getPortalLogin(), mainItem.getPath(), mainItem.getType().name());
|
||||
mainItemDescription.setPublicLink(mainItem.getPublicLink(false));
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
|
||||
MainCode mainCode = new MainCode(mainItemDescription);
|
||||
|
||||
project.setMainCode(mainCode);
|
||||
|
|
|
@ -495,7 +495,9 @@ public class AlgorithmGenerator {
|
|||
logger.debug("ProjectInfo: " + project);
|
||||
String projectPath = project.getProjectFolder().getFolder().getPath();
|
||||
String mainCodePath = project.getMainCode().getItemDescription().getPath();
|
||||
String projectFolderName=project.getProjectFolder().getFolder().getName();
|
||||
logger.debug("ProjectPath: " + projectPath);
|
||||
logger.debug("Project Folder Name: "+projectFolderName);
|
||||
logger.debug("MainCodePath: " + mainCodePath);
|
||||
|
||||
String relativePath = project.getProjectFolder().getFolder().getName()
|
||||
|
|
|
@ -15,9 +15,6 @@ import java.util.GregorianCalendar;
|
|||
import java.util.List;
|
||||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder;
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.blackbox.MainGenerator;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.storage.FilesStorage;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.util.ServiceCredentials;
|
||||
|
@ -186,22 +183,10 @@ public class ProjectBuilder {
|
|||
filesStorage.saveInputStreamInItem(serviceCredentials.getUserName(),
|
||||
project.getProjectTarget().getProjectDeploy().getPackageProject().getId(), inputStream);
|
||||
|
||||
WorkspaceItem packageProject = filesStorage.retrieveItemInfoOnWorkspace(serviceCredentials.getUserName(),
|
||||
ItemDescription packageProjectItemDescription = filesStorage.retrieveItemInfoOnWorkspace(
|
||||
serviceCredentials.getUserName(),
|
||||
project.getProjectTarget().getProjectDeploy().getPackageProject().getId());
|
||||
|
||||
ItemDescription packageProjectItemDescription;
|
||||
try {
|
||||
packageProjectItemDescription = new ItemDescription(packageProject.getId(), packageProject.getName(),
|
||||
packageProject.getOwner().getPortalLogin(), packageProject.getPath(),
|
||||
packageProject.getType().name());
|
||||
packageProjectItemDescription.setPublicLink(packageProject.getPublicLink(false));
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
|
||||
project.getProjectTarget().getProjectDeploy().setPackageProject(packageProjectItemDescription);
|
||||
logger.debug("ProjectDeploy: " + project.getProjectTarget().getProjectDeploy());
|
||||
|
||||
|
@ -239,24 +224,11 @@ public class ProjectBuilder {
|
|||
project.getProjectTarget().getProjectDeploy().getCodeJar().getId());
|
||||
}
|
||||
|
||||
WorkspaceItem deployableCodeJarItem = filesStorage.copyItemOnFolder(serviceCredentials.getUserName(),
|
||||
ItemDescription dCodeJar = filesStorage.copyItemOnFolder(serviceCredentials.getUserName(),
|
||||
project.getProjectTarget().getProjectCompile().getCodeJar().getId(),
|
||||
project.getProjectTarget().getProjectDeploy().getFolder().getId());
|
||||
|
||||
logger.debug("DeployableCodeJarItem:" + deployableCodeJarItem);
|
||||
|
||||
ItemDescription dCodeJar;
|
||||
try {
|
||||
dCodeJar = new ItemDescription(deployableCodeJarItem.getId(), deployableCodeJarItem.getName(),
|
||||
deployableCodeJarItem.getOwner().getPortalLogin(), deployableCodeJarItem.getPath(),
|
||||
deployableCodeJarItem.getType().name());
|
||||
dCodeJar.setPublicLink(deployableCodeJarItem.getPublicLink(false));
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
logger.debug("DeployableCodeJarItem:" + dCodeJar);
|
||||
|
||||
project.getProjectTarget().getProjectDeploy().setCodeJar(dCodeJar);
|
||||
logger.debug("ProjectDeploy: " + project.getProjectTarget().getProjectDeploy());
|
||||
|
@ -348,22 +320,12 @@ public class ProjectBuilder {
|
|||
filesStorage.deleteFolder(serviceCredentials.getUserName(), project.getProjectTarget().getFolder().getId(),
|
||||
STATISTICAL_ALGORITHM_DEPLOY_FOLDER_NAME);
|
||||
|
||||
WorkspaceFolder deployFolder = filesStorage.createFolder(serviceCredentials.getUserName(),
|
||||
ItemDescription deployFolder = filesStorage.createFolder(serviceCredentials.getUserName(),
|
||||
project.getProjectTarget().getFolder().getId(), STATISTICAL_ALGORITHM_DEPLOY_FOLDER_NAME,
|
||||
STATISTICAL_ALGORITHM_DEPLOY_FOLDER_DESCRIPTION);
|
||||
logger.debug("PublicFolder:" + deployFolder);
|
||||
|
||||
ItemDescription pFolder;
|
||||
try {
|
||||
pFolder = new ItemDescription(deployFolder.getId(), deployFolder.getName(),
|
||||
deployFolder.getOwner().getPortalLogin(), deployFolder.getPath(), deployFolder.getType().name());
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
ProjectDeploy projectDeploy = new ProjectDeploy(pFolder);
|
||||
ProjectDeploy projectDeploy = new ProjectDeploy(deployFolder);
|
||||
project.getProjectTarget().setProjectDeploy(projectDeploy);
|
||||
|
||||
}
|
||||
|
@ -440,13 +402,12 @@ public class ProjectBuilder {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void createShareInfo() throws StatAlgoImporterServiceException {
|
||||
ProjectShareInfoBuilder projectShareInfoBuilder=new ProjectShareInfoBuilder(serviceCredentials, project);
|
||||
ProjectShareInfoBuilder projectShareInfoBuilder = new ProjectShareInfoBuilder(serviceCredentials, project);
|
||||
projectShareInfoBuilder.create();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void createProjectPackage() throws StatAlgoImporterServiceException {
|
||||
List<String> idsToExclude = new ArrayList<String>();
|
||||
|
@ -467,32 +428,19 @@ public class ProjectBuilder {
|
|||
try {
|
||||
inputStream = Files.newInputStream(projectPackageFile.toPath(), StandardOpenOption.READ);
|
||||
} catch (IOException e) {
|
||||
logger.error("Error input stream generation for project package file: " + e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
logger.error("Error input stream generation for project package file: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
}
|
||||
|
||||
WorkspaceItem projectPackageItem;
|
||||
ItemDescription packageUrl;
|
||||
|
||||
projectPackageItem = filesStorage.createItemOnWorkspace(serviceCredentials.getUserName(), inputStream,
|
||||
packageUrl = filesStorage.createItemOnWorkspace(serviceCredentials.getUserName(), inputStream,
|
||||
project.getInputData().getProjectInfo().getAlgorithmNameToClassName() + PROJECT_PACKAGE_EXTENTION,
|
||||
PROJECT_PACKAGE_DESCRIPTION, PROJECT_PACKAGE_MIMETYPE,
|
||||
project.getProjectTarget().getProjectDeploy().getFolder().getId());
|
||||
|
||||
logger.debug("ProjectPackageItem:" + projectPackageItem);
|
||||
logger.debug("ProjectPackageItem:" + packageUrl);
|
||||
|
||||
ItemDescription packageUrl;
|
||||
try {
|
||||
packageUrl = new ItemDescription(projectPackageItem.getId(), projectPackageItem.getName(),
|
||||
projectPackageItem.getOwner().getPortalLogin(), projectPackageItem.getPath(),
|
||||
projectPackageItem.getType().name());
|
||||
packageUrl.setPublicLink(projectPackageItem.getPublicLink(false));
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
project.getProjectTarget().getProjectDeploy().setPackageProject(packageUrl);
|
||||
}
|
||||
|
||||
|
@ -501,22 +449,12 @@ public class ProjectBuilder {
|
|||
filesStorage.deleteFolder(serviceCredentials.getUserName(), project.getProjectFolder().getFolder().getId(),
|
||||
STATISTICAL_ALGORITHM_TARGET_FOLDER_NAME);
|
||||
|
||||
WorkspaceFolder targetFolder = filesStorage.createFolder(serviceCredentials.getUserName(),
|
||||
ItemDescription targetFolder = filesStorage.createFolder(serviceCredentials.getUserName(),
|
||||
project.getProjectFolder().getFolder().getId(), STATISTICAL_ALGORITHM_TARGET_FOLDER_NAME,
|
||||
STATISTICAL_ALGORITHM_TARGET_FOLDER_DESCRIPTION);
|
||||
logger.debug("TargetFolder:" + targetFolder);
|
||||
|
||||
ItemDescription tFolder;
|
||||
try {
|
||||
tFolder = new ItemDescription(targetFolder.getId(), targetFolder.getName(),
|
||||
targetFolder.getOwner().getPortalLogin(), targetFolder.getPath(), targetFolder.getType().name());
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
ProjectTarget projectTarget = new ProjectTarget(tFolder);
|
||||
ProjectTarget projectTarget = new ProjectTarget(targetFolder);
|
||||
project.setProjectTarget(projectTarget);
|
||||
|
||||
}
|
||||
|
@ -526,67 +464,45 @@ public class ProjectBuilder {
|
|||
filesStorage.deleteFolder(serviceCredentials.getUserName(), project.getProjectTarget().getFolder().getId(),
|
||||
STATISTICAL_ALGORITHM_COMPILE_FOLDER_NAME);
|
||||
|
||||
WorkspaceFolder compileFolder = filesStorage.createFolder(serviceCredentials.getUserName(),
|
||||
ItemDescription compileFolder = filesStorage.createFolder(serviceCredentials.getUserName(),
|
||||
project.getProjectTarget().getFolder().getId(), STATISTICAL_ALGORITHM_COMPILE_FOLDER_NAME,
|
||||
STATISTICAL_ALGORITHM_COMPILE_FOLDER_DESCRIPTION);
|
||||
logger.debug("CompileFolder:" + compileFolder);
|
||||
|
||||
ItemDescription cFolder;
|
||||
try {
|
||||
cFolder = new ItemDescription(compileFolder.getId(), compileFolder.getName(),
|
||||
compileFolder.getOwner().getPortalLogin(), compileFolder.getPath(), compileFolder.getType().name());
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
|
||||
ProjectCompile projectCompile = new ProjectCompile(cFolder);
|
||||
ProjectCompile projectCompile = new ProjectCompile(compileFolder);
|
||||
project.getProjectTarget().setProjectCompile(projectCompile);
|
||||
}
|
||||
|
||||
private void createBackupFolder() throws StatAlgoImporterServiceException {
|
||||
FilesStorage filesStorage = new FilesStorage();
|
||||
|
||||
WorkspaceItem backupFolder = filesStorage.find(serviceCredentials.getUserName(),
|
||||
ItemDescription backupFolder = filesStorage.find(serviceCredentials.getUserName(),
|
||||
project.getProjectFolder().getFolder().getId(), STATISTICAL_ALGORITHM_BACKUP_FOLDER_NAME);
|
||||
|
||||
if (backupFolder == null) {
|
||||
WorkspaceFolder newBackupFolder = filesStorage.createFolder(serviceCredentials.getUserName(),
|
||||
ItemDescription newBackupFolder = filesStorage.createFolder(serviceCredentials.getUserName(),
|
||||
project.getProjectFolder().getFolder().getId(), STATISTICAL_ALGORITHM_BACKUP_FOLDER_NAME,
|
||||
STATISTICAL_ALGORITHM_BACKUP_FOLDER_DESCRIPTION);
|
||||
logger.debug("BackupFolder:" + backupFolder);
|
||||
|
||||
try {
|
||||
backupFolderId = newBackupFolder.getId();
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error retrieving Backup Folder Id: " + e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException("Error retrieving Backup Folder Id", e);
|
||||
}
|
||||
backupFolderId = newBackupFolder.getId();
|
||||
|
||||
} else {
|
||||
try {
|
||||
backupFolderId = backupFolder.getId();
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error("Error retrieving Backup Folder Id: " + e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException("Error retrieving Backup Folder Id", e);
|
||||
}
|
||||
backupFolderId = backupFolder.getId();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void createAlgorithm() throws StatAlgoImporterServiceException {
|
||||
AlgorithmGenerator algorithmGenerator = new AlgorithmGenerator(project,serviceCredentials);
|
||||
AlgorithmGenerator algorithmGenerator = new AlgorithmGenerator(project, serviceCredentials);
|
||||
algorithmJava = algorithmGenerator.createAlgorithm();
|
||||
|
||||
FilesStorage filesStorage = new FilesStorage();
|
||||
WorkspaceItem algorithmItem;
|
||||
ItemDescription codeSource;
|
||||
|
||||
try {
|
||||
algorithmItem = filesStorage.createItemOnWorkspace(serviceCredentials.getUserName(),
|
||||
codeSource = filesStorage.createItemOnWorkspace(serviceCredentials.getUserName(),
|
||||
Files.newInputStream(algorithmJava, StandardOpenOption.READ),
|
||||
project.getInputData().getProjectInfo().getAlgorithmNameToClassName() + ALGORITHM_EXTENTION,
|
||||
ALGORITHM_DESCRIPTION, ALGORITHM_MIMETYPE,
|
||||
|
@ -597,18 +513,6 @@ public class ProjectBuilder {
|
|||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
ItemDescription codeSource;
|
||||
try {
|
||||
codeSource = new ItemDescription(algorithmItem.getId(), algorithmItem.getName(),
|
||||
algorithmItem.getOwner().getPortalLogin(), algorithmItem.getPath(), algorithmItem.getType().name());
|
||||
codeSource.setPublicLink(algorithmItem.getPublicLink(false));
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
|
||||
project.getProjectTarget().getProjectCompile().setCodeSource(codeSource);
|
||||
logger.debug("ProjectCompile: " + project.getProjectTarget().getProjectCompile());
|
||||
|
||||
|
@ -619,31 +523,18 @@ public class ProjectBuilder {
|
|||
infoTXT = integrationInfoGenerator.createInfo();
|
||||
|
||||
FilesStorage filesStorage = new FilesStorage();
|
||||
WorkspaceItem infoItem;
|
||||
ItemDescription integrationItemDescription;
|
||||
|
||||
try {
|
||||
infoItem = filesStorage.createItemOnWorkspace(serviceCredentials.getUserName(),
|
||||
integrationItemDescription = filesStorage.createItemOnWorkspace(serviceCredentials.getUserName(),
|
||||
Files.newInputStream(infoTXT, StandardOpenOption.READ), INFO_NAME + INFO_EXTENTION,
|
||||
INFO_DESCRIPTION, INFO_MIMETYPE,
|
||||
project.getProjectTarget().getProjectCompile().getFolder().getId());
|
||||
} catch (IOException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
ItemDescription integrationItemDescription;
|
||||
try {
|
||||
integrationItemDescription = new ItemDescription(infoItem.getId(), infoItem.getName(),
|
||||
infoItem.getOwner().getPortalLogin(), infoItem.getPath(), infoItem.getType().name());
|
||||
integrationItemDescription.setPublicLink(infoItem.getPublicLink(false));
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
|
||||
project.getProjectTarget().getProjectCompile().setIntegrationInfo(integrationItemDescription);
|
||||
logger.debug("ProjectCompile: " + project.getProjectTarget().getProjectCompile());
|
||||
|
||||
|
@ -680,8 +571,7 @@ public class ProjectBuilder {
|
|||
try {
|
||||
Files.copy(algorithmJava, algorithmTempFile);
|
||||
} catch (IOException e) {
|
||||
logger.error("Error in alogrithm java copy in package directory: " + e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
logger.error("Error in alogrithm java copy in package directory: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
|
@ -689,8 +579,7 @@ public class ProjectBuilder {
|
|||
try {
|
||||
Files.copy(infoTXT, infoTempFile);
|
||||
} catch (IOException e) {
|
||||
logger.error("Error in info copy in temp directory: " + e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
logger.error("Error in info copy in temp directory: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
|
@ -699,8 +588,7 @@ public class ProjectBuilder {
|
|||
try {
|
||||
Files.delete(algorithmTempFile);
|
||||
} catch (IOException e) {
|
||||
logger.error("Error in delete java file in package directory: " + e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
logger.error("Error in delete java file in package directory: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
|
@ -711,9 +599,8 @@ public class ProjectBuilder {
|
|||
FileUtils.cleanDirectory(tempDirectory.toFile());
|
||||
FileUtils.deleteDirectory(tempDirectory.toFile());
|
||||
} catch (IOException e) {
|
||||
logger.error("Error in delete temp directory: " + e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
logger.error("Error in delete temp directory: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException("Error deleting temp directory: " + e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
return;
|
||||
|
@ -725,32 +612,20 @@ public class ProjectBuilder {
|
|||
project.getInputData().getProjectInfo().getAlgorithmNameToClassName() + JAR_EXTENTION);
|
||||
|
||||
FilesStorage filesStorage = new FilesStorage();
|
||||
WorkspaceItem codeJarItem;
|
||||
ItemDescription codeJarItemDescription;
|
||||
;
|
||||
|
||||
try {
|
||||
codeJarItem = filesStorage.createItemOnWorkspace(serviceCredentials.getUserName(),
|
||||
codeJarItemDescription = filesStorage.createItemOnWorkspace(serviceCredentials.getUserName(),
|
||||
Files.newInputStream(codeJar, StandardOpenOption.READ),
|
||||
project.getInputData().getProjectInfo().getAlgorithmNameToClassName() + JAR_EXTENTION,
|
||||
CODE_JAR_DESCRIPTION, CODE_JAR_MIMETYPE,
|
||||
project.getProjectTarget().getProjectCompile().getFolder().getId());
|
||||
} catch (IOException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
ItemDescription codeJarItemDescription;
|
||||
try {
|
||||
codeJarItemDescription = new ItemDescription(codeJarItem.getId(), codeJarItem.getName(),
|
||||
codeJarItem.getOwner().getPortalLogin(), codeJarItem.getPath(), codeJarItem.getType().name());
|
||||
codeJarItemDescription.setPublicLink(codeJarItem.getPublicLink(false));
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
|
||||
project.getProjectTarget().getProjectCompile().setCodeJar(codeJarItemDescription);
|
||||
logger.debug("ProjectCompile: " + project.getProjectTarget().getProjectCompile());
|
||||
|
||||
|
@ -791,8 +666,7 @@ public class ProjectBuilder {
|
|||
}
|
||||
|
||||
} catch (IOException | InterruptedException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
|
@ -831,8 +705,7 @@ public class ProjectBuilder {
|
|||
logger.debug("Create Algo Jar: Exit Value is " + exitValue);
|
||||
|
||||
} catch (IOException | InterruptedException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,8 +5,6 @@ import java.nio.file.Files;
|
|||
import java.nio.file.Path;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
|
||||
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.util.ServiceCredentials;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription;
|
||||
|
@ -35,8 +33,8 @@ public class CodeSave {
|
|||
filesStorage.saveStringInItem(serviceCredentials.getUserName(), file.getId(), code);
|
||||
}
|
||||
|
||||
|
||||
public ItemDescription saveNew(ServiceCredentials serviceCredentials, ItemDescription file, String code, String folderId) throws StatAlgoImporterServiceException {
|
||||
public ItemDescription saveNew(ServiceCredentials serviceCredentials, ItemDescription file, String code,
|
||||
String folderId) throws StatAlgoImporterServiceException {
|
||||
Path tempFile = createTempFile(file, code);
|
||||
ItemDescription codeItem = saveInWorkspace(tempFile, serviceCredentials, file, folderId);
|
||||
return codeItem;
|
||||
|
@ -52,7 +50,7 @@ public class CodeSave {
|
|||
return tempFile;
|
||||
|
||||
} catch (IOException e) {
|
||||
logger.error(e.getLocalizedMessage(),e);
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
|
@ -60,28 +58,17 @@ public class CodeSave {
|
|||
private ItemDescription saveInWorkspace(Path tempFile, ServiceCredentials serviceCredentials, ItemDescription file,
|
||||
String folderId) throws StatAlgoImporterServiceException {
|
||||
FilesStorage filesStorage = new FilesStorage();
|
||||
WorkspaceItem worksapceItem;
|
||||
ItemDescription item;
|
||||
|
||||
try {
|
||||
worksapceItem = filesStorage.createItemOnWorkspace(serviceCredentials.getUserName(),
|
||||
item = filesStorage.createItemOnWorkspace(serviceCredentials.getUserName(),
|
||||
Files.newInputStream(tempFile, StandardOpenOption.READ), file.getName(), ALGORITHM_DESCRIPTION,
|
||||
ALGORITHM_MIMETYPE, folderId);
|
||||
} catch (IOException e) {
|
||||
logger.error(e.getLocalizedMessage(),e);
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage(), e);
|
||||
}
|
||||
|
||||
ItemDescription item;
|
||||
try {
|
||||
item = new ItemDescription(worksapceItem.getId(), worksapceItem.getName(),
|
||||
worksapceItem.getOwner().getPortalLogin(), worksapceItem.getPath(), worksapceItem.getType().name());
|
||||
item.setPublicLink(worksapceItem.getPublicLink(false));
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error(e.getLocalizedMessage(),e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
|
||||
return item;
|
||||
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@ import java.nio.file.StandardOpenOption;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.util.ServiceCredentials;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.info.InfoData;
|
||||
|
@ -40,14 +39,13 @@ public class DeploySave {
|
|||
private InfoData infoData;
|
||||
private String infoText;
|
||||
private ItemDescription codeJarAdminCopy;
|
||||
|
||||
|
||||
public DeploySave(ServiceCredentials serviceCredentials, Project project, InfoData infoData) {
|
||||
this.serviceCredentials = serviceCredentials;
|
||||
this.project = project;
|
||||
this.infoData = infoData;
|
||||
this.infoText = null;
|
||||
this.codeJarAdminCopy=null;
|
||||
this.codeJarAdminCopy = null;
|
||||
filesStorage = new FilesStorage();
|
||||
|
||||
}
|
||||
|
@ -58,21 +56,11 @@ public class DeploySave {
|
|||
InputStream codeJarInputStream = filesStorage.retrieveItemOnWorkspace(serviceCredentials.getUserName(),
|
||||
codeJar.getId());
|
||||
|
||||
WorkspaceItem codeJarItem = filesStorage.createItemOnWorkspaceHowAdmin(ADMIN_USER, codeJarInputStream,
|
||||
codeJar.getName(), CODE_JAR_DESCRIPTION, CODE_JAR_MIMETYPE, DESTINATION_FOLDER);
|
||||
codeJarAdminCopy = filesStorage.createItemOnWorkspaceHowAdmin(ADMIN_USER, codeJarInputStream, codeJar.getName(),
|
||||
CODE_JAR_DESCRIPTION, CODE_JAR_MIMETYPE, DESTINATION_FOLDER);
|
||||
|
||||
try {
|
||||
codeJarAdminCopy = new ItemDescription(codeJarItem.getId(), codeJarItem.getName(),
|
||||
codeJarItem.getOwner().getPortalLogin(), codeJarItem.getPath(), codeJarItem.getType().name());
|
||||
codeJarAdminCopy.setPublicLink(codeJarItem.getPublicLink(false));
|
||||
} catch (Throwable e) {
|
||||
logger.error(e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
|
||||
createInfoText();
|
||||
|
||||
|
||||
try {
|
||||
int codeJarNamelenght = codeJar.getName().length();
|
||||
String codeJarName;
|
||||
|
@ -88,8 +76,8 @@ public class DeploySave {
|
|||
Files.write(reportInstallTempFile, lines, Charset.defaultCharset(), StandardOpenOption.WRITE);
|
||||
logger.debug(reportInstallTempFile.toString());
|
||||
InputStream reportInstallInputStream = Files.newInputStream(reportInstallTempFile);
|
||||
|
||||
filesStorage.createItemOnWorkspaceHowAdmin(ADMIN_USER, reportInstallInputStream,
|
||||
|
||||
filesStorage.createItemOnWorkspaceHowAdmin(ADMIN_USER, reportInstallInputStream,
|
||||
codeJarName + "_install.txt", codeJarName + "_install.txt", TXT_MIMETYPE, DESTINATION_FOLDER);
|
||||
|
||||
} catch (IOException e) {
|
||||
|
@ -126,7 +114,4 @@ public class DeploySave {
|
|||
return infoData;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -19,11 +19,15 @@ import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
|||
import org.gcube.common.homelibrary.home.workspace.folder.items.ExternalFile;
|
||||
import org.gcube.common.homelibrary.jcr.workspace.JCRWorkspaceSharedFolder;
|
||||
import org.gcube.common.homelibrary.util.zip.ZipUtil;
|
||||
import org.gcube.common.storagehub.client.dsl.FileContainer;
|
||||
import org.gcube.common.storagehub.client.dsl.FolderContainer;
|
||||
import org.gcube.common.storagehub.client.dsl.ItemContainer;
|
||||
import org.gcube.common.storagehub.client.dsl.ListResolver;
|
||||
import org.gcube.common.storagehub.client.dsl.OpenResolver;
|
||||
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.workspace.ItemDescription;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -36,7 +40,8 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
public class FilesStorage {
|
||||
|
||||
private static final String STATISTICAL_ALGORITHM_PROJECT_MIMETYPE = "text/xml";
|
||||
// private static final String STATISTICAL_ALGORITHM_PROJECT_MIMETYPE =
|
||||
// "text/xml";
|
||||
private static final String STATISTICAL_ALGORITHM_PROJECT_FILE_DESCRIPTION = "Statistical Algorithm Project File";
|
||||
private static final String STATISTICAL_ALGORITHM_PROJECT_FILE_NAME = "stat_algo.project";
|
||||
|
||||
|
@ -75,11 +80,11 @@ public class FilesStorage {
|
|||
* Item id
|
||||
* @param folderId
|
||||
* Folder id
|
||||
* @return workspace item
|
||||
* @return Item description
|
||||
* @throws StatAlgoImporterServiceException
|
||||
* exception
|
||||
*/
|
||||
public WorkspaceItem copyItemOnFolder(String user, String itemId, String folderId)
|
||||
public ItemDescription copyItemOnFolder(String user, String itemId, String folderId)
|
||||
throws StatAlgoImporterServiceException {
|
||||
Workspace ws;
|
||||
try {
|
||||
|
@ -94,7 +99,11 @@ public class FilesStorage {
|
|||
|
||||
WorkspaceItem item = ws.copy(itemId, folderId);
|
||||
|
||||
return item;
|
||||
ItemDescription itemDescription = new ItemDescription(item.getId(), item.getName(),
|
||||
item.getOwner().getPortalLogin(), item.getPath(), item.getType().name());
|
||||
itemDescription.setPublicLink(item.getPublicLink(false));
|
||||
|
||||
return itemDescription;
|
||||
} catch (Throwable e) {
|
||||
logger.error("Copy item on folder on workspace: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
@ -112,11 +121,11 @@ public class FilesStorage {
|
|||
* Destination folder id
|
||||
* @param newName
|
||||
* New name
|
||||
* @return workspace item
|
||||
* @return Item description
|
||||
* @throws StatAlgoImporterServiceException
|
||||
* exception
|
||||
*/
|
||||
public WorkspaceItem copyItemOnFolderWithNewName(String user, String itemId, String folderId, String newName)
|
||||
public ItemDescription copyItemOnFolderWithNewName(String user, String itemId, String folderId, String newName)
|
||||
throws StatAlgoImporterServiceException {
|
||||
Workspace ws;
|
||||
try {
|
||||
|
@ -132,7 +141,10 @@ public class FilesStorage {
|
|||
|
||||
WorkspaceItem item = ws.copy(itemId, newName, folderId);
|
||||
|
||||
return item;
|
||||
ItemDescription itemDescription = new ItemDescription(item.getId(), item.getName(),
|
||||
item.getOwner().getPortalLogin(), item.getPath(), item.getType().name());
|
||||
|
||||
return itemDescription;
|
||||
} catch (Throwable e) {
|
||||
logger.error("Copy item on folder with new name on workspace: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
@ -151,7 +163,7 @@ public class FilesStorage {
|
|||
*/
|
||||
public void deleteItemOnFolder(String user, String itemId) throws StatAlgoImporterServiceException {
|
||||
try {
|
||||
logger.debug("Delete Item: [User=" + user + ", ItemId=" + itemId+"]");
|
||||
logger.debug("Delete Item: [User=" + user + ", ItemId=" + itemId + "]");
|
||||
StorageHubClient shc = new StorageHubClient();
|
||||
OpenResolver openResolver = shc.open(itemId);
|
||||
|
||||
|
@ -214,11 +226,11 @@ public class FilesStorage {
|
|||
* folder name
|
||||
* @param folderDescription
|
||||
* folder description
|
||||
* @return workspace folder
|
||||
* @return Item description
|
||||
* @throws StatAlgoImporterServiceException
|
||||
* exception
|
||||
*/
|
||||
public WorkspaceFolder createFolder(String user, String parentId, String folderName, String folderDescription)
|
||||
public ItemDescription createFolder(String user, String parentId, String folderName, String folderDescription)
|
||||
throws StatAlgoImporterServiceException {
|
||||
Workspace ws;
|
||||
try {
|
||||
|
@ -234,7 +246,11 @@ public class FilesStorage {
|
|||
|
||||
WorkspaceFolder projectTargetFolder = ws.createFolder(folderName, folderDescription, parentId);
|
||||
|
||||
return projectTargetFolder;
|
||||
ItemDescription itemDescription = new ItemDescription(projectTargetFolder.getId(),
|
||||
projectTargetFolder.getName(), projectTargetFolder.getOwner().getPortalLogin(),
|
||||
projectTargetFolder.getPath(), projectTargetFolder.getType().name());
|
||||
|
||||
return itemDescription;
|
||||
} catch (Throwable e) {
|
||||
logger.error("Create folder on workspace: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
@ -251,24 +267,35 @@ public class FilesStorage {
|
|||
* Parent id
|
||||
* @param name
|
||||
* Name
|
||||
* @return workspace item
|
||||
* @return Item description
|
||||
* @throws StatAlgoImporterServiceException
|
||||
* Exception
|
||||
*/
|
||||
public WorkspaceItem find(String user, String parentId, String name) throws StatAlgoImporterServiceException {
|
||||
Workspace ws;
|
||||
public ItemDescription find(String user, String parentId, String name) throws StatAlgoImporterServiceException {
|
||||
try {
|
||||
logger.info("Find: [user=" + user + ", parentId=" + parentId + ", name=" + name + "]");
|
||||
StorageHubClient shc = new StorageHubClient();
|
||||
OpenResolver openResolver = shc.open(parentId);
|
||||
|
||||
ws = HomeLibrary.getUserWorkspace(user);
|
||||
FolderContainer folderContainer = openResolver.asFolder();
|
||||
ListResolver listResolver = folderContainer.findByName(name);
|
||||
List<? extends Item> items = listResolver.getItems();
|
||||
if (items == null || items.isEmpty()) {
|
||||
logger.debug("No item found");
|
||||
return null;
|
||||
} else {
|
||||
Item item = items.get(0);
|
||||
logger.debug("Item: " + item);
|
||||
if (item != null) {
|
||||
ItemDescription itemDescription = new ItemDescription(item.getId(), item.getName(), item.getOwner(),
|
||||
item.getPath(), item.getClass().getSimpleName());
|
||||
|
||||
WorkspaceItem workSpaceItem = ws.getItem(parentId);
|
||||
if (!workSpaceItem.isFolder()) {
|
||||
throw new StatAlgoImporterServiceException("No valid project folder!");
|
||||
return itemDescription;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return ws.find(name, parentId);
|
||||
|
||||
} catch (Throwable e) {
|
||||
logger.error("Find: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
@ -277,41 +304,6 @@ public class FilesStorage {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param user
|
||||
* User
|
||||
* @param parentName
|
||||
* Parent name
|
||||
* @param name
|
||||
* Name
|
||||
* @return WorkspaceItem
|
||||
* @throws StatAlgoImporterServiceException
|
||||
* Exception
|
||||
*/
|
||||
public WorkspaceItem findInParentName(String user, String parentName, String name)
|
||||
throws StatAlgoImporterServiceException {
|
||||
Workspace ws;
|
||||
try {
|
||||
logger.info("Find by parent name: [user=" + user + ", parentName=" + parentName + ", name=" + name + "]");
|
||||
|
||||
ws = HomeLibrary.getUserWorkspace(user);
|
||||
|
||||
WorkspaceItem parentItem = ws.getItem(parentName);
|
||||
if (!parentItem.isFolder()) {
|
||||
throw new StatAlgoImporterServiceException("No valid folder: " + parentName + "!");
|
||||
}
|
||||
|
||||
return ws.find(name, parentItem.getId());
|
||||
|
||||
} catch (Throwable e) {
|
||||
logger.error("Find by parent name: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param user
|
||||
|
@ -325,28 +317,27 @@ public class FilesStorage {
|
|||
*/
|
||||
public void saveStatisticalAlgorithmProject(String user, InputStream inputStream, String folderId)
|
||||
throws StatAlgoImporterServiceException {
|
||||
Workspace ws;
|
||||
try {
|
||||
logger.info("Save project: [user=" + user + ", folderId=" + folderId + "]");
|
||||
StorageHubClient shc = new StorageHubClient();
|
||||
OpenResolver openResolver = shc.open(folderId);
|
||||
|
||||
ws = HomeLibrary.getUserWorkspace(user);
|
||||
|
||||
WorkspaceItem workSpaceItem = ws.getItem(folderId);
|
||||
if (!workSpaceItem.isFolder()) {
|
||||
throw new StatAlgoImporterServiceException("Destination is not a folder!");
|
||||
}
|
||||
|
||||
WorkspaceItem projectItem = ws.find(STATISTICAL_ALGORITHM_PROJECT_FILE_NAME, folderId);
|
||||
|
||||
if (projectItem == null) {
|
||||
ws.createExternalFile(STATISTICAL_ALGORITHM_PROJECT_FILE_NAME,
|
||||
STATISTICAL_ALGORITHM_PROJECT_FILE_DESCRIPTION, STATISTICAL_ALGORITHM_PROJECT_MIMETYPE,
|
||||
inputStream, folderId);
|
||||
FolderContainer folderContainer = openResolver.asFolder();
|
||||
ListResolver listResolver = folderContainer.findByName(STATISTICAL_ALGORITHM_PROJECT_FILE_NAME);
|
||||
List<? extends Item> items = listResolver.getItems();
|
||||
if (items == null || items.isEmpty()) {
|
||||
logger.debug("No item found");
|
||||
FileContainer fileContainer = folderContainer.uploadFile(inputStream,
|
||||
STATISTICAL_ALGORITHM_PROJECT_FILE_NAME, STATISTICAL_ALGORITHM_PROJECT_FILE_DESCRIPTION);
|
||||
logger.debug("Item uploaded: " + fileContainer.get().getId());
|
||||
} else {
|
||||
ws.updateItem(projectItem.getId(), inputStream);
|
||||
}
|
||||
Item item = items.get(0);
|
||||
logger.debug("Item found: " + item);
|
||||
FileContainer fileContainer = folderContainer.uploadFile(inputStream,
|
||||
STATISTICAL_ALGORITHM_PROJECT_FILE_NAME, STATISTICAL_ALGORITHM_PROJECT_FILE_DESCRIPTION);
|
||||
logger.debug("Item updated: " + fileContainer.get().getId());
|
||||
|
||||
return;
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
logger.error("Save project on workspace: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
@ -419,7 +410,7 @@ public class FilesStorage {
|
|||
* @throws StatAlgoImporterServiceException
|
||||
* Exceptioon
|
||||
*/
|
||||
public WorkspaceItem createItemOnWorkspace(String user, InputStream inputStream, String name, String description,
|
||||
public ItemDescription createItemOnWorkspace(String user, InputStream inputStream, String name, String description,
|
||||
String mimeType, String folderId) throws StatAlgoImporterServiceException {
|
||||
Workspace ws;
|
||||
try {
|
||||
|
@ -436,7 +427,11 @@ public class FilesStorage {
|
|||
|
||||
ExternalFile workspaceItem = ws.createExternalFile(name, description, mimeType, inputStream, folderId);
|
||||
|
||||
return workspaceItem;
|
||||
ItemDescription itemDescription = new ItemDescription(workspaceItem.getId(), workspaceItem.getName(),
|
||||
workspaceItem.getOwner().getPortalLogin(), workspaceItem.getPath(), workspaceItem.getType().name());
|
||||
itemDescription.setPublicLink(workspaceItem.getPublicLink(false));
|
||||
|
||||
return itemDescription;
|
||||
} catch (Throwable e) {
|
||||
logger.error("Create item on workspace: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
@ -458,11 +453,11 @@ public class FilesStorage {
|
|||
* MimeType
|
||||
* @param folderName
|
||||
* Folder Path
|
||||
* @return WorkspaceItem
|
||||
* @return Item description
|
||||
* @throws StatAlgoImporterServiceException
|
||||
* Exception
|
||||
*/
|
||||
public WorkspaceItem createItemOnWorkspaceHowAdmin(String user, InputStream inputStream, String name,
|
||||
public ItemDescription createItemOnWorkspaceHowAdmin(String user, InputStream inputStream, String name,
|
||||
String description, String mimeType, String folderName) throws StatAlgoImporterServiceException {
|
||||
Workspace ws;
|
||||
try {
|
||||
|
@ -478,14 +473,27 @@ public class FilesStorage {
|
|||
}
|
||||
|
||||
WorkspaceItem codeJar = ws.find(name, folderItem.getId());
|
||||
|
||||
ItemDescription itemDescription;
|
||||
if (codeJar == null) {
|
||||
return ws.createExternalFile(name, description, mimeType, inputStream, folderItem.getId());
|
||||
WorkspaceItem item = ws.createExternalFile(name, description, mimeType, inputStream,
|
||||
folderItem.getId());
|
||||
|
||||
itemDescription = new ItemDescription(item.getId(), item.getName(), item.getOwner().getPortalLogin(),
|
||||
item.getPath(), item.getType().name());
|
||||
itemDescription.setPublicLink(item.getPublicLink(false));
|
||||
|
||||
} else {
|
||||
|
||||
ws.updateItem(codeJar.getId(), inputStream);
|
||||
return codeJar;
|
||||
|
||||
itemDescription = new ItemDescription(codeJar.getId(), codeJar.getName(),
|
||||
codeJar.getOwner().getPortalLogin(), codeJar.getPath(), codeJar.getType().name());
|
||||
itemDescription.setPublicLink(codeJar.getPublicLink(false));
|
||||
|
||||
}
|
||||
|
||||
return itemDescription;
|
||||
|
||||
} catch (Throwable e) {
|
||||
logger.error("Create item on workspace how admin: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
@ -573,11 +581,11 @@ public class FilesStorage {
|
|||
* User
|
||||
* @param itemId
|
||||
* Item id
|
||||
* @return Workspace Item
|
||||
* @return Item description
|
||||
* @throws StatAlgoImporterServiceException
|
||||
* Exception
|
||||
*/
|
||||
public WorkspaceItem retrieveItemInfoOnWorkspace(String user, String itemId)
|
||||
public ItemDescription retrieveItemInfoOnWorkspace(String user, String itemId)
|
||||
throws StatAlgoImporterServiceException {
|
||||
Workspace ws;
|
||||
try {
|
||||
|
@ -585,8 +593,13 @@ public class FilesStorage {
|
|||
|
||||
ws = HomeLibrary.getUserWorkspace(user);
|
||||
|
||||
WorkspaceItem workSpaceItem = ws.getItem(itemId);
|
||||
return workSpaceItem;
|
||||
WorkspaceItem item = ws.getItem(itemId);
|
||||
|
||||
ItemDescription itemDescription = new ItemDescription(item.getId(), item.getName(),
|
||||
item.getOwner().getPortalLogin(), item.getPath(), item.getType().name());
|
||||
itemDescription.setPublicLink(item.getPublicLink(false));
|
||||
|
||||
return itemDescription;
|
||||
|
||||
} catch (Throwable e) {
|
||||
logger.error("Retrieve item info on workspace: " + e.getLocalizedMessage(), e);
|
||||
|
@ -594,6 +607,37 @@ public class FilesStorage {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param user
|
||||
* User
|
||||
* @param itemId
|
||||
* Item id
|
||||
* @return Item description
|
||||
* @throws StatAlgoImporterServiceException
|
||||
* Exception
|
||||
*/
|
||||
public ItemDescription retrieveFolderInfoOnWorkspace(String user, String itemId)
|
||||
throws StatAlgoImporterServiceException {
|
||||
Workspace ws;
|
||||
try {
|
||||
logger.info("Retrieve folder info on workspace: [user=" + user + ", itemId=" + itemId + "]");
|
||||
|
||||
ws = HomeLibrary.getUserWorkspace(user);
|
||||
|
||||
WorkspaceItem item = ws.getItem(itemId);
|
||||
|
||||
ItemDescription itemDescription = new ItemDescription(item.getId(), item.getName(),
|
||||
item.getOwner().getPortalLogin(), item.getPath(), item.getType().name());
|
||||
|
||||
return itemDescription;
|
||||
|
||||
} catch (Throwable e) {
|
||||
logger.error("Retrieve folder info on workspace: " + e.getLocalizedMessage(), e);
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param user
|
||||
|
|
|
@ -6,8 +6,6 @@ import java.io.ByteArrayInputStream;
|
|||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.InputStream;
|
||||
|
||||
import org.gcube.common.homelibrary.home.exceptions.InternalErrorException;
|
||||
import org.gcube.common.homelibrary.home.workspace.WorkspaceItem;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.server.util.ServiceCredentials;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
|
||||
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.project.MainCode;
|
||||
|
@ -65,23 +63,10 @@ public class ProjectArchiver {
|
|||
Project project = (Project) xmlDecoder.readObject();
|
||||
xmlDecoder.close();
|
||||
|
||||
WorkspaceItem projectFolderItem = filesStorage
|
||||
.retrieveItemInfoOnWorkspace(serviceCredentials.getUserName(),
|
||||
newProjectFolder = filesStorage
|
||||
.retrieveFolderInfoOnWorkspace(serviceCredentials.getUserName(),
|
||||
newProjectFolder.getId());
|
||||
try {
|
||||
newProjectFolder.setId(projectFolderItem.getId());
|
||||
newProjectFolder.setName(projectFolderItem.getName());
|
||||
newProjectFolder.setOwner(projectFolderItem.getOwner()
|
||||
.getPortalLogin());
|
||||
newProjectFolder.setPath(projectFolderItem.getPath());
|
||||
newProjectFolder.setType(projectFolderItem.getType().name());
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException(e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (project != null
|
||||
&& project.getProjectFolder() != null
|
||||
&& newProjectFolder.compareInfo(project.getProjectFolder()
|
||||
|
@ -94,22 +79,10 @@ public class ProjectArchiver {
|
|||
|
||||
if (project != null && project.getMainCode() != null
|
||||
&& project.getMainCode().getItemDescription() != null) {
|
||||
WorkspaceItem mainCodeItem = filesStorage
|
||||
ItemDescription newMainCodeItemDescription = filesStorage
|
||||
.retrieveItemInfoOnWorkspace(serviceCredentials.getUserName(),
|
||||
project.getMainCode().getItemDescription().getId());
|
||||
ItemDescription newMainCodeItemDescription;
|
||||
try {
|
||||
newMainCodeItemDescription = new ItemDescription(
|
||||
mainCodeItem.getId(), mainCodeItem.getName(),
|
||||
mainCodeItem.getOwner().getPortalLogin(),
|
||||
mainCodeItem.getPath(), mainCodeItem.getType().name());
|
||||
} catch (InternalErrorException e) {
|
||||
logger.error(e.getLocalizedMessage());
|
||||
e.printStackTrace();
|
||||
throw new StatAlgoImporterServiceException(
|
||||
e.getLocalizedMessage());
|
||||
|
||||
}
|
||||
|
||||
if (newMainCodeItemDescription.compareInfo(project.getMainCode()
|
||||
.getItemDescription())) {
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue