Implementing Facet Based IS solution

This commit is contained in:
Luca Frosini 2022-12-07 22:59:21 +01:00
parent fef4bd8479
commit 2cc004df4c
6 changed files with 91 additions and 36 deletions

View File

@ -7,6 +7,8 @@ import org.gcube.gcat.configuration.isproxies.FacetBasedISConfigurationProxy;
import org.gcube.gcat.configuration.isproxies.FacetBasedISConfigurationProxyFactory; import org.gcube.gcat.configuration.isproxies.FacetBasedISConfigurationProxyFactory;
import org.gcube.gcat.rest.RequestFilter; import org.gcube.gcat.rest.RequestFilter;
import org.gcube.smartgears.ApplicationManager; import org.gcube.smartgears.ApplicationManager;
import org.gcube.smartgears.ContextProvider;
import org.gcube.smartgears.context.application.ApplicationContext;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -44,7 +46,11 @@ public class GCatInitializator implements ApplicationManager {
+ "-------------------------------------------------------", + "-------------------------------------------------------",
context); context);
ApplicationContext applicationContext = ContextProvider.get();
String gcatEServiceID = applicationContext.id();
FacetBasedISConfigurationProxy facetBasedISConfigurationProxy = FacetBasedISConfigurationProxyFactory.getInstance(context); FacetBasedISConfigurationProxy facetBasedISConfigurationProxy = FacetBasedISConfigurationProxyFactory.getInstance(context);
facetBasedISConfigurationProxy.setGcatEServiceID(gcatEServiceID);
try { try {
facetBasedISConfigurationProxy.createCallsForToVirtualService(); facetBasedISConfigurationProxy.createCallsForToVirtualService();
}catch (Exception e) { }catch (Exception e) {
@ -83,7 +89,11 @@ public class GCatInitializator implements ApplicationManager {
context); context);
/* /*
ApplicationContext applicationContext = ContextProvider.get();
String gcatEServiceID = applicationContext.id();
FacetBasedISConfigurationProxy facetBasedISConfigurationProxy = FacetBasedISConfigurationProxyFactory.getInstance(context); FacetBasedISConfigurationProxy facetBasedISConfigurationProxy = FacetBasedISConfigurationProxyFactory.getInstance(context);
facetBasedISConfigurationProxy.setGcatEServiceID(gcatEServiceID);
try { try {
facetBasedISConfigurationProxy.deleteCallsForToVirtualService(); facetBasedISConfigurationProxy.deleteCallsForToVirtualService();
}catch (Exception e) { }catch (Exception e) {

View File

@ -51,8 +51,6 @@ import org.gcube.resourcemanagement.model.reference.entities.resources.Configura
import org.gcube.resourcemanagement.model.reference.entities.resources.EService; import org.gcube.resourcemanagement.model.reference.entities.resources.EService;
import org.gcube.resourcemanagement.model.reference.entities.resources.VirtualService; import org.gcube.resourcemanagement.model.reference.entities.resources.VirtualService;
import org.gcube.resourcemanagement.model.reference.relations.isrelatedto.CallsFor; import org.gcube.resourcemanagement.model.reference.relations.isrelatedto.CallsFor;
import org.gcube.smartgears.ContextProvider;
import org.gcube.smartgears.context.application.ApplicationContext;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -142,7 +140,8 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy<SimpleF
protected SimpleFacet configurationSimpleFacet; protected SimpleFacet configurationSimpleFacet;
protected String gcatEServiceID;
public FacetBasedISConfigurationProxy(String context) { public FacetBasedISConfigurationProxy(String context) {
super(context); super(context);
objectMapper = new ObjectMapper(); objectMapper = new ObjectMapper();
@ -156,6 +155,10 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy<SimpleF
} }
return virtualService; return virtualService;
} }
public void setGcatEServiceID(String gcatEServiceID) {
this.gcatEServiceID = gcatEServiceID;
}
protected String installQueryTemplate(ResourceRegistryQueryTemplateClient rrqtc) throws Exception { protected String installQueryTemplate(ResourceRegistryQueryTemplateClient rrqtc) throws Exception {
QueryTemplate queryTemplate = getQueryTemplate(); QueryTemplate queryTemplate = getQueryTemplate();
@ -183,9 +186,6 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy<SimpleF
queryTemplateName = installQueryTemplate(rrqtc); queryTemplateName = installQueryTemplate(rrqtc);
} }
ApplicationContext applicationContext = ContextProvider.get();
String gcatEServiceID = applicationContext.id();
ObjectNode objectNode = objectMapper.createObjectNode(); ObjectNode objectNode = objectMapper.createObjectNode();
objectNode.put(GCAT_ESERVICE_UUID_VARNAME, gcatEServiceID); objectNode.put(GCAT_ESERVICE_UUID_VARNAME, gcatEServiceID);
@ -221,8 +221,6 @@ public class FacetBasedISConfigurationProxy extends ISConfigurationProxy<SimpleF
propagationConstraint.setAddConstraint(AddConstraint.unpropagate); propagationConstraint.setAddConstraint(AddConstraint.unpropagate);
propagationConstraint.setRemoveConstraint(RemoveConstraint.keep); propagationConstraint.setRemoveConstraint(RemoveConstraint.keep);
EService gcatEService = new EServiceImpl(); EService gcatEService = new EServiceImpl();
ApplicationContext applicationContext = ContextProvider.get();
String gcatEServiceID = applicationContext.id();
UUID gcatEServiceUUID = UUID.fromString(gcatEServiceID); UUID gcatEServiceUUID = UUID.fromString(gcatEServiceID);
gcatEService.setHeader(new HeaderImpl(gcatEServiceUUID)); gcatEService.setHeader(new HeaderImpl(gcatEServiceUUID));
VirtualService virtualService = queryVirtualService(); VirtualService virtualService = queryVirtualService();

View File

@ -1,32 +1,41 @@
{ {
"@class": "CallsFor", "@class" : "QueryTemplate",
"source": { "name" : "GCat-Get-CallsFor-to-VirtualService",
"@class": "EService", "description" : "The following query return all CallsFor relation from the EService of gcat identified by the UUID provided as parameter to the Virtual Service with name 'catalogue-virtual-service'. The content of the request to run this query template will be something like {\"$uuid\": \"335580b6-c164-4506-980a-21e5bcf8dbcf\"}",
"header" : { "template" : {
"uuid" : "$uuid" "@class" : "CallsFor",
}, "source" : {
"consistsOf": [ "@class" : "EService",
{ "header" : {
"@class": "IsIdentifiedBy", "uuid" : "$uuid"
"target": { },
"@class": "SoftwareFacet", "consistsOf" : [ {
"group": "org.gcube.data-catalogue", "@class" : "IsIdentifiedBy",
"name": "gcat" "target" : {
"@class" : "SoftwareFacet",
"group" : "org.gcube.data-catalogue",
"name" : "gcat"
} }
} } ]
] },
"target" : {
"@class" : "VirtualService",
"consistsOf" : [ {
"@class" : "IsIdentifiedBy",
"target" : {
"@class" : "SoftwareFacet",
"group" : "org.gcube.data-catalogue",
"name" : "catalogue-virtual-service"
}
} ]
}
}, },
"target":{ "templateVariables" : {
"@class": "VirtualService", "$uuid" : {
"consistsOf": [ "@class": "TemplateVariable",
{ "name": "$uuid",
"@class": "IsIdentifiedBy", "description": "The uuid of the gCat EService, e.g. 335580b6-c164-4506-980a-21e5bcf8dbcf. Please note that the default value has no meaning but we need a valid value so that the query can be tested by the resource-registry service.",
"target": { "defaultValue": "335580b6-c164-4506-980a-21e5bcf8dbcf"
"@class": "SoftwareFacet", }
"group": "org.gcube.data-catalogue", }
"name": "catalogue-virtual-service"
}
}
]
}
} }

View File

@ -6,6 +6,9 @@ import org.junit.Test;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
/**
* @author Luca Frosini (ISTI - CNR)
*/
public class CatalogueConfigurationFactoryTest extends ContextTest { public class CatalogueConfigurationFactoryTest extends ContextTest {
private static Logger logger = LoggerFactory.getLogger(CatalogueConfigurationFactoryTest.class); private static Logger logger = LoggerFactory.getLogger(CatalogueConfigurationFactoryTest.class);

View File

@ -0,0 +1,34 @@
package org.gcube.gcat.configuration.isproxies;
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.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Luca Frosini (ISTI - CNR)
*/
public class FacetBasedISConfigurationProxyTest extends ContextTest {
private static Logger logger = LoggerFactory.getLogger(FacetBasedISConfigurationProxyTest.class);
@Test
public void test() throws Exception {
FacetBasedISConfigurationProxy fbiscp = FacetBasedISConfigurationProxyFactory.getInstance();
fbiscp.setGcatEServiceID("f00bbacd-92b8-46d7-b41c-828f71a78753");
fbiscp.createCallsForToVirtualService();
SimpleFacet simpleFacet = fbiscp.getISResource();
logger.debug("{}", ElementMapper.marshal(simpleFacet));
ServiceCatalogueConfiguration catalogueConfiguration = fbiscp.getCatalogueConfiguration();
logger.debug("{}", catalogueConfiguration.toJsonString());
logger.debug("{}", catalogueConfiguration.toJsonString(true));
fbiscp.deleteCallsForToVirtualService();
}
}

View File

@ -6,3 +6,4 @@
/config.properties.old /config.properties.old
/config.properties-new-authz /config.properties-new-authz
/devvre.conf.json /devvre.conf.json
/config.ini