From: Robert Varga Date: Wed, 11 Jul 2018 15:43:29 +0000 (+0200) Subject: Remove netconf-node-inventory X-Git-Tag: release/fluorine~25^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=541bb3147f33b16f7d3c744c53185e64325dfa40;p=netconf.git Remove netconf-node-inventory 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 --- diff --git a/features/netconf-connector/odl-netconf-connector/pom.xml b/features/netconf-connector/odl-netconf-connector/pom.xml index cfa1193f7d..ece4fc1153 100644 --- a/features/netconf-connector/odl-netconf-connector/pom.xml +++ b/features/netconf-connector/odl-netconf-connector/pom.xml @@ -64,13 +64,6 @@ xml features - - org.opendaylight.controller - odl-mdsal-model-inventory - 1.8.0-SNAPSHOT - xml - features - com.google.code.gson gson diff --git a/netconf/sal-netconf-connector/pom.xml b/netconf/sal-netconf-connector/pom.xml index 795a743c59..05e5ab23ff 100644 --- a/netconf/sal-netconf-connector/pom.xml +++ b/netconf/sal-netconf-connector/pom.xml @@ -59,10 +59,6 @@ org.opendaylight.mdsal mdsal-binding-generator-impl - - org.opendaylight.controller.model - model-inventory - org.opendaylight.mdsal.model ietf-topology @@ -99,6 +95,10 @@ org.opendaylight.mdsal.model ietf-inet-types-2013-07-15 + + org.opendaylight.mdsal.model + yang-ext + org.slf4j slf4j-api diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/RemoteDeviceId.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/RemoteDeviceId.java index 793e6786d3..bc30126a52 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/RemoteDeviceId.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/RemoteDeviceId.java @@ -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 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 bindingPath; private final NodeKey key; - private final org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier topologyPath; - private final InstanceIdentifier topologyBindingPath; + private final YangInstanceIdentifier topologyPath; + private final KeyedInstanceIdentifier 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 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 createBindingPathForTopology(final NodeKey key) { - final InstanceIdentifier networkTopology = - InstanceIdentifier.builder(NetworkTopology.class).build(); - final KeyedInstanceIdentifier 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 getBindingPath() { - return bindingPath; - } - - public org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier getPath() { - return path; - } - public NodeKey getBindingKey() { return key; } - public InstanceIdentifier getTopologyBindingPath() { + public InstanceIdentifier 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 index 45fbd42d8a..0000000000 --- a/netconf/sal-netconf-connector/src/main/yang/netconf-node-inventory.yang +++ /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; - } -}