summaryrefslogtreecommitdiffstats
path: root/vnfapi
diff options
context:
space:
mode:
authorTimoney, Dan (dt5972) <dtimoney@att.com>2018-12-20 14:53:11 -0500
committerTimoney, Dan (dt5972) <dtimoney@att.com>2019-01-18 14:37:14 -0500
commitfc7132985898981337055ae4cef3104836fd16d1 (patch)
tree393d362bd0251cb6663675b89b8e2cbc938c8163 /vnfapi
parent8d5dd448588cca26cbb76ef9b4877ef1469471c6 (diff)
Update sdnc/northbound to support Fluorine
Update code to support OpenDaylight Fluorine changes. Change-Id: Iec7e5173076419b101d07e3321b1ca93178b6fa7 Issue-ID: SDNC-552 Signed-off-by: Timoney, Dan (dt5972) <dtimoney@att.com>
Diffstat (limited to 'vnfapi')
-rw-r--r--vnfapi/features/features-vnfapi/pom.xml2
-rw-r--r--vnfapi/features/pom.xml4
-rw-r--r--vnfapi/features/sdnc-vnfapi/pom.xml4
-rwxr-xr-xvnfapi/installer/pom.xml4
-rw-r--r--vnfapi/model/pom.xml8
-rwxr-xr-xvnfapi/model/src/main/yang/VNF-API.yang2
-rw-r--r--vnfapi/pom.xml4
-rw-r--r--vnfapi/provider/pom.xml20
-rw-r--r--vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/VnfApiProvider.java176
-rw-r--r--vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/VnfapiProviderTestBase.java42
-rw-r--r--vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/util/DataBrokerUtil.java2
11 files changed, 153 insertions, 115 deletions
diff --git a/vnfapi/features/features-vnfapi/pom.xml b/vnfapi/features/features-vnfapi/pom.xml
index 964174cc..5fe3f1ad 100644
--- a/vnfapi/features/features-vnfapi/pom.xml
+++ b/vnfapi/features/features-vnfapi/pom.xml
@@ -5,7 +5,7 @@
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.2.1-SNAPSHOT</version>
<relativePath/>
</parent>
diff --git a/vnfapi/features/pom.xml b/vnfapi/features/pom.xml
index 82a2c67c..71ff6436 100644
--- a/vnfapi/features/pom.xml
+++ b/vnfapi/features/pom.xml
@@ -5,8 +5,8 @@
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
diff --git a/vnfapi/features/sdnc-vnfapi/pom.xml b/vnfapi/features/sdnc-vnfapi/pom.xml
index c91c805a..2a81d349 100644
--- a/vnfapi/features/sdnc-vnfapi/pom.xml
+++ b/vnfapi/features/sdnc-vnfapi/pom.xml
@@ -5,8 +5,8 @@
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
diff --git a/vnfapi/installer/pom.xml b/vnfapi/installer/pom.xml
index 74eb8bec..a1380940 100755
--- a/vnfapi/installer/pom.xml
+++ b/vnfapi/installer/pom.xml
@@ -5,8 +5,8 @@
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
diff --git a/vnfapi/model/pom.xml b/vnfapi/model/pom.xml
index a72517c0..b7d200fb 100644
--- a/vnfapi/model/pom.xml
+++ b/vnfapi/model/pom.xml
@@ -5,8 +5,8 @@
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>binding-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
@@ -19,11 +19,11 @@
<dependencies>
<dependency>
<groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>ietf-inet-types</artifactId>
+ <artifactId>ietf-inet-types-2013-07-15</artifactId>
</dependency>
<dependency>
<groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>ietf-yang-types</artifactId>
+ <artifactId>ietf-yang-types-20130715</artifactId>
</dependency>
</dependencies>
</project>
diff --git a/vnfapi/model/src/main/yang/VNF-API.yang b/vnfapi/model/src/main/yang/VNF-API.yang
index 3dd5105a..5a6a472c 100755
--- a/vnfapi/model/src/main/yang/VNF-API.yang
+++ b/vnfapi/model/src/main/yang/VNF-API.yang
@@ -6,7 +6,7 @@ module VNF-API {
prefix vnfapi;
- import ietf-inet-types { prefix "ietf"; revision-date "2010-09-24"; }
+ import ietf-inet-types { prefix "ietf"; revision-date "2013-07-15"; }
include "vnfsubmodule";
diff --git a/vnfapi/pom.xml b/vnfapi/pom.xml
index c159343b..00469a65 100644
--- a/vnfapi/pom.xml
+++ b/vnfapi/pom.xml
@@ -5,8 +5,8 @@
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
diff --git a/vnfapi/provider/pom.xml b/vnfapi/provider/pom.xml
index 678cc16e..7d799eb3 100644
--- a/vnfapi/provider/pom.xml
+++ b/vnfapi/provider/pom.xml
@@ -5,8 +5,8 @@
<parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>binding-parent</artifactId>
- <version>1.2.0-SNAPSHOT</version>
- <relativePath />
+ <version>1.2.1-SNAPSHOT</version>
+ <relativePath/>
</parent>
<groupId>org.onap.sdnc.northbound</groupId>
@@ -15,7 +15,17 @@
<packaging>bundle</packaging>
<name>sdnc-northbound :: vnfapi :: ${project.artifactId}</name>
-
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>sli-core-artifacts</artifactId>
+ <version>${ccsdk.sli.core.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
<dependencies>
<dependency>
<groupId>org.onap.sdnc.northbound</groupId>
@@ -24,10 +34,6 @@
</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>
diff --git a/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/VnfApiProvider.java b/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/VnfApiProvider.java
index 1a05d2db..46184b0a 100644
--- a/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/VnfApiProvider.java
+++ b/vnfapi/provider/src/main/java/org/onap/sdnc/vnfapi/VnfApiProvider.java
@@ -24,13 +24,14 @@ package org.onap.sdnc.vnfapi;
import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.base.Optional;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.OptimisticLockFailedException;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
@@ -145,6 +146,7 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.concurrent.Future;
/**
@@ -153,7 +155,7 @@ import java.util.concurrent.Future;
* initialization / clean up methods.
*/
-public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeListener {
+public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataTreeChangeListener {
protected DataBroker dataBroker;
protected NotificationPublishService notificationService;
protected RpcProviderRegistry rpcRegistry;
@@ -276,60 +278,69 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
}
// On data change not used
- @Override
- public void onDataChanged(AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change) {
-
- log.info(" IN ON DATA CHANGE: ");
-
- boolean changed = false;
- WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
- DataObject updatedSubTree = change.getUpdatedSubtree();
-
- if (updatedSubTree != null) {
- if (log.isDebugEnabled()) {
- log.debug("updatedSubTree was non-null:" + updatedSubTree);
- }
- if (updatedSubTree instanceof Vnfs) {
- changed = isChanged(changed, (Vnfs) updatedSubTree);
- }
- if (updatedSubTree instanceof PreloadVnfs) {
- changed = isChanged(changed, (PreloadVnfs) updatedSubTree);
- }
- //1610
- if (updatedSubTree instanceof PreloadVnfInstances) {
- changed = isChanged(changed, (PreloadVnfInstances) updatedSubTree);
- }
- //1610
- if (updatedSubTree instanceof VnfInstances) {
- changed = isChanged(changed, (VnfInstances) updatedSubTree);
- }
- //1610
- if (updatedSubTree instanceof PreloadVfModules) {
- changed = isChanged(changed, (PreloadVfModules) updatedSubTree);
- }
- //1610
- if (updatedSubTree instanceof VfModules) {
- changed = isChanged(changed, (VfModules) updatedSubTree);
- }
- }
-
- // Do the write transaction only if something changed.
- if (changed) {
- CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = writeTransaction.submit();
- Futures.addCallback(checkedFuture, new FutureCallback<Void>() {
-
- @Override
- public void onSuccess(Void arg0) {
- log.debug("Successfully updated Service Status");
- }
-
- @Override
- public void onFailure(Throwable e) {
- log.debug("Failed updating Service Status", e);
- }
- }, executor);
- }
- }
+ @Override
+ public void onDataTreeChanged(Collection changes) {
+
+ log.info(" IN ON DATA CHANGE: ");
+
+ for (Object changeObj : changes) {
+
+ if (changeObj instanceof DataTreeModification) {
+
+ DataTreeModification change = (DataTreeModification) changeObj;
+
+
+ boolean changed = false;
+ WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
+ DataObject updatedSubTree = change.getRootNode().getDataAfter();
+
+ if (updatedSubTree != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("updatedSubTree was non-null:" + updatedSubTree);
+ }
+ if (updatedSubTree instanceof Vnfs) {
+ changed = isChanged(changed, (Vnfs) updatedSubTree);
+ }
+ if (updatedSubTree instanceof PreloadVnfs) {
+ changed = isChanged(changed, (PreloadVnfs) updatedSubTree);
+ }
+ // 1610
+ if (updatedSubTree instanceof PreloadVnfInstances) {
+ changed = isChanged(changed, (PreloadVnfInstances) updatedSubTree);
+ }
+ // 1610
+ if (updatedSubTree instanceof VnfInstances) {
+ changed = isChanged(changed, (VnfInstances) updatedSubTree);
+ }
+ // 1610
+ if (updatedSubTree instanceof PreloadVfModules) {
+ changed = isChanged(changed, (PreloadVfModules) updatedSubTree);
+ }
+ // 1610
+ if (updatedSubTree instanceof VfModules) {
+ changed = isChanged(changed, (VfModules) updatedSubTree);
+ }
+ }
+
+ // Do the write transaction only if something changed.
+ if (changed) {
+ CheckedFuture<Void, TransactionCommitFailedException> checkedFuture = writeTransaction.submit();
+ Futures.addCallback(checkedFuture, new FutureCallback<Void>() {
+
+ @Override
+ public void onSuccess(Void arg0) {
+ log.debug("Successfully updated Service Status");
+ }
+
+ @Override
+ public void onFailure(Throwable e) {
+ log.debug("Failed updating Service Status", e);
+ }
+ }, executor);
+ }
+ }
+ }
+ }
private boolean isChanged(boolean changed, VfModules updatedSubTree) {
ArrayList<VfModuleList> vfModuleList =
@@ -813,7 +824,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VnfList> path = InstanceIdentifier
.builder(Vnfs.class)
- .child(VnfList.class, entry.getKey())
+ .child(VnfList.class, entry.key())
.build();
int optimisticLockTries = 2;
@@ -834,13 +845,22 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
tryAgain = true;
} catch (final TransactionCommitFailedException e) {
-
- if (e.getCause() instanceof ModifiedNodeDoesNotExistException) {
- log.debug("Ignoring MpdifiedNodeDoesNotExistException");
+ Throwable eCause = e.getCause();
+
+
+ if (eCause instanceof org.opendaylight.mdsal.common.api.TransactionCommitFailedException) {
+ log.debug("Nested TransactionCommitFailed exception - getting next cause");
+ eCause = eCause.getCause();
+ } else {
+ log.debug("Got TransactionCommitFailedException, caused by {}", eCause.getClass().getName());
+ }
+
+ if (eCause instanceof ModifiedNodeDoesNotExistException) {
+ log.debug("Ignoring ModifiedNodeDoesNotExistException");
break;
}
- log.debug("Delete DataStore failed");
+ log.debug("Delete DataStore failed due to exception", eCause);
throw new IllegalStateException(e);
}
}
@@ -850,7 +870,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VnfList> path = InstanceIdentifier
.builder(Vnfs.class)
- .child(VnfList.class, entry.getKey())
+ .child(VnfList.class, entry.key())
.build();
tryUpdateDataStore(entry, merge, storeType, path);
@@ -861,7 +881,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VnfInstanceList> path = InstanceIdentifier
.builder(VnfInstances.class)
- .child(VnfInstanceList.class, entry.getKey())
+ .child(VnfInstanceList.class, entry.key())
.build();
tryUpdateDataStore(entry, merge, storeType, path);
@@ -872,7 +892,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VfModuleList> path = InstanceIdentifier
.builder(VfModules.class)
- .child(VfModuleList.class, entry.getKey())
+ .child(VfModuleList.class, entry.key())
.build();
tryUpdateDataStore(entry, merge, storeType, path);
@@ -883,7 +903,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VnfPreloadList> path = InstanceIdentifier
.builder(PreloadVnfs.class)
- .child(VnfPreloadList.class, entry.getKey())
+ .child(VnfPreloadList.class, entry.key())
.build();
tryUpdateDataStore(entry, merge, storeType, path);
@@ -896,7 +916,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VnfInstancePreloadList> path = InstanceIdentifier
.builder(PreloadVnfInstances.class)
- .child(VnfInstancePreloadList.class, entry.getKey())
+ .child(VnfInstancePreloadList.class, entry.key())
.build();
tryUpdateDataStore(entry, merge, storeType, path);
@@ -909,7 +929,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
// Each entry will be identifiable by a unique key, we have to create that identifier
InstanceIdentifier<VfModulePreloadList> path = InstanceIdentifier
.builder(PreloadVfModules.class)
- .child(VfModulePreloadList.class, entry.getKey())
+ .child(VfModulePreloadList.class, entry.key())
.build();
tryUpdateDataStore(entry, merge, storeType, path);
@@ -957,7 +977,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
&& input.getVnfInstanceRequestInformation().getVnfInstanceId().length() != 0;
}
- private Future<RpcResult<VnfInstanceTopologyOperationOutput>> buildVnfInstanceTopologyOperationOutputWithtError(
+ private ListenableFuture<RpcResult<VnfInstanceTopologyOperationOutput>> buildVnfInstanceTopologyOperationOutputWithtError(
String responseCode, String responseMessage, String ackFinalIndicator) {
VnfInstanceTopologyOperationOutputBuilder responseBuilder = new VnfInstanceTopologyOperationOutputBuilder();
responseBuilder.setResponseCode(responseCode);
@@ -970,7 +990,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
}
@Override
- public Future<RpcResult<VnfInstanceTopologyOperationOutput>> vnfInstanceTopologyOperation(
+ public ListenableFuture<RpcResult<VnfInstanceTopologyOperationOutput>> vnfInstanceTopologyOperation(
VnfInstanceTopologyOperationInput input) {
final String svcOperation = "vnf-instance-topology-operation";
@@ -1156,7 +1176,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
//1610 vf-module-topology-operation
@Override
- public Future<RpcResult<VfModuleTopologyOperationOutput>> vfModuleTopologyOperation(
+ public ListenableFuture<RpcResult<VfModuleTopologyOperationOutput>> vfModuleTopologyOperation(
VfModuleTopologyOperationInput input) {
final String svcOperation = "vf-module-topology-operation";
@@ -1388,7 +1408,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
}
@Override
- public Future<RpcResult<VnfTopologyOperationOutput>> vnfTopologyOperation(VnfTopologyOperationInput input) {
+ public ListenableFuture<RpcResult<VnfTopologyOperationOutput>> vnfTopologyOperation(VnfTopologyOperationInput input) {
final String svcOperation = "vnf-topology-operation";
ServiceData serviceData;
ServiceStatusBuilder serviceStatusBuilder = new ServiceStatusBuilder();
@@ -1580,7 +1600,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
}
@Override
- public Future<RpcResult<NetworkTopologyOperationOutput>> networkTopologyOperation(
+ public ListenableFuture<RpcResult<NetworkTopologyOperationOutput>> networkTopologyOperation(
NetworkTopologyOperationInput input) {
final String svcOperation = "network-topology-operation";
@@ -1722,7 +1742,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
}
@Override
- public Future<RpcResult<PreloadVnfTopologyOperationOutput>> preloadVnfTopologyOperation(
+ public ListenableFuture<RpcResult<PreloadVnfTopologyOperationOutput>> preloadVnfTopologyOperation(
PreloadVnfTopologyOperationInput input) {
final String svcOperation = "preload-vnf-topology-operation";
@@ -1909,7 +1929,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
//1610 preload-vnf-instance-topology-operation
@Override
- public Future<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> preloadVnfInstanceTopologyOperation(
+ public ListenableFuture<RpcResult<PreloadVnfInstanceTopologyOperationOutput>> preloadVnfInstanceTopologyOperation(
PreloadVnfInstanceTopologyOperationInput input) {
final String svcOperation = "preload-vnf-instance-topology-operation";
@@ -2098,7 +2118,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
//1610 preload-vf-module-topology-operation
@Override
- public Future<RpcResult<PreloadVfModuleTopologyOperationOutput>> preloadVfModuleTopologyOperation(
+ public ListenableFuture<RpcResult<PreloadVfModuleTopologyOperationOutput>> preloadVfModuleTopologyOperation(
PreloadVfModuleTopologyOperationInput input) {
final String svcOperation = "preload-vf-module-topology-operation";
@@ -2288,7 +2308,7 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
@Override
- public Future<RpcResult<PreloadNetworkTopologyOperationOutput>> preloadNetworkTopologyOperation(
+ public ListenableFuture<RpcResult<PreloadNetworkTopologyOperationOutput>> preloadNetworkTopologyOperation(
PreloadNetworkTopologyOperationInput input) {
final String svcOperation = "preload-network-topology-operation";
@@ -2477,4 +2497,6 @@ public class VnfApiProvider implements AutoCloseable, VNFAPIService, DataChangeL
.build();
return Futures.immediateFuture(rpcResult);
}
+
+
}
diff --git a/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/VnfapiProviderTestBase.java b/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/VnfapiProviderTestBase.java
index 0c025523..7ce99ec6 100644
--- a/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/VnfapiProviderTestBase.java
+++ b/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/VnfapiProviderTestBase.java
@@ -31,11 +31,12 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
+import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
@@ -105,6 +106,8 @@ import org.opendaylight.yangtools.yang.common.RpcResult;
import org.powermock.reflect.Whitebox;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedList;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
@@ -171,11 +174,15 @@ public class VnfapiProviderTestBase {
verify(vnfapiServiceRpcRegistration, times(1)).close();
}
- @Test public void onDataChanged() throws Exception {
- AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> asyncDataChangeEvent = mock(AsyncDataChangeEvent.class);
+ @Test public void onDataTreeChanged() throws Exception {
+ DataTreeModification dtm = mock(DataTreeModification.class);
+ DataObjectModification dom = mock(DataObjectModification.class);
+
+
// instance of Vnfs
Vnfs vnfs = mock(Vnfs.class);
- doReturn(vnfs).when(asyncDataChangeEvent).getUpdatedSubtree();
+ doReturn(dom).when(dtm).getRootNode();
+ doReturn(vnfs).when(dom).getDataAfter();
VnfList vnfList = mock(VnfList.class);
ServiceData serviceData = mock(ServiceData.class);
doReturn(serviceData).when(vnfList).getServiceData();
@@ -189,13 +196,16 @@ public class VnfapiProviderTestBase {
doReturn(readWriteTransactionInDataChanged).when(dataBroker).newWriteOnlyTransaction();
doReturn(checkedFuture).when(readWriteTransactionInDataChanged).submit();
- vnfapiProvider.onDataChanged(asyncDataChangeEvent);
+ Collection dtmList = new LinkedList<DataTreeModification>();
+ dtmList.add(dtm);
+
+ vnfapiProvider.onDataTreeChanged(dtmList);
verify(readWriteTransactionInDataChanged, times(1)).submit();
// instance of PreloadVnfs
PreloadVnfs preloadVnfs = mock(PreloadVnfs.class);
- doReturn(preloadVnfs).when(asyncDataChangeEvent).getUpdatedSubtree();
+ doReturn(preloadVnfs).when(dom).getDataAfter();
ArrayList<VnfPreloadList> vnfPreloadLists = new ArrayList<>();
doReturn(vnfPreloadLists).when(preloadVnfs).getVnfPreloadList();
PreloadData preloadData = mock(PreloadData.class);
@@ -203,13 +213,13 @@ public class VnfapiProviderTestBase {
doReturn(preloadData).when(vnfPreloadList).getPreloadData();
vnfPreloadLists.add(vnfPreloadList);
- vnfapiProvider.onDataChanged(asyncDataChangeEvent);
+ vnfapiProvider.onDataTreeChanged(dtmList);
verify(readWriteTransactionInDataChanged, times(2)).submit();
// instance of PreloadVnfInstances
PreloadVnfInstances preloadVnfInstances = mock(PreloadVnfInstances.class);
- doReturn(preloadVnfInstances).when(asyncDataChangeEvent).getUpdatedSubtree();
+ doReturn(preloadVnfInstances).when(dom).getDataAfter();
ArrayList<VnfInstancePreloadList> vnfInstancePreloadLists = new ArrayList<>();
doReturn(vnfInstancePreloadLists).when(preloadVnfInstances).getVnfInstancePreloadList();
VnfInstancePreloadList vnfInstancePreloadList = mock(VnfInstancePreloadList.class);
@@ -217,13 +227,13 @@ public class VnfapiProviderTestBase {
doReturn(vnfInstancePreloadData).when(vnfInstancePreloadList).getVnfInstancePreloadData();
vnfInstancePreloadLists.add(vnfInstancePreloadList);
- vnfapiProvider.onDataChanged(asyncDataChangeEvent);
+ vnfapiProvider.onDataTreeChanged(dtmList);
verify(readWriteTransactionInDataChanged, times(3)).submit();
// instance of VnfInstances
VnfInstances vnfInstances = mock(VnfInstances.class);
- doReturn(vnfInstances).when(asyncDataChangeEvent).getUpdatedSubtree();
+ doReturn(vnfInstances).when(dom).getDataAfter();
ArrayList<VnfInstanceList> vnfInstanceLists = new ArrayList<>();
doReturn(vnfInstanceLists).when(vnfInstances).getVnfInstanceList();
VnfInstanceList vnfInstanceList = mock(VnfInstanceList.class);
@@ -232,13 +242,13 @@ public class VnfapiProviderTestBase {
doReturn(vnfInstanceServiceData).when(vnfInstanceList).getVnfInstanceServiceData();
doReturn(serviceStatus).when(vnfInstanceList).getServiceStatus();
- vnfapiProvider.onDataChanged(asyncDataChangeEvent);
+ vnfapiProvider.onDataTreeChanged(dtmList);
verify(readWriteTransactionInDataChanged, times(4)).submit();
// instance of PreloadVfModules
PreloadVfModules preloadVfModules = mock(PreloadVfModules.class);
- doReturn(preloadVfModules).when(asyncDataChangeEvent).getUpdatedSubtree();
+ doReturn(preloadVfModules).when(dom).getDataAfter();
ArrayList<VfModulePreloadList> vfModulePreloadLists = new ArrayList<>();
doReturn(vfModulePreloadLists).when(preloadVfModules).getVfModulePreloadList();
VfModulePreloadList vfModulePreloadList = mock(VfModulePreloadList.class);
@@ -246,13 +256,13 @@ public class VnfapiProviderTestBase {
VfModulePreloadData vfModulePreloadData = mock(VfModulePreloadData.class);
doReturn(vfModulePreloadData).when(vfModulePreloadList).getVfModulePreloadData();
- vnfapiProvider.onDataChanged(asyncDataChangeEvent);
+ vnfapiProvider.onDataTreeChanged(dtmList);
verify(readWriteTransactionInDataChanged, times(5)).submit();
// instance of VfModules
VfModules vfModules = mock(VfModules.class);
- doReturn(preloadVfModules).when(asyncDataChangeEvent).getUpdatedSubtree();
+ doReturn(preloadVfModules).when(dom).getDataAfter();
ArrayList<VfModuleList> vfModuleLists = new ArrayList<>();
doReturn(vfModuleLists).when(vfModules).getVfModuleList();
VfModuleList vfModuleList = mock(VfModuleList.class);
@@ -261,7 +271,7 @@ public class VnfapiProviderTestBase {
doReturn(vfModuleServiceData).when(vfModuleList).getVfModuleServiceData();
doReturn(serviceStatus).when(vfModuleList).getServiceStatus();
- vnfapiProvider.onDataChanged(asyncDataChangeEvent);
+ vnfapiProvider.onDataTreeChanged(dtmList);
verify(readWriteTransactionInDataChanged, times(6)).submit();
}
@@ -1497,7 +1507,7 @@ public class VnfapiProviderTestBase {
LogicalDatastoreType configuration = LogicalDatastoreType.CONFIGURATION;
VnfList vnfList = mock(VnfList.class);
VnfListKey vnfListKey = mock(VnfListKey.class);
- doReturn(vnfListKey).when(vnfList).getKey();
+ doReturn(vnfListKey).when(vnfList).key();
InstanceIdentifier<VnfList> vnfListInstanceIdentifier = mock(InstanceIdentifier.class);
dataBroker.newWriteOnlyTransaction().put(configuration, vnfListInstanceIdentifier, vnfList);
diff --git a/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/util/DataBrokerUtil.java b/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/util/DataBrokerUtil.java
index d791fa97..352e9404 100644
--- a/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/util/DataBrokerUtil.java
+++ b/vnfapi/provider/src/test/java/org/onap/sdnc/vnfapi/util/DataBrokerUtil.java
@@ -71,7 +71,7 @@ public class DataBrokerUtil {
// Each entry will be identifiable by a unique key, we have to create that
// identifier
InstanceIdentifier.InstanceIdentifierBuilder<VnfList> VnfListBuilder = InstanceIdentifier
- .<Vnfs>builder(Vnfs.class).child(VnfList.class, VnfList.getKey());
+ .<Vnfs>builder(Vnfs.class).child(VnfList.class, VnfList.key());
InstanceIdentifier<VnfList> path = VnfListBuilder.build();
WriteTransaction tx = dataBroker.newWriteOnlyTransaction();