diff options
author | Ravi Pendurty <ravi.pendurty@highstreet-technologies.com> | 2021-02-03 14:09:25 +0100 |
---|---|---|
committer | Dan Timoney <dtimoney@att.com> | 2021-02-05 22:55:34 +0000 |
commit | 2f9e781a7c3e22bf25df83dcc3ff44b885a80957 (patch) | |
tree | d14ec0201ea7012cfc6c70954dcef6475370cfc9 /sdnr/northbound/oofpcipoc | |
parent | 80ebbf5b525b1a251f8e0eebd4a841d85716cf65 (diff) |
Adapt SDNR northbound to Aluminium
Adapt SDNR northbound to Aluminium
Issue-ID: CCSDK-3128
Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com>
Change-Id: Id2dc38d4f2573d5c6aeedfb42349433f22aa86f5
Signed-off-by: Ravi Pendurty <ravi.pendurty@highstreet-technologies.com>
Diffstat (limited to 'sdnr/northbound/oofpcipoc')
15 files changed, 473 insertions, 623 deletions
diff --git a/sdnr/northbound/oofpcipoc/consumer/pom.xml b/sdnr/northbound/oofpcipoc/consumer/pom.xml index b05464d5a..950ee3524 100644 --- a/sdnr/northbound/oofpcipoc/consumer/pom.xml +++ b/sdnr/northbound/oofpcipoc/consumer/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>org.onap.ccsdk.parent</groupId> <artifactId>binding-parent</artifactId> - <version>2.1.0</version> + <version>2.1.1-SNAPSHOT</version> <relativePath/> </parent> @@ -66,20 +66,6 @@ <artifactId>oofpcipoc-provider</artifactId> <version>${project.version}</version> </dependency> - <!-- <dependency> <groupId>org.opendaylight.controller</groupId> <artifactId>sal-binding-config</artifactId> - </dependency> --> - <dependency> - <groupId>org.opendaylight.controller</groupId> - <artifactId>sal-binding-api</artifactId> - </dependency> - <dependency> - <groupId>org.opendaylight.controller</groupId> - <artifactId>sal-common-util</artifactId> - </dependency> - <dependency> - <groupId>org.opendaylight.controller</groupId> - <artifactId>sal-core-api</artifactId> - </dependency> <dependency> <groupId>org.opendaylight.yangtools</groupId> <artifactId>yang-data-impl</artifactId> diff --git a/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocHandleNotif.java b/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocHandleNotif.java index 98b16f549..dd1ca7086 100644 --- a/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocHandleNotif.java +++ b/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocHandleNotif.java @@ -25,8 +25,8 @@ import java.io.Writer; import java.io.StringWriter; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.io.IOException; -import java.util.Properties; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -41,32 +41,23 @@ import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.handlenotif.pojos.Paylo import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.handlenotif.pojos.RAN; import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.handlenotif.pojos.RadioAccess; import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.handlenotif.pojos.X0005b9Lte; -import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.sal.binding.api.BindingAwareBroker; -import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.*; + +import org.opendaylight.mdsal.binding.api.DataBroker; import org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.OofpcipocListener; -import org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.Payload; import org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.NbrlistChangeNotification; import org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.NetconfConfigChange; import org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.nbrlist.change.notification.*; import org.opendaylight.yang.gen.v1.org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.rev190308.nbrlist.change.notification.fap.service.*; -import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Preconditions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.json.JSONArray; import org.json.JSONObject; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.MoreExecutors; /** * Defines a base implementation for your listener. This class extends from a @@ -92,25 +83,28 @@ public class OofpcipocHandleNotif implements AutoCloseable, OofpcipocListener { protected DataBroker dataBroker; - private final OofpcipocClient OofpcipocClient; + private OofpcipocClient OofpcipocClient; - public OofpcipocHandleNotif(final DataBroker dataBroker, final OofpcipocClient OofpcipocClient) { + public OofpcipocHandleNotif() { this.LOG.info("Creating listener for {}", APPLICATION_NAME); executor = Executors.newFixedThreadPool(1); + this.dataBroker = null; + this.OofpcipocClient = null; + } + + public void setDataBroker(DataBroker dataBroker) { this.dataBroker = dataBroker; + } + + public void setClient(OofpcipocClient OofpcipocClient) { this.OofpcipocClient = OofpcipocClient; - initialize(); } - public void initialize() { + public void init() { LOG.info("Placeholder: Initializing listener for {}", APPLICATION_NAME); } - protected void initializeChild() { - // Override if you have custom initialization intelligence - } - @Override public void close() throws Exception { LOG.info("Closing listener for {}", APPLICATION_NAME); @@ -134,18 +128,20 @@ public class OofpcipocHandleNotif implements AutoCloseable, OofpcipocListener { List<FAPServiceList> fAPServiceList = new ArrayList<>(); radioAccess.setFAPServiceNumberOfEntries(notification.getFapServiceNumberOfEntriesChanged().toString()); + Map<FapServiceKey, FapService> fapSvcs = notification.getFapService(); - for (FapService fapSvc : notification.getFapService()) { + for (Map.Entry<FapServiceKey,FapService> entry : fapSvcs.entrySet() ) { + FapService fapSvc = entry.getValue(); FAPServiceList fapServiceElement = new FAPServiceList(); fapServiceElement.setAlias(fapSvc.getAlias()); fapServiceElement.setX0005b9Lte(new X0005b9Lte(fapSvc.getPhyCellIdInUse().toString(), fapSvc.getPnfName())); List<LTENeighborListInUseLTECell> lTENeighborListInUseLTECell = new ArrayList<>(); - - for (LteRanNeighborListInUseLteCellChanged lteRanElement : fapSvc - .getLteRanNeighborListInUseLteCellChanged()) { + Map<LteRanNeighborListInUseLteCellChangedKey, LteRanNeighborListInUseLteCellChanged> lteRanElements = fapSvc.getLteRanNeighborListInUseLteCellChanged(); + for (Map.Entry<LteRanNeighborListInUseLteCellChangedKey, LteRanNeighborListInUseLteCellChanged> lteRanEntry : lteRanElements.entrySet()) { + LteRanNeighborListInUseLteCellChanged lteRanElement = lteRanEntry.getValue(); LTENeighborListInUseLTECell lTENeighborListInUseLTECellElement = new LTENeighborListInUseLTECell(); lTENeighborListInUseLTECellElement.setAlias(lteRanElement.getCid()); lTENeighborListInUseLTECellElement.setBlacklisted(lteRanElement.isBlacklisted().toString()); diff --git a/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/handlenotif/pojos/CellConfig.java b/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/handlenotif/pojos/CellConfig.java index def38a3db..36c0ce623 100644 --- a/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/handlenotif/pojos/CellConfig.java +++ b/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/handlenotif/pojos/CellConfig.java @@ -1,3 +1,23 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ package org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.handlenotif.pojos; diff --git a/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/handlenotif/pojos/NeighborListInUse.java b/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/handlenotif/pojos/NeighborListInUse.java index 39cc22208..634d9707b 100644 --- a/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/handlenotif/pojos/NeighborListInUse.java +++ b/sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/handlenotif/pojos/NeighborListInUse.java @@ -1,3 +1,23 @@ +/*- + * ============LICENSE_START======================================================= + * openECOMP : SDN-C + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights + * reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ package org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.handlenotif.pojos; diff --git a/sdnr/northbound/oofpcipoc/consumer/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml b/sdnr/northbound/oofpcipoc/consumer/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml deleted file mode 100644 index 90ae11a51..000000000 --- a/sdnr/northbound/oofpcipoc/consumer/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ ============LICENSE_START======================================================= - ~ ONAP : ccsdk features - ~ ================================================================================ - ~ Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - ~ ================================================================================ - ~ Licensed under the Apache License, Version 2.0 (the "License"); - ~ you may not use this file except in compliance with the License. - ~ You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License. - ~ ============LICENSE_END======================================================= - ~ - --> - -<blueprint xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0" - xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" odl:use-default-for-reference-types="true"> - - <reference id="svcLogicService" - interface="org.onap.ccsdk.sli.core.sli.provider.SvcLogicService"/> - - <bean id="client" class="org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocClient"> - <argument ref="svcLogicService"/> - </bean> - - <reference id="dataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker" - odl:type="default"/> - - <!-- Register the OofpcipocListener to receive yang notifications --> - - <odl:notification-listener ref="listener"/> - - <bean id="listener" class="org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocHandleNotif"> - <argument ref="dataBroker"/> - <argument ref="client"/> - </bean> - -</blueprint> diff --git a/sdnr/northbound/oofpcipoc/consumer/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/sdnr/northbound/oofpcipoc/consumer/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml index 90ae11a51..33d4142f6 100644 --- a/sdnr/northbound/oofpcipoc/consumer/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml +++ b/sdnr/northbound/oofpcipoc/consumer/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml @@ -30,7 +30,7 @@ <argument ref="svcLogicService"/> </bean> - <reference id="dataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker" + <reference id="dataBroker" interface="org.opendaylight.mdsal.binding.api.DataBroker" odl:type="default"/> <!-- Register the OofpcipocListener to receive yang notifications --> diff --git a/sdnr/northbound/oofpcipoc/feature/pom.xml b/sdnr/northbound/oofpcipoc/feature/pom.xml index 9c5eb74cf..1af7262b5 100644 --- a/sdnr/northbound/oofpcipoc/feature/pom.xml +++ b/sdnr/northbound/oofpcipoc/feature/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>org.onap.ccsdk.parent</groupId> <artifactId>single-feature-parent</artifactId> - <version>2.1.0</version> + <version>2.1.1-SNAPSHOT</version> <relativePath/> </parent> @@ -37,26 +37,6 @@ <name>ccsdk-features :: sdnr-northbound :: ${project.artifactId}</name> - <!-- - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.opendaylight.mdsal.model</groupId> - <artifactId>mdsal-model-artifacts</artifactId> - <version>${odl.mdsal.model.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - <dependency> - <groupId>org.opendaylight.controller</groupId> - <artifactId>mdsal-artifacts</artifactId> - <version>${odl.mdsal.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - </dependencyManagement> - --> <dependencies> <dependency> <groupId>${project.groupId}</groupId> diff --git a/sdnr/northbound/oofpcipoc/installer/pom.xml b/sdnr/northbound/oofpcipoc/installer/pom.xml index af2ec0a3c..14bca54cd 100644 --- a/sdnr/northbound/oofpcipoc/installer/pom.xml +++ b/sdnr/northbound/oofpcipoc/installer/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>org.onap.ccsdk.parent</groupId> <artifactId>odlparent-lite</artifactId> - <version>2.1.0</version> + <version>2.1.1-SNAPSHOT</version> <relativePath/> </parent> diff --git a/sdnr/northbound/oofpcipoc/model/pom.xml b/sdnr/northbound/oofpcipoc/model/pom.xml index 6c46b7fff..ac9e6c348 100644 --- a/sdnr/northbound/oofpcipoc/model/pom.xml +++ b/sdnr/northbound/oofpcipoc/model/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>org.onap.ccsdk.parent</groupId> <artifactId>binding-parent</artifactId> - <version>2.1.0</version> + <version>2.1.1-SNAPSHOT</version> <relativePath/> </parent> diff --git a/sdnr/northbound/oofpcipoc/pom.xml b/sdnr/northbound/oofpcipoc/pom.xml index c7de814bc..a0e1e6214 100644 --- a/sdnr/northbound/oofpcipoc/pom.xml +++ b/sdnr/northbound/oofpcipoc/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>org.onap.ccsdk.parent</groupId> <artifactId>odlparent-lite</artifactId> - <version>2.1.0</version> + <version>2.1.1-SNAPSHOT</version> <relativePath/> </parent> diff --git a/sdnr/northbound/oofpcipoc/provider/pom.xml b/sdnr/northbound/oofpcipoc/provider/pom.xml index bee183715..34892f2dc 100644 --- a/sdnr/northbound/oofpcipoc/provider/pom.xml +++ b/sdnr/northbound/oofpcipoc/provider/pom.xml @@ -26,7 +26,7 @@ <parent> <groupId>org.onap.ccsdk.parent</groupId> <artifactId>binding-parent</artifactId> - <version>2.1.0</version> + <version>2.1.1-SNAPSHOT</version> <relativePath/> </parent> @@ -55,8 +55,12 @@ <version>${project.version}</version> </dependency> <dependency> - <groupId>org.opendaylight.controller</groupId> - <artifactId>sal-binding-api</artifactId> + <groupId>org.opendaylight.mdsal</groupId> + <artifactId>mdsal-binding-api</artifactId> + </dependency> + <dependency> + <groupId>org.opendaylight.mdsal</groupId> + <artifactId>mdsal-dom-api</artifactId> </dependency> <dependency> <groupId>org.onap.ccsdk.sli.core</groupId> @@ -69,20 +73,8 @@ <scope>provided</scope> </dependency> <dependency> - <groupId>org.opendaylight.controller</groupId> - <artifactId>sal-test-model</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.opendaylight.controller</groupId> - <artifactId>sal-binding-broker-impl</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.opendaylight.controller</groupId> - <artifactId>sal-binding-broker-impl</artifactId> - <type>test-jar</type> - <classifier>tests</classifier> + <groupId>org.opendaylight.mdsal</groupId> + <artifactId>mdsal-binding-test-model</artifactId> <scope>test</scope> </dependency> <dependency> @@ -101,14 +93,6 @@ <scope>test</scope> </dependency> <dependency> - <groupId>org.opendaylight.controller</groupId> - <artifactId>sal-common-util</artifactId> - </dependency> - <dependency> - <groupId>org.opendaylight.controller</groupId> - <artifactId>sal-core-api</artifactId> - </dependency> - <dependency> <groupId>org.opendaylight.yangtools</groupId> <artifactId>yang-data-impl</artifactId> </dependency> diff --git a/sdnr/northbound/oofpcipoc/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocProvider.java b/sdnr/northbound/oofpcipoc/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocProvider.java index f0749fbee..6bfa74eea 100644 --- a/sdnr/northbound/oofpcipoc/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocProvider.java +++ b/sdnr/northbound/oofpcipoc/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocProvider.java @@ -19,131 +19,127 @@ * ============LICENSE_END========================================================= */ - package org.onap.ccsdk.features.sdnr.northbound.oofpcipoc; +package org.onap.ccsdk.features.sdnr.northbound.oofpcipoc; import java.util.Properties; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; -import org.opendaylight.controller.sal.binding.api.BindingAwareBroker; -import org.opendaylight.controller.sal.binding.api.NotificationProviderService; -import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; -import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RpcRegistration; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.NotificationPublishService; +import org.opendaylight.mdsal.binding.api.RpcProviderService; import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.*; - -import com.google.common.base.Preconditions; +import org.opendaylight.yangtools.concepts.ObjectRegistration; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Preconditions; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; /** - * Defines a base implementation for your provider. This class extends from a helper class - * which provides storage for the most commonly used components of the MD-SAL. Additionally the - * base class provides some basic logging and initialization / clean up methods. + * Defines a base implementation for your provider. This class extends from a + * helper class which provides storage for the most commonly used components of + * the MD-SAL. Additionally the base class provides some basic logging and + * initialization / clean up methods. * */ public class OofpcipocProvider implements AutoCloseable, OofpcipocApiService { - private static final Logger LOG = LoggerFactory.getLogger(OofpcipocProvider.class); + private static final Logger LOG = LoggerFactory.getLogger(OofpcipocProvider.class); + + private static final String APPLICATION_NAME = "oofpcipoc-api"; - private static final String APPLICATION_NAME = "oofpcipoc-api"; + private final ExecutorService executor; - private final ExecutorService executor; + private DataBroker dataBroker; + private NotificationPublishService notificationService; + private RpcProviderService rpcProviderService; + private ObjectRegistration<OofpcipocProvider> rpcRegistration; + private OofpcipocClient OofpcipocClient; - protected DataBroker dataBroker; - protected NotificationPublishService notificationService; - protected RpcProviderRegistry rpcRegistry; - protected BindingAwareBroker.RpcRegistration<OofpcipocApiService> rpcRegistration; - private final OofpcipocClient OofpcipocClient; + public OofpcipocProvider() { + LOG.info("Creating provider for {}", APPLICATION_NAME); + executor = Executors.newFixedThreadPool(1); + this.dataBroker = null; + this.notificationService = null; + this.rpcProviderService = null; + this.OofpcipocClient = null; + } + + public void setDataBroker(DataBroker dataBroker) { + this.dataBroker = dataBroker; + } - public OofpcipocProvider(final DataBroker dataBroker, - final NotificationPublishService notificationPublishService, - final RpcProviderRegistry rpcProviderRegistry, - final OofpcipocClient OofpcipocClient) { + public void setRpcProviderService(RpcProviderService rpcProviderRegistry) { + this.rpcProviderService = rpcProviderRegistry; + } - this.LOG.info( "Creating provider for {}", APPLICATION_NAME); - executor = Executors.newFixedThreadPool(1); - this.dataBroker = dataBroker; - this.notificationService = notificationPublishService; - this.rpcRegistry = rpcProviderRegistry; - this.OofpcipocClient = OofpcipocClient; - initialize(); - } + public void setNotificationPublishService(NotificationPublishService notificationPublishService) { + this.notificationService = notificationPublishService; + } - public void initialize(){ - LOG.info( "Initializing provider for {}", APPLICATION_NAME); - rpcRegistration = rpcRegistry.addRpcImplementation(OofpcipocApiService.class, this); - LOG.info( "Initialization complete for {}", APPLICATION_NAME); - } + public void setClient(OofpcipocClient client) { + this.OofpcipocClient = client; + } - protected void initializeChild() { - //Override if you have custom initialization intelligence - } + public void init() { + LOG.info("Initializing provider for {}", APPLICATION_NAME); + rpcRegistration = rpcProviderService.registerRpcImplementation(OofpcipocApiService.class, this); + LOG.info("Initialization complete for {}", APPLICATION_NAME); + } - @Override - public void close() throws Exception { - LOG.info( "Closing provider for {}", APPLICATION_NAME); - executor.shutdown(); - rpcRegistration.close(); - LOG.info( "Successfully closed provider for {}", APPLICATION_NAME); - } + @Override + public void close() throws Exception { + LOG.info("Closing provider for {}", APPLICATION_NAME); + executor.shutdown(); + if (rpcRegistration != null) + rpcRegistration.close(); + LOG.info("Successfully closed provider for {}", APPLICATION_NAME); + } @Override - public ListenableFuture<RpcResult<GreetingOutput>> greeting( - GreetingInput input) { + public ListenableFuture<RpcResult<GreetingOutput>> greeting(GreetingInput input) { final String svcOperation = "greeting"; Properties parms = new Properties(); GreetingOutputBuilder serviceDataBuilder = new GreetingOutputBuilder(); - LOG.info( "Reached RPC greeting"); + LOG.info("Reached RPC greeting"); - LOG.info( svcOperation +" called." ); + LOG.info(svcOperation + " called."); - if(input == null ) { - LOG.debug("exiting " +svcOperation+ " because of invalid input"); + if (input == null) { + LOG.debug("exiting " + svcOperation + " because of invalid input"); serviceDataBuilder.setResponse("Input is null"); - RpcResult<GreetingOutput> rpcResult = - RpcResultBuilder.<GreetingOutput> status(true).withResult(serviceDataBuilder.build()).build(); + RpcResult<GreetingOutput> rpcResult = RpcResultBuilder.<GreetingOutput>status(true) + .withResult(serviceDataBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } // add input to parms - LOG.info("Adding INPUT data for "+svcOperation+" input: " + input); + LOG.info("Adding INPUT data for " + svcOperation + " input: " + input); GreetingInputBuilder inputBuilder = new GreetingInputBuilder(input); MdsalHelper.toProperties(parms, inputBuilder.build()); // Call SLI sync method - try - { - if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation , null, "sync")) - { - LOG.info( "OofpcipocClient has a Directed Graph for '" + svcOperation + "'"); - try - { - OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms); - } - catch (Exception e) - { - LOG.error("Caught exception executing service logic for "+ svcOperation, e); + try { + if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation, null, "sync")) { + LOG.info("OofpcipocClient has a Directed Graph for '" + svcOperation + "'"); + try { + OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms); + } catch (Exception e) { + LOG.error("Caught exception executing service logic for " + svcOperation, e); serviceDataBuilder.setResponse("500"); } } else { LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'"); serviceDataBuilder.setResponse("503"); } - } - catch (Exception e) - { + } catch (Exception e) { LOG.error("Caught exception looking for service logic", e); serviceDataBuilder.setResponse("500"); } @@ -151,22 +147,22 @@ public class OofpcipocProvider implements AutoCloseable, OofpcipocApiService { String errorCode = serviceDataBuilder.getResponse(); if (!("0".equals(errorCode) || "200".equals(errorCode))) { - LOG.error("Returned FAILED for "+svcOperation+" error code: '" + errorCode + "'"); + LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'"); } else { - LOG.info("Returned SUCCESS for "+svcOperation+" "); - serviceDataBuilder.setResponse("Welcome OOF POC " + input.getSalutation()); + LOG.info("Returned SUCCESS for " + svcOperation + " "); + serviceDataBuilder.setResponse("Welcome OOF POC " + input.getSalutation()); } - RpcResult<GreetingOutput> rpcResult = - RpcResultBuilder.<GreetingOutput> status(true).withResult(serviceDataBuilder.build()).build(); + RpcResult<GreetingOutput> rpcResult = RpcResultBuilder.<GreetingOutput>status(true) + .withResult(serviceDataBuilder.build()).build(); - LOG.info("Successful exit from greeting "); + LOG.info("Successful exit from greeting "); return Futures.immediateFuture(rpcResult); } // RPC configuration-phy-cell-id - @Override + @Override public ListenableFuture<RpcResult<ConfigurationPhyCellIdOutput>> configurationPhyCellId( ConfigurationPhyCellIdInput input) { final String svcOperation = "configuration-phy-cell-id"; @@ -174,47 +170,164 @@ public class OofpcipocProvider implements AutoCloseable, OofpcipocApiService { Properties parms = new Properties(); ConfigurationPhyCellIdOutputBuilder serviceDataBuilder = new ConfigurationPhyCellIdOutputBuilder(); - LOG.info( "Reached RPC configurationPhyCellId"); + LOG.info("Reached RPC configurationPhyCellId"); - LOG.info( svcOperation +" called." ); + LOG.info(svcOperation + " called."); - if(input == null ) { - LOG.debug("exiting " +svcOperation+ " because of invalid input"); + if (input == null) { + LOG.debug("exiting " + svcOperation + " because of invalid input"); serviceDataBuilder.setResponseCode("Input is null"); - RpcResult<ConfigurationPhyCellIdOutput> rpcResult = - RpcResultBuilder.<ConfigurationPhyCellIdOutput> status(true).withResult(serviceDataBuilder.build()).build(); + RpcResult<ConfigurationPhyCellIdOutput> rpcResult = RpcResultBuilder + .<ConfigurationPhyCellIdOutput>status(true).withResult(serviceDataBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } // add input to parms - LOG.info("Adding INPUT data for "+svcOperation+" input: " + input); + LOG.info("Adding INPUT data for " + svcOperation + " input: " + input); ConfigurationPhyCellIdInputBuilder inputBuilder = new ConfigurationPhyCellIdInputBuilder(input); MdsalHelper.toProperties(parms, inputBuilder.build()); // Call SLI sync method - try - { + try { - if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation , null, "sync")) - { - LOG.info( "OofpcipocClient has a Directed Graph for '" + svcOperation + "'"); + if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation, null, "sync")) { + LOG.info("OofpcipocClient has a Directed Graph for '" + svcOperation + "'"); - try - { + try { OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms); + } catch (Exception e) { + LOG.error("Caught exception executing service logic for " + svcOperation, e); + serviceDataBuilder.setResponseCode("500"); } - catch (Exception e) - { - LOG.error("Caught exception executing service logic for "+ svcOperation, e); + } else { + LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'"); + serviceDataBuilder.setResponseCode("503"); + } + } catch (Exception e) { + LOG.error("Caught exception looking for service logic", e); + serviceDataBuilder.setResponseCode("500"); + } + + String errorCode = serviceDataBuilder.getResponseCode(); + + if (!("0".equals(errorCode) || "200".equals(errorCode))) { + LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'"); + } else { + LOG.info("Returned SUCCESS for " + svcOperation + " "); + serviceDataBuilder + .setResponseCode("Welcome OOF POC. Number of FAP entries " + input.getFapServiceNumberOfEntries()); + } + + RpcResult<ConfigurationPhyCellIdOutput> rpcResult = RpcResultBuilder.<ConfigurationPhyCellIdOutput>status(true) + .withResult(serviceDataBuilder.build()).build(); + + return Futures.immediateFuture(rpcResult); + } + + // RPC add-neighbor + @Override + public ListenableFuture<RpcResult<AddNeighborOutput>> addNeighbor(AddNeighborInput input) { + final String svcOperation = "add-neighbor"; + + Properties parms = new Properties(); + AddNeighborOutputBuilder serviceDataBuilder = new AddNeighborOutputBuilder(); + + LOG.info("Reached RPC addNeighbor"); + + LOG.info(svcOperation + " called."); + + if (input == null) { + LOG.debug("exiting " + svcOperation + " because of invalid input"); + serviceDataBuilder.setResponseCode("Input is null"); + RpcResult<AddNeighborOutput> rpcResult = RpcResultBuilder.<AddNeighborOutput>status(true) + .withResult(serviceDataBuilder.build()).build(); + return Futures.immediateFuture(rpcResult); + } + + // add input to parms + LOG.info("Adding INPUT data for " + svcOperation + " input: " + input); + AddNeighborInputBuilder inputBuilder = new AddNeighborInputBuilder(input); + MdsalHelper.toProperties(parms, inputBuilder.build()); + + // Call SLI sync method + try { + + if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation, null, "sync")) { + LOG.info("OofpcipocClient has a Directed Graph for '" + svcOperation + "'"); + + try { + OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms); + } catch (Exception e) { + LOG.error("Caught exception executing service logic for " + svcOperation, e); serviceDataBuilder.setResponseCode("500"); } } else { LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'"); serviceDataBuilder.setResponseCode("503"); } + } catch (Exception e) { + LOG.error("Caught exception looking for service logic", e); + serviceDataBuilder.setResponseCode("500"); + } + + String errorCode = serviceDataBuilder.getResponseCode(); + + if (!("0".equals(errorCode) || "200".equals(errorCode))) { + LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'"); + } else { + LOG.info("Returned SUCCESS for " + svcOperation + " "); + serviceDataBuilder.setResponseCode( + "Welcome OOF POC. Number of Neighbor entries to be added " + input.getLteCellNumberOfEntries()); + } + + RpcResult<AddNeighborOutput> rpcResult = RpcResultBuilder.<AddNeighborOutput>status(true) + .withResult(serviceDataBuilder.build()).build(); + + return Futures.immediateFuture(rpcResult); + } + + // RPC delete-neighbor + @Override + public ListenableFuture<RpcResult<DeleteNeighborOutput>> deleteNeighbor(DeleteNeighborInput input) { + final String svcOperation = "delete-neighbor"; + + Properties parms = new Properties(); + DeleteNeighborOutputBuilder serviceDataBuilder = new DeleteNeighborOutputBuilder(); + + LOG.info("Reached RPC deleteNeighbor"); + + LOG.info(svcOperation + " called."); + + if (input == null) { + LOG.debug("exiting " + svcOperation + " because of invalid input"); + serviceDataBuilder.setResponseCode("Input is null"); + RpcResult<DeleteNeighborOutput> rpcResult = RpcResultBuilder.<DeleteNeighborOutput>status(true) + .withResult(serviceDataBuilder.build()).build(); + return Futures.immediateFuture(rpcResult); } - catch (Exception e) - { + + // add input to parms + LOG.info("Adding INPUT data for " + svcOperation + " input: " + input); + DeleteNeighborInputBuilder inputBuilder = new DeleteNeighborInputBuilder(input); + MdsalHelper.toProperties(parms, inputBuilder.build()); + + // Call SLI sync method + try { + + if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation, null, "sync")) { + LOG.info("OofpcipocClient has a Directed Graph for '" + svcOperation + "'"); + + try { + OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms); + } catch (Exception e) { + LOG.error("Caught exception executing service logic for " + svcOperation, e); + serviceDataBuilder.setResponseCode("500"); + } + } else { + LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'"); + serviceDataBuilder.setResponseCode("503"); + } + } catch (Exception e) { LOG.error("Caught exception looking for service logic", e); serviceDataBuilder.setResponseCode("500"); } @@ -222,292 +335,143 @@ public class OofpcipocProvider implements AutoCloseable, OofpcipocApiService { String errorCode = serviceDataBuilder.getResponseCode(); if (!("0".equals(errorCode) || "200".equals(errorCode))) { - LOG.error("Returned FAILED for "+svcOperation+" error code: '" + errorCode + "'"); + LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'"); } else { - LOG.info("Returned SUCCESS for "+svcOperation+" "); - serviceDataBuilder.setResponseCode("Welcome OOF POC. Number of FAP entries " + input.getFapServiceNumberOfEntries()); + LOG.info("Returned SUCCESS for " + svcOperation + " "); + serviceDataBuilder.setResponseCode( + "Welcome OOF POC. Number of Neighbor entries to be deleted " + input.getLteCellNumberOfEntries()); } - RpcResult<ConfigurationPhyCellIdOutput> rpcResult = - RpcResultBuilder.<ConfigurationPhyCellIdOutput> status(true).withResult(serviceDataBuilder.build()).build(); + RpcResult<DeleteNeighborOutput> rpcResult = RpcResultBuilder.<DeleteNeighborOutput>status(true) + .withResult(serviceDataBuilder.build()).build(); return Futures.immediateFuture(rpcResult); } - // RPC add-neighbor - @Override - public ListenableFuture<RpcResult<AddNeighborOutput>> addNeighbor( - AddNeighborInput input) { - final String svcOperation = "add-neighbor"; - - Properties parms = new Properties(); - AddNeighborOutputBuilder serviceDataBuilder = new AddNeighborOutputBuilder(); - - LOG.info( "Reached RPC addNeighbor"); - - LOG.info( svcOperation +" called." ); - - if(input == null ) { - LOG.debug("exiting " +svcOperation+ " because of invalid input"); - serviceDataBuilder.setResponseCode("Input is null"); - RpcResult<AddNeighborOutput> rpcResult = - RpcResultBuilder.<AddNeighborOutput> status(true).withResult(serviceDataBuilder.build()).build(); - return Futures.immediateFuture(rpcResult); - } - - // add input to parms - LOG.info("Adding INPUT data for "+svcOperation+" input: " + input); - AddNeighborInputBuilder inputBuilder = new AddNeighborInputBuilder(input); - MdsalHelper.toProperties(parms, inputBuilder.build()); - - // Call SLI sync method - try - { - - if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation , null, "sync")) - { - LOG.info( "OofpcipocClient has a Directed Graph for '" + svcOperation + "'"); - - try - { - OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms); - } - catch (Exception e) - { - LOG.error("Caught exception executing service logic for "+ svcOperation, e); - serviceDataBuilder.setResponseCode("500"); - } - } else { - LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'"); - serviceDataBuilder.setResponseCode("503"); - } - } - catch (Exception e) - { - LOG.error("Caught exception looking for service logic", e); - serviceDataBuilder.setResponseCode("500"); - } - - String errorCode = serviceDataBuilder.getResponseCode(); - - if (!("0".equals(errorCode) || "200".equals(errorCode))) { - LOG.error("Returned FAILED for "+svcOperation+" error code: '" + errorCode + "'"); - } else { - LOG.info("Returned SUCCESS for "+svcOperation+" "); - serviceDataBuilder.setResponseCode("Welcome OOF POC. Number of Neighbor entries to be added " + input.getLteCellNumberOfEntries()); - } - - RpcResult<AddNeighborOutput> rpcResult = - RpcResultBuilder.<AddNeighborOutput> status(true).withResult(serviceDataBuilder.build()).build(); - - return Futures.immediateFuture(rpcResult); - } - - // RPC delete-neighbor - @Override - public ListenableFuture<RpcResult<DeleteNeighborOutput>> deleteNeighbor( - DeleteNeighborInput input) { - final String svcOperation = "delete-neighbor"; - - Properties parms = new Properties(); - DeleteNeighborOutputBuilder serviceDataBuilder = new DeleteNeighborOutputBuilder(); - - LOG.info( "Reached RPC deleteNeighbor"); - - LOG.info( svcOperation +" called." ); - - if(input == null ) { - LOG.debug("exiting " +svcOperation+ " because of invalid input"); - serviceDataBuilder.setResponseCode("Input is null"); - RpcResult<DeleteNeighborOutput> rpcResult = - RpcResultBuilder.<DeleteNeighborOutput> status(true).withResult(serviceDataBuilder.build()).build(); - return Futures.immediateFuture(rpcResult); - } - - // add input to parms - LOG.info("Adding INPUT data for "+svcOperation+" input: " + input); - DeleteNeighborInputBuilder inputBuilder = new DeleteNeighborInputBuilder(input); - MdsalHelper.toProperties(parms, inputBuilder.build()); - - // Call SLI sync method - try - { - - if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation , null, "sync")) - { - LOG.info( "OofpcipocClient has a Directed Graph for '" + svcOperation + "'"); - - try - { - OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms); - } - catch (Exception e) - { - LOG.error("Caught exception executing service logic for "+ svcOperation, e); - serviceDataBuilder.setResponseCode("500"); - } - } else { - LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'"); - serviceDataBuilder.setResponseCode("503"); - } - } - catch (Exception e) - { - LOG.error("Caught exception looking for service logic", e); - serviceDataBuilder.setResponseCode("500"); - } - - String errorCode = serviceDataBuilder.getResponseCode(); - - if (!("0".equals(errorCode) || "200".equals(errorCode))) { - LOG.error("Returned FAILED for "+svcOperation+" error code: '" + errorCode + "'"); - } else { - LOG.info("Returned SUCCESS for "+svcOperation+" "); - serviceDataBuilder.setResponseCode("Welcome OOF POC. Number of Neighbor entries to be deleted " + input.getLteCellNumberOfEntries()); - } - - RpcResult<DeleteNeighborOutput> rpcResult = - RpcResultBuilder.<DeleteNeighborOutput> status(true).withResult(serviceDataBuilder.build()).build(); - - return Futures.immediateFuture(rpcResult); - } - - // RPC generic-neighbor-configuration - @Override - public ListenableFuture<RpcResult<GenericNeighborConfigurationOutput>> genericNeighborConfiguration( - GenericNeighborConfigurationInput input) { - final String svcOperation = "generic-neighbor-configuration"; - - Properties parms = new Properties(); - GenericNeighborConfigurationOutputBuilder serviceDataBuilder = new GenericNeighborConfigurationOutputBuilder(); - - LOG.info( "Reached RPC genericNeighborConfiguration"); - - LOG.info( svcOperation +" called." ); - - if(input == null ) { - LOG.debug("exiting " +svcOperation+ " because of invalid input"); - serviceDataBuilder.setResponseCode("Input is null"); - RpcResult<GenericNeighborConfigurationOutput> rpcResult = - RpcResultBuilder.<GenericNeighborConfigurationOutput> status(true).withResult(serviceDataBuilder.build()).build(); - return Futures.immediateFuture(rpcResult); - } - - // add input to parms - LOG.info("Adding INPUT data for "+svcOperation+" input: " + input); - GenericNeighborConfigurationInputBuilder inputBuilder = new GenericNeighborConfigurationInputBuilder(input); - MdsalHelper.toProperties(parms, inputBuilder.build()); - - // Call SLI sync method - try - { - - if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation , null, "sync")) - { - LOG.info( "OofpcipocClient has a Directed Graph for '" + svcOperation + "'"); - - try - { - OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms); - } - catch (Exception e) - { - LOG.error("Caught exception executing service logic for "+ svcOperation, e); - serviceDataBuilder.setResponseCode("500"); - } - } else { - LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'"); - serviceDataBuilder.setResponseCode("503"); - } - } - catch (Exception e) - { - LOG.error("Caught exception looking for service logic", e); - serviceDataBuilder.setResponseCode("500"); - } - - String errorCode = serviceDataBuilder.getResponseCode(); - - if (!("0".equals(errorCode) || "200".equals(errorCode))) { - LOG.error("Returned FAILED for "+svcOperation+" error code: '" + errorCode + "'"); - } else { - LOG.info("Returned SUCCESS for "+svcOperation+" "); - serviceDataBuilder.setResponseCode("Welcome OOF POC. Number of Neighbor entries to be configured " + input.getLteCellNumberOfEntries()); - } - - RpcResult<GenericNeighborConfigurationOutput> rpcResult = - RpcResultBuilder.<GenericNeighborConfigurationOutput> status(true).withResult(serviceDataBuilder.build()).build(); - - return Futures.immediateFuture(rpcResult); - } - - // RPC handle-nbrlist-change-notif - @Override - public ListenableFuture<RpcResult<HandleNbrlistChangeNotifOutput>> handleNbrlistChangeNotif( - HandleNbrlistChangeNotifInput input) { - final String svcOperation = "handle-nbrlist-change-notif"; - - Properties parms = new Properties(); - HandleNbrlistChangeNotifOutputBuilder serviceDataBuilder = new HandleNbrlistChangeNotifOutputBuilder(); - - LOG.info( "Reached RPC handle-nbrlist-change-notif"); - - LOG.info( svcOperation +" called." ); - - if(input == null ) { - LOG.debug("exiting " +svcOperation+ " because of invalid input"); - serviceDataBuilder.setResponseCode("Input is null"); - RpcResult<HandleNbrlistChangeNotifOutput> rpcResult = - RpcResultBuilder.<HandleNbrlistChangeNotifOutput> status(true).withResult(serviceDataBuilder.build()).build(); - return Futures.immediateFuture(rpcResult); - } - - // add input to parms - LOG.info("Adding INPUT data for "+svcOperation+" input: " + input); - HandleNbrlistChangeNotifInputBuilder inputBuilder = new HandleNbrlistChangeNotifInputBuilder(input); - MdsalHelper.toProperties(parms, inputBuilder.build()); - - // Call SLI sync method - try - { - if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation , null, "sync")) - { - LOG.info( "OofpcipocClient has a Directed Graph for '" + svcOperation + "'"); - try - { - OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms); - } - catch (Exception e) - { - LOG.error("Caught exception executing service logic for "+ svcOperation, e); - serviceDataBuilder.setResponseCode("500"); - } - } else { - LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'"); - serviceDataBuilder.setResponseCode("503"); - } - } - catch (Exception e) - { - LOG.error("Caught exception looking for service logic", e); - serviceDataBuilder.setResponseCode("500"); - } - - String errorCode = serviceDataBuilder.getResponseCode(); - - if (!("0".equals(errorCode) || "200".equals(errorCode))) { - LOG.error("Returned FAILED for "+svcOperation+" error code: '" + errorCode + "'"); - } else { - LOG.info("Returned SUCCESS for "+svcOperation+" "); - serviceDataBuilder.setResponseCode("Welcome OOF POC. Number of FAP services changed = " + input.getFapServiceNumberOfEntriesChanged()); - } - - RpcResult<HandleNbrlistChangeNotifOutput> rpcResult = - RpcResultBuilder.<HandleNbrlistChangeNotifOutput> status(true).withResult(serviceDataBuilder.build()).build(); - - LOG.info("Successful exit from handle-nbrlist-change-notif "); - - return Futures.immediateFuture(rpcResult); - } + // RPC generic-neighbor-configuration + @Override + public ListenableFuture<RpcResult<GenericNeighborConfigurationOutput>> genericNeighborConfiguration( + GenericNeighborConfigurationInput input) { + final String svcOperation = "generic-neighbor-configuration"; + + Properties parms = new Properties(); + GenericNeighborConfigurationOutputBuilder serviceDataBuilder = new GenericNeighborConfigurationOutputBuilder(); + + LOG.info("Reached RPC genericNeighborConfiguration"); + + LOG.info(svcOperation + " called."); + + if (input == null) { + LOG.debug("exiting " + svcOperation + " because of invalid input"); + serviceDataBuilder.setResponseCode("Input is null"); + RpcResult<GenericNeighborConfigurationOutput> rpcResult = RpcResultBuilder + .<GenericNeighborConfigurationOutput>status(true).withResult(serviceDataBuilder.build()).build(); + return Futures.immediateFuture(rpcResult); + } + + // add input to parms + LOG.info("Adding INPUT data for " + svcOperation + " input: " + input); + GenericNeighborConfigurationInputBuilder inputBuilder = new GenericNeighborConfigurationInputBuilder(input); + MdsalHelper.toProperties(parms, inputBuilder.build()); + + // Call SLI sync method + try { + + if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation, null, "sync")) { + LOG.info("OofpcipocClient has a Directed Graph for '" + svcOperation + "'"); + + try { + OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms); + } catch (Exception e) { + LOG.error("Caught exception executing service logic for " + svcOperation, e); + serviceDataBuilder.setResponseCode("500"); + } + } else { + LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'"); + serviceDataBuilder.setResponseCode("503"); + } + } catch (Exception e) { + LOG.error("Caught exception looking for service logic", e); + serviceDataBuilder.setResponseCode("500"); + } + + String errorCode = serviceDataBuilder.getResponseCode(); + + if (!("0".equals(errorCode) || "200".equals(errorCode))) { + LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'"); + } else { + LOG.info("Returned SUCCESS for " + svcOperation + " "); + serviceDataBuilder.setResponseCode("Welcome OOF POC. Number of Neighbor entries to be configured " + + input.getLteCellNumberOfEntries()); + } + + RpcResult<GenericNeighborConfigurationOutput> rpcResult = RpcResultBuilder + .<GenericNeighborConfigurationOutput>status(true).withResult(serviceDataBuilder.build()).build(); + + return Futures.immediateFuture(rpcResult); + } + + // RPC handle-nbrlist-change-notif + @Override + public ListenableFuture<RpcResult<HandleNbrlistChangeNotifOutput>> handleNbrlistChangeNotif( + HandleNbrlistChangeNotifInput input) { + final String svcOperation = "handle-nbrlist-change-notif"; + + Properties parms = new Properties(); + HandleNbrlistChangeNotifOutputBuilder serviceDataBuilder = new HandleNbrlistChangeNotifOutputBuilder(); + + LOG.info("Reached RPC handle-nbrlist-change-notif"); + + LOG.info(svcOperation + " called."); + + if (input == null) { + LOG.debug("exiting " + svcOperation + " because of invalid input"); + serviceDataBuilder.setResponseCode("Input is null"); + RpcResult<HandleNbrlistChangeNotifOutput> rpcResult = RpcResultBuilder + .<HandleNbrlistChangeNotifOutput>status(true).withResult(serviceDataBuilder.build()).build(); + return Futures.immediateFuture(rpcResult); + } + + // add input to parms + LOG.info("Adding INPUT data for " + svcOperation + " input: " + input); + HandleNbrlistChangeNotifInputBuilder inputBuilder = new HandleNbrlistChangeNotifInputBuilder(input); + MdsalHelper.toProperties(parms, inputBuilder.build()); + + // Call SLI sync method + try { + if (OofpcipocClient.hasGraph("oofpcipoc-api", svcOperation, null, "sync")) { + LOG.info("OofpcipocClient has a Directed Graph for '" + svcOperation + "'"); + try { + OofpcipocClient.execute("oofpcipoc-api", svcOperation, null, "sync", serviceDataBuilder, parms); + } catch (Exception e) { + LOG.error("Caught exception executing service logic for " + svcOperation, e); + serviceDataBuilder.setResponseCode("500"); + } + } else { + LOG.error("No service logic active for Oofpcipoc: '" + svcOperation + "'"); + serviceDataBuilder.setResponseCode("503"); + } + } catch (Exception e) { + LOG.error("Caught exception looking for service logic", e); + serviceDataBuilder.setResponseCode("500"); + } + + String errorCode = serviceDataBuilder.getResponseCode(); + + if (!("0".equals(errorCode) || "200".equals(errorCode))) { + LOG.error("Returned FAILED for " + svcOperation + " error code: '" + errorCode + "'"); + } else { + LOG.info("Returned SUCCESS for " + svcOperation + " "); + serviceDataBuilder.setResponseCode( + "Welcome OOF POC. Number of FAP services changed = " + input.getFapServiceNumberOfEntriesChanged()); + } + + RpcResult<HandleNbrlistChangeNotifOutput> rpcResult = RpcResultBuilder + .<HandleNbrlistChangeNotifOutput>status(true).withResult(serviceDataBuilder.build()).build(); + + LOG.info("Successful exit from handle-nbrlist-change-notif "); + + return Futures.immediateFuture(rpcResult); + } } diff --git a/sdnr/northbound/oofpcipoc/provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml b/sdnr/northbound/oofpcipoc/provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml deleted file mode 100644 index d62c2f797..000000000 --- a/sdnr/northbound/oofpcipoc/provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml +++ /dev/null @@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ ============LICENSE_START======================================================= - ~ ONAP : ccsdk features - ~ ================================================================================ - ~ Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - ~ ================================================================================ - ~ Licensed under the Apache License, Version 2.0 (the "License"); - ~ you may not use this file except in compliance with the License. - ~ You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License. - ~ ============LICENSE_END======================================================= - ~ - --> - -<blueprint xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0" - xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" odl:use-default-for-reference-types="true"> - - <reference id="svcLogicService" - interface="org.onap.ccsdk.sli.core.sli.provider.SvcLogicService"/> - - <bean id="client" class="org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocClient"> - <argument ref="svcLogicService"/> - </bean> - - <reference id="dataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker" - odl:type="default"/> - - <reference id="notificationService" - interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService" - odl:type="default"/> - - <reference id="rpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry" - odl:type="default"/> - - <bean id="provider" class="org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocProvider"> - <argument ref="dataBroker"/> - <argument ref="rpcRegistry"/> - <argument ref="notificationService"/> - <argument ref="client"/> - </bean> - -</blueprint> diff --git a/sdnr/northbound/oofpcipoc/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/sdnr/northbound/oofpcipoc/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml index d62c2f797..a02e4a4cd 100644 --- a/sdnr/northbound/oofpcipoc/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml +++ b/sdnr/northbound/oofpcipoc/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml @@ -1,50 +1,46 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- - ~ ============LICENSE_START======================================================= - ~ ONAP : ccsdk features - ~ ================================================================================ - ~ Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - ~ ================================================================================ - ~ Licensed under the Apache License, Version 2.0 (the "License"); - ~ you may not use this file except in compliance with the License. - ~ You may obtain a copy of the License at - ~ - ~ http://www.apache.org/licenses/LICENSE-2.0 - ~ - ~ Unless required by applicable law or agreed to in writing, software - ~ distributed under the License is distributed on an "AS IS" BASIS, - ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - ~ See the License for the specific language governing permissions and - ~ limitations under the License. - ~ ============LICENSE_END======================================================= - ~ - --> - -<blueprint xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0" - xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" odl:use-default-for-reference-types="true"> - - <reference id="svcLogicService" - interface="org.onap.ccsdk.sli.core.sli.provider.SvcLogicService"/> - - <bean id="client" class="org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocClient"> - <argument ref="svcLogicService"/> - </bean> - - <reference id="dataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker" - odl:type="default"/> - - <reference id="notificationService" - interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService" - odl:type="default"/> - - <reference id="rpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry" - odl:type="default"/> - - <bean id="provider" class="org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocProvider"> - <argument ref="dataBroker"/> - <argument ref="rpcRegistry"/> - <argument ref="notificationService"/> - <argument ref="client"/> - </bean> +<!-- ~ ============LICENSE_START======================================================= + ~ ONAP : ccsdk features ~ ================================================================================ + ~ Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. ~ ================================================================================ + ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may + not use this file except in compliance with the License. ~ You may obtain + a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ + ~ Unless required by applicable law or agreed to in writing, software ~ distributed + under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES + OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for + the specific language governing permissions and ~ limitations under the License. + ~ ============LICENSE_END======================================================= + ~ --> + +<blueprint + xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0" + xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" + odl:use-default-for-reference-types="true"> + + <reference id="svcLogicService" + interface="org.onap.ccsdk.sli.core.sli.provider.SvcLogicService" /> + + <bean id="client" + class="org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocClient"> + <argument ref="svcLogicService" /> + </bean> + + <reference id="dataBroker" + interface="org.opendaylight.mdsal.binding.api.DataBroker"/> + + <reference id="rpcProviderService" + interface="org.opendaylight.mdsal.binding.api.RpcProviderService" /> + + <reference id="notificationPublishService" + interface="org.opendaylight.mdsal.binding.api.NotificationPublishService" /> + + <bean id="provider" + class="org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocProvider" + init-method="init" destroy-method="close"> + <property name="dataBroker" ref="dataBroker" /> + <property name="rpcProviderService" ref="rpcProviderService" /> + <property name="notificationPublishService" ref="notificationPublishService" /> + <property name="client" ref="client" /> + </bean> </blueprint> diff --git a/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java b/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java index daa210e4b..597c75cef 100644 --- a/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java +++ b/sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java @@ -24,14 +24,6 @@ package org.onap.ccsdk.features.sdnr.northbound.oofpcipoc; import org.junit.Before; import org.junit.Test; -import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocClient; -import org.onap.ccsdk.features.sdnr.northbound.oofpcipoc.OofpcipocProvider; - -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; -import org.opendaylight.controller.md.sal.binding.test.AbstractConcurrentDataBrokerTest; -import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; - import org.opendaylight.yangtools.yang.common.RpcResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,15 +33,18 @@ import static org.mockito.Mockito.mock; import java.math.*; -import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.ConfigurationPhyCellIdInput; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.binding.api.NotificationPublishService; +import org.opendaylight.mdsal.binding.api.RpcProviderService; + import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.ConfigurationPhyCellIdInputBuilder; import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.ConfigurationPhyCellIdOutput; -import org.opendaylight.yang.gen.v1.org.onap.ccsdk.rev190308.ConfigurationPhyCellIdOutputBuilder; + import com.google.common.util.concurrent.ListenableFuture; -public class TestOofpcipoc extends AbstractConcurrentDataBrokerTest { +public class TestOofpcipoc { private OofpcipocProvider oofpcipocProvider; private static final Logger LOG = LoggerFactory.getLogger(OofpcipocProvider.class); @@ -57,11 +52,15 @@ public class TestOofpcipoc extends AbstractConcurrentDataBrokerTest { @Before public void setUp() throws Exception { if (null == oofpcipocProvider) { - DataBroker dataBroker = getDataBroker(); + DataBroker dataBroker = mock(DataBroker.class); NotificationPublishService mockNotification = mock(NotificationPublishService.class); - RpcProviderRegistry mockRpcRegistry = mock(RpcProviderRegistry.class); + RpcProviderService mockRpcRegistry = mock(RpcProviderService.class); OofpcipocClient mockSliClient = mock(OofpcipocClient.class); - oofpcipocProvider = new OofpcipocProvider(dataBroker, mockNotification, mockRpcRegistry, mockSliClient); + oofpcipocProvider = new OofpcipocProvider(); + oofpcipocProvider.setDataBroker(dataBroker); + oofpcipocProvider.setNotificationPublishService(mockNotification); + oofpcipocProvider.setRpcProviderService(mockRpcRegistry); + oofpcipocProvider.setClient(mockSliClient); } } |