summaryrefslogtreecommitdiffstats
path: root/sdnr/northbound/oofpcipoc
diff options
context:
space:
mode:
authorRavi Pendurty <ravi.pendurty@highstreet-technologies.com>2021-02-03 14:09:25 +0100
committerDan Timoney <dtimoney@att.com>2021-02-05 22:55:34 +0000
commit2f9e781a7c3e22bf25df83dcc3ff44b885a80957 (patch)
treed14ec0201ea7012cfc6c70954dcef6475370cfc9 /sdnr/northbound/oofpcipoc
parent80ebbf5b525b1a251f8e0eebd4a841d85716cf65 (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')
-rw-r--r--sdnr/northbound/oofpcipoc/consumer/pom.xml16
-rw-r--r--sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocHandleNotif.java44
-rw-r--r--sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/handlenotif/pojos/CellConfig.java20
-rw-r--r--sdnr/northbound/oofpcipoc/consumer/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/handlenotif/pojos/NeighborListInUse.java20
-rw-r--r--sdnr/northbound/oofpcipoc/consumer/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml45
-rw-r--r--sdnr/northbound/oofpcipoc/consumer/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml2
-rw-r--r--sdnr/northbound/oofpcipoc/feature/pom.xml22
-rw-r--r--sdnr/northbound/oofpcipoc/installer/pom.xml2
-rw-r--r--sdnr/northbound/oofpcipoc/model/pom.xml2
-rw-r--r--sdnr/northbound/oofpcipoc/pom.xml2
-rw-r--r--sdnr/northbound/oofpcipoc/provider/pom.xml34
-rw-r--r--sdnr/northbound/oofpcipoc/provider/src/main/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/OofpcipocProvider.java720
-rw-r--r--sdnr/northbound/oofpcipoc/provider/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml50
-rw-r--r--sdnr/northbound/oofpcipoc/provider/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml90
-rw-r--r--sdnr/northbound/oofpcipoc/provider/src/test/java/org/onap/ccsdk/features/sdnr/northbound/oofpcipoc/TestOofpcipoc.java27
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);
}
}