Remove netconf-node-inventory 47/73947/5
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 11 Jul 2018 15:43:29 +0000 (17:43 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 11 Jul 2018 22:18:12 +0000 (00:18 +0200)
This model is not used anywhere, remove it and simplify RemoteDeviceId
so that it is purely topology-based.

Change-Id: Ia4d6738ceab8c1ed9864dd0f6277ea462377e584
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
features/netconf-connector/odl-netconf-connector/pom.xml
netconf/sal-netconf-connector/pom.xml
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/RemoteDeviceId.java
netconf/sal-netconf-connector/src/main/yang/netconf-node-inventory.yang [deleted file]

index cfa1193f7dd5e4341359c0433a1bb616611ce3cb..ece4fc115326cccd8f8794445538aab98625e693 100644 (file)
             <type>xml</type>
             <classifier>features</classifier>
         </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>odl-mdsal-model-inventory</artifactId>
-            <version>1.8.0-SNAPSHOT</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
         <dependency>
             <groupId>com.google.code.gson</groupId>
             <artifactId>gson</artifactId>
index 795a743c597b7a8054b424f7783cc67b88b18785..05e5ab23ffa5af193132aa69b842e7585277a5d7 100644 (file)
       <groupId>org.opendaylight.mdsal</groupId>
       <artifactId>mdsal-binding-generator-impl</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.model</groupId>
-      <artifactId>model-inventory</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.mdsal.model</groupId>
       <artifactId>ietf-topology</artifactId>
       <groupId>org.opendaylight.mdsal.model</groupId>
       <artifactId>ietf-inet-types-2013-07-15</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal.model</groupId>
+      <artifactId>yang-ext</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
index 793e6786d38703a69d3e433d9cbd2a2f5a1a2119..bc30126a528ac5139ebff66acc51905c759fbec5 100644 (file)
@@ -9,41 +9,48 @@ package org.opendaylight.netconf.sal.connect.util;
 
 import com.google.common.base.Preconditions;
 import java.net.InetSocketAddress;
+import java.util.Objects;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.HostBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.network.topology.topology.topology.types.TopologyNetconf;
 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;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
+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 org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 
 public final class RemoteDeviceId {
+    private static final String DEFAULT_TOPOLOGY_NAME = TopologyNetconf.QNAME.getLocalName();
+    private static final KeyedInstanceIdentifier<Topology, TopologyKey> DEFAULT_TOPOLOGY_IID =
+            InstanceIdentifier.create(NetworkTopology.class)
+            .child(Topology.class, new TopologyKey(new TopologyId(DEFAULT_TOPOLOGY_NAME)));
+    private static final YangInstanceIdentifier DEFAULT_TOPOLOGY_NODE = YangInstanceIdentifier.builder()
+            .node(NetworkTopology.QNAME).node(Topology.QNAME)
+            .nodeWithKey(Topology.QNAME, QName.create(Topology.QNAME, "topology-id"), DEFAULT_TOPOLOGY_NAME)
+            .node(Node.QNAME)
+            .build();
+    private static final QName NODE_ID_QNAME = QName.create(Node.QNAME, "node-id").intern();
 
     private final String name;
-    private final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path;
-    private final InstanceIdentifier<Node> bindingPath;
     private final NodeKey key;
-    private final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier topologyPath;
-    private final InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang
-            .network.topology.rev131021.network.topology.topology.Node> topologyBindingPath;
+    private final YangInstanceIdentifier topologyPath;
+    private final KeyedInstanceIdentifier<Node, NodeKey> topologyBindingPath;
     private InetSocketAddress address;
     private Host host;
 
     private RemoteDeviceId(final String name) {
         this.name = Preconditions.checkNotNull(name);
+        this.topologyPath = DEFAULT_TOPOLOGY_NODE
+                .node(new NodeIdentifierWithPredicates(Node.QNAME, NODE_ID_QNAME, name));
         this.key = new NodeKey(new NodeId(name));
-        this.path = createBIPath(name);
-        this.bindingPath = createBindingPath(key);
-        this.topologyPath = createBIPathForTopology(name);
-        this.topologyBindingPath = createBindingPathForTopology(key);
+        this.topologyBindingPath = DEFAULT_TOPOLOGY_IID.child(Node.class, key);
     }
 
     public RemoteDeviceId(final String name, InetSocketAddress address) {
@@ -52,51 +59,6 @@ public final class RemoteDeviceId {
         this.host = buildHost();
     }
 
-    private static InstanceIdentifier<Node> createBindingPath(final NodeKey key) {
-        return InstanceIdentifier.builder(Nodes.class).child(Node.class, key).build();
-    }
-
-    private static org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier createBIPath(final String name) {
-        final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder builder =
-                org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.builder();
-        builder.node(Nodes.QNAME).node(Node.QNAME)
-                .nodeWithKey(Node.QNAME, QName.create(Node.QNAME.getNamespace(), Node.QNAME.getRevision(), "id"), name);
-
-        return builder.build();
-    }
-
-    private static InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network
-            .topology.rev131021.network.topology.topology.Node> createBindingPathForTopology(final NodeKey key) {
-        final InstanceIdentifier<NetworkTopology> networkTopology =
-                InstanceIdentifier.builder(NetworkTopology.class).build();
-        final KeyedInstanceIdentifier<Topology, TopologyKey> topology = networkTopology
-                .child(Topology.class, new TopologyKey(new TopologyId(TopologyNetconf.QNAME.getLocalName())));
-        return topology
-                .child(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang
-                        .network.topology.rev131021.network.topology.topology.Node.class,
-                        new org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network
-                                .topology.topology.NodeKey(new org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang
-                                .network.topology.rev131021.NodeId(key.getId().getValue())));
-    }
-
-    private static org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier createBIPathForTopology(
-            final String name) {
-        final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.InstanceIdentifierBuilder builder =
-                org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.builder();
-        builder
-                .node(NetworkTopology.QNAME)
-                .node(Topology.QNAME)
-                .nodeWithKey(Topology.QNAME, QName.create(Topology.QNAME, "topology-id"),
-                        TopologyNetconf.QNAME.getLocalName())
-                .node(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang
-                        .network.topology.rev131021.network.topology.topology.Node.QNAME)
-                .nodeWithKey(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang
-                        .network.topology.rev131021.network.topology.topology.Node.QNAME,
-                        QName.create(org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang
-                                .network.topology.rev131021.network.topology.topology.Node.QNAME, "node-id"), name);
-        return builder.build();
-    }
-
     private Host buildHost() {
         return HostBuilder.getDefaultInstance(address.getHostString());
     }
@@ -105,20 +67,11 @@ public final class RemoteDeviceId {
         return name;
     }
 
-    public InstanceIdentifier<Node> getBindingPath() {
-        return bindingPath;
-    }
-
-    public org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier getPath() {
-        return path;
-    }
-
     public NodeKey getBindingKey() {
         return key;
     }
 
-    public InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang
-            .network.topology.rev131021.network.topology.topology.Node> getTopologyBindingPath() {
+    public InstanceIdentifier<Node> getTopologyBindingPath() {
         return topologyBindingPath;
     }
 
@@ -147,19 +100,12 @@ public final class RemoteDeviceId {
         if (!(obj instanceof RemoteDeviceId)) {
             return false;
         }
-
         final RemoteDeviceId that = (RemoteDeviceId) obj;
-
-        if (!name.equals(that.name)) {
-            return false;
-        }
-        return bindingPath.equals(that.bindingPath);
+        return name.equals(that.name) && topologyBindingPath.equals(that.topologyBindingPath);
     }
 
     @Override
     public int hashCode() {
-        int result = name.hashCode();
-        result = 31 * result + bindingPath.hashCode();
-        return result;
+        return Objects.hash(name, topologyBindingPath);
     }
 }
diff --git a/netconf/sal-netconf-connector/src/main/yang/netconf-node-inventory.yang b/netconf/sal-netconf-connector/src/main/yang/netconf-node-inventory.yang
deleted file mode 100644 (file)
index 45fbd42..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-module netconf-node-inventory {
-    namespace "urn:opendaylight:netconf-node-inventory";
-    prefix "netinv";
-
-    import opendaylight-inventory { prefix inv; revision-date "2013-08-19";}
-    import yang-ext {prefix ext; revision-date "2013-07-09";}
-
-    revision "2014-01-08" {
-        description "Initial revision of Inventory model";
-    }
-
-    grouping netconf-node-fields {
-        status deprecated;
-        leaf connected {
-            type boolean;
-        }
-
-        leaf-list initial-capability {
-            type string;
-        }
-
-        leaf-list current-capability {
-            type string;
-        }
-
-        container pass-through {
-            when "../connected = true";
-            description
-                "When the underlying node is connected, its NETCONF context
-                is available verbatim under this container through the
-                mount extension.";
-        }
-    }
-
-    augment /inv:nodes/inv:node {
-        ext:augment-identifier "netconf-node";
-        status deprecated;
-        uses netconf-node-fields;
-    }
-}