From 696b3aab041353afd74e26c0b9a569d0b1b9e254 Mon Sep 17 00:00:00 2001 From: Geora Barsky Date: Fri, 12 Oct 2018 11:46:52 -0400 Subject: Adding API Mapping infrastructure Issue-ID: LOG-391 Change-Id: I30d954bcdf1cf0748bb5249cbf10defb8dbc8ff6 Signed-off-by: Geora Barsky --- .../sdnc/service/SpringServiceImpl.java | 65 +++++++++++++++------- 1 file changed, 45 insertions(+), 20 deletions(-) (limited to 'src/main/java/org/onap/pomba/contextbuilder/sdnc/service/SpringServiceImpl.java') diff --git a/src/main/java/org/onap/pomba/contextbuilder/sdnc/service/SpringServiceImpl.java b/src/main/java/org/onap/pomba/contextbuilder/sdnc/service/SpringServiceImpl.java index daf6bf8..b19c24c 100644 --- a/src/main/java/org/onap/pomba/contextbuilder/sdnc/service/SpringServiceImpl.java +++ b/src/main/java/org/onap/pomba/contextbuilder/sdnc/service/SpringServiceImpl.java @@ -18,57 +18,82 @@ package org.onap.pomba.contextbuilder.sdnc.service; -import javax.ws.rs.client.Client; +import org.apache.camel.ProducerTemplate; +import org.kie.api.runtime.KieContainer; +import org.kie.api.runtime.KieSession; import org.onap.pomba.common.datatypes.ModelContext; import org.onap.pomba.contextbuilder.sdnc.exception.AuditException; import org.onap.pomba.contextbuilder.sdnc.service.rs.RestService; -import org.onap.pomba.contextbuilder.sdnc.util.RestUtil; +import org.onap.pomba.contextbuilder.sdnc.model.ServiceEntity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.onap.pomba.contextbuilder.sdnc.util.RestUtil; +import org.onap.aai.restclient.client.RestClient; @Service public class SpringServiceImpl implements SpringService { private static Logger log = LoggerFactory.getLogger(RestService.class); @Autowired - private Client jerseyClient; + private String sdncCtxBuilderBasicAuthorization; + private KieContainer kieContainer; @Autowired - private String sdncBaseUrl; + private ProducerTemplate producerTemplate; + + //AAI related @Autowired - private String sdncBasicAuthorization; + private String aaiBasicAuthorization; @Autowired - private String sdncGenericResourcePath; + private RestClient aaiClient; @Autowired - private String sdncCtxBuilderBasicAuthorization; + private String aaiBaseUrl; + @Autowired + private String aaiPathToSearchNodeQuery; + @Autowired + private String aaiPathToCustomerQuery; public SpringServiceImpl() { // needed for instantiation } + @Autowired + public SpringServiceImpl(KieContainer kieContainer) { + this.kieContainer = kieContainer; + + } @Override public ModelContext getContext(String serviceInstanceId, String transactionId) throws AuditException { ModelContext context = null; - String url = "serviceInstanceId=" + serviceInstanceId + " transactionId=" + transactionId; - log.info("URL Query the SDN-C model data with URL: " , url); - - // Retrieve the service instance information from SDNC and AAI - try { - String sdncResponse = RestUtil.getSdncGenericResource(jerseyClient, sdncBaseUrl, sdncBasicAuthorization, sdncGenericResourcePath, serviceInstanceId); - log.info("sdncResponse: ", sdncResponse); - context = RestUtil.transform(sdncResponse); - } catch (AuditException ae) { - throw ae; - } catch (Exception e) { - throw new AuditException(e.getLocalizedMessage()); - } + + // Call AAI system to populate ServiceData + ServiceEntity serviceEntity = RestUtil.getServiceEntity(aaiClient, aaiBaseUrl, aaiBasicAuthorization, aaiPathToSearchNodeQuery, aaiPathToCustomerQuery, serviceInstanceId, transactionId); + + processApiMappingRules(serviceEntity); + log.info("SDN-C determined API: " + serviceEntity.getApiName()); + + context = producerTemplate.requestBody("direct:startRoutingProcess", serviceEntity, ModelContext.class); + return context; } + private void processApiMappingRules(ServiceEntity serviceData){ + + KieSession kieSession = kieContainer.newKieSession(); + log.info ("KIE Session is created"); + kieSession.insert(serviceData); + kieSession.fireAllRules(); + log.info("Rules are fired"); + kieSession.getFactHandles().forEach(fh -> kieSession.delete(fh)); + kieSession.dispose(); + } + public String getSdncAuthoriztion() { return sdncCtxBuilderBasicAuthorization; } + + } -- cgit 1.2.3-korg