diff --git a/default-lc-managers/src/main/java/org/gcube/application/cms/plugins/implementations/Default3PhaseManager.java b/default-lc-managers/src/main/java/org/gcube/application/cms/plugins/implementations/Default3PhaseManager.java index 5315e73..be142fe 100644 --- a/default-lc-managers/src/main/java/org/gcube/application/cms/plugins/implementations/Default3PhaseManager.java +++ b/default-lc-managers/src/main/java/org/gcube/application/cms/plugins/implementations/Default3PhaseManager.java @@ -71,9 +71,12 @@ public class Default3PhaseManager extends SimpleLifeCycleManager implements Life parameters =getInternalIndexParams(theReport.getTheRequest()); if(phase.equals(Phases.PUBLISHED)) parameters = getPublicIndexParams(theReport.getTheRequest()); - if(parameters!= null) - for(IndexerPluginInterface indexer : getIndexers(theReport.getTheRequest())) - theReport = index(theReport,indexer,getPublicIndexParams(theReport.getTheRequest())); + if(parameters!= null) { + //Fixed by Francesco, see #24902. Now is calling deIndex + for(IndexerPluginInterface indexer : getIndexers(theReport.getTheRequest())) { + theReport = deIndex(theReport,indexer,getPublicIndexParams(theReport.getTheRequest())); + } + } return theReport; } diff --git a/geoportal-service/CHANGELOG.md b/geoportal-service/CHANGELOG.md index f91a6e3..2a8e73b 100644 --- a/geoportal-service/CHANGELOG.md +++ b/geoportal-service/CHANGELOG.md @@ -3,6 +3,7 @@ ## [v1.0.14-SNAPSHOT] - Fixed deploying of multiple versions of the default-lc-managers [#24875] +- Bug fixing the 'deleteFileSet' function [#24902] ## [v1.0.13] - 2023-02-23 - Integrating new facilities and bug fixing released in the Plugins diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java index c1b0e09..2735eb6 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java @@ -807,19 +807,37 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< RegisteredFileSet fs = Serialization.convert(wrapper.getByPath(path).get(0), RegisteredFileSet.class); log.debug("Going to delete {}", fs); - doc = triggerEvent(doc,EventExecutionRequest.Events.ON_DELETE_FILESET,new Document("force",force).append("path",path)); - + //Updated by Francesco. See #24902 + doc = triggerEvent(doc,EventExecutionRequest.Events.ON_DELETE_FILESET,new Document("force",force).append("path",path).append("fileSetPath", path)); + //reloading the document in the wrapper + wrapper = new JSONPathWrapper(doc.getTheDocument().toJson()); + // Actually delete only if event was ok if(doc.getLifecycleInformation().getLastOperationStatus().equals(LifecycleInformation.Status.OK)) { // Delete from storage if(fs.getFolderId()!=null) { - log.info("Deleting Fileset Folder ID {} ",fs.getFolderId()); - new WorkspaceManager().deleteItem(fs.getFolderId()); + try { + log.info("Deleting Fileset Folder ID {} ",fs.getFolderId()); + new WorkspaceManager().deleteItem(fs.getFolderId()); + }catch (Exception e) { + //Updated by Francesco. See #24902 + LifecycleInformation info = doc.getLifecycleInformation(); + if(info==null) { + info = new LifecycleInformation(); + } + info.addErrorMessage("Unable to delete the Folder ID "+fs.getFolderId()+" in the VRE Folder"); + info.setLastOperationStatus(LifecycleInformation.Status.WARNING); + log.warn("Error on deleting the Folder ID {} in the VRE Folder",fs.getFolderId(), e); + } } log.debug("Removing FS from document [ID : ] by path {}", doc.getId(), path); // Delete from document wrapper.setElement(path, null); + } + //Updated by Francesco. See #24902 + log.debug("Setting result on profiled document"); + doc.setTheDocument(Document.parse(wrapper.getValueCTX().jsonString())); return doc; } diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/ProfiledDocuments.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/ProfiledDocuments.java index fa3dfc3..acaa286 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/ProfiledDocuments.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/rest/ProfiledDocuments.java @@ -124,6 +124,20 @@ public class ProfiledDocuments { }.execute().getResult(); } + + /** + * Delete file set. + * the Authorization must be a VRE token + * + * @param id the id + * @param force the force + * @param path the path must be passed as text in the body + * @return the project + */ + @RequestHeaders({ + @RequestHeader( name = "Authorization", description = "VRE Bearer token, see https://dev.d4science.org/how-to-access-resources"), + @RequestHeader( name = "Content-Type", description = "application/json") + }) @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) diff --git a/pom.xml b/pom.xml index 976fa89..db482aa 100644 --- a/pom.xml +++ b/pom.xml @@ -23,16 +23,16 @@ https://code-repo.d4science.org/gCubeSystem - 2.0.2 - 2.1.1 - 3.6.3 - [1.0.0,2.0.0-SNAPSHOT) + + + + - - - - + 2.1.0-SNAPSHOT + 2.2.0-SNAPSHOT + 3.7.0-SNAPSHOT + [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT) 1.0.3