diff --git a/src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxy.java b/src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxy.java index ca954cb..0fc94f7 100644 --- a/src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxy.java +++ b/src/main/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxy.java @@ -193,15 +193,16 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy> callsForList) throws SchemaViolationException, NotFoundException, ResourceRegistryException { + public List> deleteCallsForToVirtualService(List> callsForList) throws SchemaViolationException, NotFoundException, ResourceRegistryException { for(CallsFor cf : callsForList) { resourceRegistryPublisher.delete(cf); } + return callsForList; } - public void deleteCallsForToVirtualService() throws Exception { + public List> deleteCallsForToVirtualService() throws Exception { List> callsForList = getCallsForToVirtualService(); - deleteCallsForToVirtualService(callsForList); + return deleteCallsForToVirtualService(callsForList); } public CallsFor createCallsForToVirtualService() throws Exception { @@ -211,7 +212,13 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy1) { + logger.warn("There are {} instances of {} relation beetween gcat Eservice with UUID {} and the {} (catalogue-virtual-service). This is very strange because there should be only one. We are going to delete them and recreated a new one.", + callsForList.size(), CallsFor.NAME, gcatEServiceID, VirtualService.NAME); + logger.trace("{} relation instances that are going to be deleted are {}", + CallsFor.NAME, ElementMapper.marshal(callsForList)); deleteCallsForToVirtualService(callsForList); size = 0; } @@ -221,7 +228,6 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy(gcatEService, virtualService, propagationConstraint); diff --git a/src/test/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxyTest.java b/src/test/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxyTest.java index 7da861b..7be922b 100644 --- a/src/test/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxyTest.java +++ b/src/test/java/org/gcube/gcat/configuration/isproxies/FacetBasedISConfigurationProxyTest.java @@ -1,9 +1,15 @@ package org.gcube.gcat.configuration.isproxies; +import java.util.List; + import org.gcube.gcat.ContextTest; import org.gcube.gcat.configuration.service.ServiceCatalogueConfiguration; import org.gcube.informationsystem.utils.ElementMapper; import org.gcube.resourcemanagement.model.reference.entities.facets.SimpleFacet; +import org.gcube.resourcemanagement.model.reference.entities.resources.EService; +import org.gcube.resourcemanagement.model.reference.entities.resources.VirtualService; +import org.gcube.resourcemanagement.model.reference.relations.isrelatedto.CallsFor; +import org.junit.Ignore; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,11 +21,13 @@ public class FacetBasedISConfigurationProxyTest extends ContextTest { private static Logger logger = LoggerFactory.getLogger(FacetBasedISConfigurationProxyTest.class); + @Ignore @Test public void test() throws Exception { FacetBasedISConfigurationProxy fbiscp = FacetBasedISConfigurationProxyFactory.getInstance(); fbiscp.setGcatEServiceID("f00bbacd-92b8-46d7-b41c-828f71a78753"); - fbiscp.createCallsForToVirtualService(); + CallsFor callsFor = fbiscp.createCallsForToVirtualService(); + logger.debug("Created {}", ElementMapper.marshal(callsFor)); SimpleFacet simpleFacet = fbiscp.getISResource(); logger.debug("{}", ElementMapper.marshal(simpleFacet)); @@ -28,7 +36,8 @@ public class FacetBasedISConfigurationProxyTest extends ContextTest { logger.debug("{}", catalogueConfiguration.toJsonString()); logger.debug("{}", catalogueConfiguration.toJsonString(true)); - fbiscp.deleteCallsForToVirtualService(); + List> callsForList = fbiscp.deleteCallsForToVirtualService(); + logger.debug("Deleted {} {} relations {}", callsForList.size(), CallsFor.NAME, ElementMapper.marshal(callsForList)); } }