fix for netconf model change 27/47327/3
authorMatej Perina <mperina@cisco.com>
Fri, 21 Oct 2016 13:45:29 +0000 (15:45 +0200)
committerMatej Perina <mperina@cisco.com>
Fri, 21 Oct 2016 13:45:29 +0000 (15:45 +0200)
 - fixes changes made in https://git.opendaylight.org/gerrit/#/c/43972/

Change-Id: I7c7521eb0c831842f8ea6119734f1bf71a840f16
Signed-off-by: Matej Perina <mperina@cisco.com>
renderers/ios-xe/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ios_xe_provider/impl/manager/NodeManager.java
renderers/ios-xe/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ios_xe_provider/impl/manager/NodeManagerTest.java
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/manager/VppNodeManager.java
renderers/vpp/src/test/java/org/opendaylight/groupbasedpolicy/renderer/vpp/manager/VppManagerDataStoreTest.java

index 73f6a039bfaba2b0b753e95f2d6bf0b2ebab3974..50f1a65b1f3fefdb5b9b544088656d8adcd189ec 100644 (file)
@@ -12,17 +12,13 @@ import static org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topolog
 import static org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus.Connecting;
 import static org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus.UnableToConnect;
 
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import java.util.Arrays;
 import java.util.List;
 import java.util.function.Function;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-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 javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.MountPoint;
 import org.opendaylight.controller.md.sal.binding.api.MountPointService;
@@ -41,6 +37,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev15
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionParameters;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.AvailableCapabilities;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapabilityBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
@@ -52,13 +50,20 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+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;
+
 public class NodeManager {
 
     private static final TopologyId TOPOLOGY_ID = new TopologyId("topology-netconf");
     private static final Logger LOG = LoggerFactory.getLogger(NodeManager.class);
     private final DataBroker dataBroker;
     private final MountPointService mountService;
-    private final List<String> requiredCapabilities;
+    private final List<AvailableCapability> requiredCapabilities;
 
     public NodeManager(final DataBroker dataBroker, final BindingAwareBroker.ProviderContext session) {
         this.dataBroker = Preconditions.checkNotNull(dataBroker);
@@ -240,8 +245,8 @@ public class NodeManager {
         return true;
     }
 
-    private boolean capabilityCheck(final List<String> capabilities) {
-        for (String requiredCapability : requiredCapabilities) {
+    private boolean capabilityCheck(final List<AvailableCapability> capabilities) {
+        for (AvailableCapability requiredCapability : requiredCapabilities) {
             if (!capabilities.contains(requiredCapability)) {
                 return false;
             }
@@ -315,14 +320,20 @@ public class NodeManager {
         return netconfNode;
     }
 
-    private class RequiredCapabilities {
+    private static class RequiredCapabilities {
 
-        private static final String NED = "(urn:ios?revision=2016-03-08)ned";
-        private static final String TAILF_COMMON = "(http://tail-f.com/yang/common?revision=2015-05-22)tailf-common";
-        private static final String TAILF_CLI_EXTENSION = "(http://tail-f.com/yang/common?revision=2015-03-19)tailf-cli-extensions";
-        private static final String TAILF_META_EXTENSION = "(http://tail-f.com/yang/common?revision=2013-11-07)tailf-meta-extensions";
-        private static final String IETF_YANG_TYPES = "(urn:ietf:params:xml:ns:yang:ietf-yang-types?revision=2013-07-15)ietf-yang-types";
-        private static final String IETF_INET_TYPES = "(urn:ietf:params:xml:ns:yang:ietf-inet-types?revision=2013-07-15)ietf-inet-types";
+        private static final AvailableCapability NED =
+                new AvailableCapabilityBuilder().setCapability("(urn:ios?revision=2016-03-08)ned").build();
+        private static final AvailableCapability TAILF_COMMON = new AvailableCapabilityBuilder()
+            .setCapability("(http://tail-f.com/yang/common?revision=2015-05-22)tailf-common").build();
+        private static final AvailableCapability TAILF_CLI_EXTENSION = new AvailableCapabilityBuilder()
+            .setCapability("(http://tail-f.com/yang/common?revision=2015-03-19)tailf-cli-extensions").build();
+        private static final AvailableCapability TAILF_META_EXTENSION = new AvailableCapabilityBuilder()
+            .setCapability("(http://tail-f.com/yang/common?revision=2013-11-07)tailf-meta-extensions").build();
+        private static final AvailableCapability IETF_YANG_TYPES = new AvailableCapabilityBuilder()
+            .setCapability("(urn:ietf:params:xml:ns:yang:ietf-yang-types?revision=2013-07-15)ietf-yang-types").build();
+        private static final AvailableCapability IETF_INET_TYPES = new AvailableCapabilityBuilder()
+            .setCapability("(urn:ietf:params:xml:ns:yang:ietf-inet-types?revision=2013-07-15)ietf-inet-types").build();
 
         /**
          * Initialize all common capabilities required by IOS-XE renderer. Any connected node is examined whether it's
@@ -331,8 +342,8 @@ public class NodeManager {
          *
          * @return list of string representations of required capabilities
          */
-        List<String> initializeRequiredCapabilities() {
-            final String capabilityEntries[] = {NED, TAILF_COMMON, TAILF_CLI_EXTENSION, TAILF_META_EXTENSION,
+        List<AvailableCapability> initializeRequiredCapabilities() {
+            final AvailableCapability capabilityEntries[] = {NED, TAILF_COMMON, TAILF_CLI_EXTENSION, TAILF_META_EXTENSION,
                     IETF_YANG_TYPES, IETF_INET_TYPES};
             return Arrays.asList(capabilityEntries);
         }
index 3b026b7c04e1d682b6bf31d6cc666e8ac2378e83..21ff7f149aef69b53ec42ddd5cf3b8e744606a14 100644 (file)
@@ -18,13 +18,13 @@ import static org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topolog
 import static org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus.Connecting;
 import static org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus.UnableToConnect;
 
-import javax.annotation.Nonnull;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
+
+import javax.annotation.Nonnull;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
@@ -46,6 +46,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev15
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.AvailableCapabilities;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.AvailableCapabilitiesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapabilityBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
@@ -56,6 +58,9 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
+import com.google.common.base.Optional;
+import com.google.common.util.concurrent.CheckedFuture;
+
 
 public class NodeManagerTest extends CustomDataBrokerTest {
 
@@ -336,23 +341,41 @@ public class NodeManagerTest extends CustomDataBrokerTest {
     }
 
     private AvailableCapabilities partialCapabilities() {
-        final String c1 = "(urn:ios?revision=2016-03-08)ned";
-        final String c2 = "(http://tail-f.com/yang/common?revision=2015-05-22)tailf-common";
-        final String c3 = "(http://tail-f.com/yang/common?revision=2015-03-19)tailf-cli-extensions";
-        String[] capabilityList = {c1, c2, c3};
+        final AvailableCapability c1 = new AvailableCapabilityBuilder()
+                .setCapability("(urn:ios?revision=2016-03-08)ned")
+                .build();
+        final AvailableCapability c2 = new AvailableCapabilityBuilder()
+                .setCapability("(http://tail-f.com/yang/common?revision=2015-05-22)tailf-common")
+                .build();
+        final AvailableCapability c3 = new AvailableCapabilityBuilder()
+                .setCapability("(http://tail-f.com/yang/common?revision=2015-03-19)tailf-cli-extensions")
+                .build();
+        AvailableCapability[] capabilityList = {c1, c2, c3};
         AvailableCapabilitiesBuilder availableCapabilitiesBuilder = new AvailableCapabilitiesBuilder();
         availableCapabilitiesBuilder.setAvailableCapability(Arrays.asList(capabilityList));
         return availableCapabilitiesBuilder.build();
     }
 
     private AvailableCapabilities fullCapabilities() {
-        final String c1 = "(urn:ios?revision=2016-03-08)ned";
-        final String c2 = "(http://tail-f.com/yang/common?revision=2015-05-22)tailf-common";
-        final String c3 = "(http://tail-f.com/yang/common?revision=2015-03-19)tailf-cli-extensions";
-        final String c4 = "(http://tail-f.com/yang/common?revision=2013-11-07)tailf-meta-extensions";
-        final String c5 = "(urn:ietf:params:xml:ns:yang:ietf-yang-types?revision=2013-07-15)ietf-yang-types";
-        final String c6 = "(urn:ietf:params:xml:ns:yang:ietf-inet-types?revision=2013-07-15)ietf-inet-types";
-        String[] capabilityList = {c1, c2, c3, c4, c5, c6};
+        final AvailableCapability c1 = new AvailableCapabilityBuilder()
+                .setCapability("(urn:ios?revision=2016-03-08)ned")
+                .build();
+        final AvailableCapability c2 = new AvailableCapabilityBuilder()
+                .setCapability("(http://tail-f.com/yang/common?revision=2015-05-22)tailf-common")
+                .build();
+        final AvailableCapability c3 = new AvailableCapabilityBuilder()
+                .setCapability("(http://tail-f.com/yang/common?revision=2015-03-19)tailf-cli-extensions")
+                .build();
+        final AvailableCapability c4 = new AvailableCapabilityBuilder()
+                .setCapability("(http://tail-f.com/yang/common?revision=2013-11-07)tailf-meta-extensions")
+                .build();
+        final AvailableCapability c5 = new AvailableCapabilityBuilder()
+                .setCapability("(urn:ietf:params:xml:ns:yang:ietf-yang-types?revision=2013-07-15)ietf-yang-types")
+                .build();
+        final AvailableCapability c6 = new AvailableCapabilityBuilder()
+                .setCapability("(urn:ietf:params:xml:ns:yang:ietf-inet-types?revision=2013-07-15)ietf-inet-types")
+                .build();
+        AvailableCapability[] capabilityList = {c1, c2, c3, c4, c5, c6};
         AvailableCapabilitiesBuilder availableCapabilitiesBuilder = new AvailableCapabilitiesBuilder();
         availableCapabilitiesBuilder.setAvailableCapability(Arrays.asList(capabilityList));
         return availableCapabilitiesBuilder.build();
index 8b19e7af416b6c7998d78b65c2a4f96e1db6c9f9..256b96615fbc01a4cf72817fa5919e1b9631e212 100644 (file)
@@ -26,6 +26,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.nodes.RendererNodeKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapabilityBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
@@ -45,13 +47,14 @@ public class VppNodeManager {
     private static final TopologyId TOPOLOGY_ID = new TopologyId("topology-netconf");
     private static final Logger LOG = LoggerFactory.getLogger(VppNodeManager.class);
     private static final Map<InstanceIdentifier<Node>, DataBroker> netconfNodeCache = new HashMap<>();
-    private static final String V3PO_CAPABILITY = "(urn:opendaylight:params:xml:ns:yang:v3po?revision=2016-12-14)v3po";
-    private static final String INTERFACES_CAPABILITY =
-            "(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2014-05-08)ietf-interfaces";
+    private static final AvailableCapability V3PO_CAPABILITY = new AvailableCapabilityBuilder()
+            .setCapability("(urn:opendaylight:params:xml:ns:yang:v3po?revision=2016-12-14)v3po").build();
+    private static final AvailableCapability INTERFACES_CAPABILITY = new AvailableCapabilityBuilder()
+            .setCapability("(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2014-05-08)ietf-interfaces").build();
     private static final NodeId CONTROLLER_CONFIG_NODE = new NodeId("controller-config");
     private final DataBroker dataBroker;
     private final MountPointService mountService;
-    private final List<String> requiredCapabilities;
+    private final List<AvailableCapability> requiredCapabilities;
 
     public VppNodeManager(DataBroker dataBroker, BindingAwareBroker.ProviderContext session) {
         this.dataBroker = Preconditions.checkNotNull(dataBroker);
@@ -184,8 +187,8 @@ public class VppNodeManager {
         return true;
     }
 
-    private boolean capabilityCheck(final List<String> capabilities) {
-        for (String requiredCapability : requiredCapabilities) {
+    private boolean capabilityCheck(final List<AvailableCapability> capabilities) {
+        for (AvailableCapability requiredCapability : requiredCapabilities) {
             if (!capabilities.contains(requiredCapability)) {
                 return false;
             }
@@ -230,10 +233,10 @@ public class VppNodeManager {
      *
      * @return list of string representations of required capabilities
      */
-    private List<String> initializeRequiredCapabilities() {
+    private List<AvailableCapability> initializeRequiredCapabilities() {
         // Required device capabilities
 
-        String[] capabilityEntries = {V3PO_CAPABILITY, INTERFACES_CAPABILITY};
+        AvailableCapability[] capabilityEntries = {V3PO_CAPABILITY, INTERFACES_CAPABILITY};
         return Arrays.asList(capabilityEntries);
     }
 
index 167ca9ba6915ec7ab8136ac1cce949020461f8be..48eb9e810d5d34299de6b04c9a8bea8c1be700bd 100644 (file)
@@ -42,6 +42,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev15
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.AvailableCapabilitiesBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.UnavailableCapabilitiesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapabilityBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
@@ -96,9 +98,9 @@ public class VppManagerDataStoreTest extends VppRendererDataBrokerTest {
         Host host = new Host(new IpAddress(new Ipv4Address("192.168.255.101")));
         PortNumber portNumber = new PortNumber(2830);
 
-        List<String> avaibleCapabilitiesList = new ArrayList<>();
-        avaibleCapabilitiesList.add(V3PO_CAPABILITY);
-        avaibleCapabilitiesList.add(INTERFACES_CAPABILITY);
+        List<AvailableCapability> avaibleCapabilitiesList = new ArrayList<>();
+        avaibleCapabilitiesList.add(new AvailableCapabilityBuilder().setCapability(V3PO_CAPABILITY).build());
+        avaibleCapabilitiesList.add(new AvailableCapabilityBuilder().setCapability(INTERFACES_CAPABILITY).build());
 
         NetconfNode netconfNode = new NetconfNodeBuilder().setHost(host)
             .setPort(portNumber)
@@ -112,13 +114,13 @@ public class VppManagerDataStoreTest extends VppRendererDataBrokerTest {
     }
 
     @Test
-    public void connectNode() throws ReadFailedException {
+    public void connectNode() throws Exception {
         WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
         Node testVppNode = createNode(NODE_NAME, NetconfNodeConnectionStatus.ConnectionStatus.Connected);
 
         writeTransaction.put(LogicalDatastoreType.OPERATIONAL, NODE_IID, testVppNode, true);
 
-        writeTransaction.submit();
+        writeTransaction.submit().get();
 
         ReadOnlyTransaction readOnlyTransaction = dataBroker.newReadOnlyTransaction();
         CheckedFuture<Optional<Renderer>, ReadFailedException> future =
@@ -132,13 +134,13 @@ public class VppManagerDataStoreTest extends VppRendererDataBrokerTest {
     }
 
     @Test
-    public void disconnectNode() throws ReadFailedException, InterruptedException {
+    public void disconnectNode() throws Exception {
         WriteTransaction writeTransaction = dataBroker.newWriteOnlyTransaction();
         Node testVppNode = createNode(NODE_NAME, NetconfNodeConnectionStatus.ConnectionStatus.Connected);
 
         writeTransaction.put(LogicalDatastoreType.OPERATIONAL, NODE_IID, testVppNode, true);
 
-        writeTransaction.submit();
+        writeTransaction.submit().get();
 
         ReadOnlyTransaction readOnlyTransaction = dataBroker.newReadOnlyTransaction();
         CheckedFuture<Optional<Renderer>, ReadFailedException> future =