Split out odl-netconf-device.yang 46/103746/4
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 25 Dec 2022 22:57:48 +0000 (23:57 +0100)
committerRobert Varga <nite@hq.sk>
Thu, 29 Dec 2022 21:39:00 +0000 (21:39 +0000)
We have a ton of configuration details tied directly to
ietf-network-topology. We want these constructs to be reusable, so that
the equivalent can be modeled in contexts.

This patch splits out the groupings into their own module, allowing them
to be reused.

JIRA: NETCONF-922
Change-Id: Idc8d6bed4f58137b75d2b4f798d972545274144f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
41 files changed:
netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeMountSessionContext.java
netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallhomeStatusReporter.java
netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/ContextKey.java
netconf/callhome-provider/src/test/java/org/opendaylight/netconf/callhome/mount/ContextKeyTest.java
netconf/netconf-console/src/main/java/org/opendaylight/netconf/console/api/NetconfCommands.java
netconf/netconf-console/src/main/java/org/opendaylight/netconf/console/commands/NetconfConnectDeviceCommand.java
netconf/netconf-console/src/main/java/org/opendaylight/netconf/console/impl/NetconfCommandsImpl.java
netconf/netconf-console/src/main/java/org/opendaylight/netconf/console/utils/NetconfConsoleUtils.java
netconf/netconf-console/src/main/java/org/opendaylight/netconf/console/utils/NetconfIidFactory.java
netconf/netconf-console/src/test/java/org/opendaylight/netconf/console/impl/NetconfCommandsImplTest.java
netconf/netconf-topology-impl/src/main/java/org/opendaylight/netconf/topology/impl/NetconfConnectorFactoryImpl.java
netconf/netconf-topology-impl/src/main/java/org/opendaylight/netconf/topology/impl/NetconfTopologyImpl.java
netconf/netconf-topology-impl/src/test/java/org/opendaylight/netconf/topology/impl/NetconfTopologyImplTest.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeManager.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/NetconfTopologyContext.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/NetconfTopologyManager.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImpl.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfNodeManagerTest.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/NetconfTopologyManagerTest.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/RemoteDeviceConnectorImplTest.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/TestingRemoteDeviceConnectorImpl.java
netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/api/NetconfConnectorFactory.java
netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/AbstractNetconfTopology.java
netconf/netconf-topology/src/main/java/org/opendaylight/netconf/topology/spi/NetconfNodeUtils.java
netconf/netconf-topology/src/test/java/org/opendaylight/netconf/topology/spi/NetconfNodeUtilsTest.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/listener/NetconfDeviceCapabilities.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/listener/NetconfSessionPreferences.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceTopologyAdapter.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/NetconfTopologyRPCProvider.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/RemoteDeviceId.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/util/SslHandlerFactoryImpl.java
netconf/sal-netconf-connector/src/main/yang/netconf-node-topology.yang
netconf/sal-netconf-connector/src/main/yang/odl-netconf-device.yang [new file with mode: 0644]
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeficeTopologyAdapterIntegrationTest.java
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalFacadeTest.java
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/util/NetconfTopologyRPCProviderTest.java
netconf/tools/netconf-test-perf/src/main/java/org/opendaylight/test/endtoend/NcmountServiceImpl.java
netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/PayloadCreator.java

index 69ab5cd533e73ad3b5641752730032abd3454445..f12a6ce4bffd095260de0ea3bb69a265942bc2e7 100644 (file)
@@ -18,10 +18,10 @@ import org.opendaylight.netconf.callhome.protocol.CallHomeProtocolSessionContext
 import org.opendaylight.netconf.client.NetconfClientSession;
 import org.opendaylight.netconf.client.NetconfClientSessionListener;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Host;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.Protocol;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.ProtocolBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.Protocol.Name;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.ProtocolBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
 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.network.topology.topology.Node;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
@@ -83,7 +83,8 @@ class CallHomeMountSessionContext {
                         .setPort(key.getPort())
                         .setTcpOnly(false)
                         .setProtocol(new ProtocolBuilder()
-                                .setName(Protocol.Name.valueOf(protocol.getTransportType().name()))
+                                // FIXME: not .name() but an explicit contract
+                                .setName(Name.valueOf(protocol.getTransportType().name()))
                                 .build())
                         .setSchemaless(false)
                         .setReconnectOnChangedSchema(false)
index b3ca407ef238b68e8982627cad0953fddf86c584..22d664d130d6a4141375bfed12d0e431a69b1bc7 100644 (file)
@@ -30,9 +30,8 @@ import org.opendaylight.netconf.callhome.protocol.StatusRecorder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.callhome.device.status.rev170112.Device1;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.callhome.device.status.rev170112.Device1.DeviceStatus;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.callhome.device.status.rev170112.Device1Builder;
-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.network.topology.topology.topology.types.TopologyNetconf;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.network.topology.topology.topology.types.TopologyNetconf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.NetconfCallhomeServer;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.netconf.callhome.server.AllowedDevices;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.netconf.callhome.server.rev201015.netconf.callhome.server.allowed.devices.Device;
@@ -66,8 +65,8 @@ final class CallhomeStatusReporter implements DataTreeChangeListener<Node>, Stat
     private final ListenerRegistration<CallhomeStatusReporter> reg;
 
     CallhomeStatusReporter(final DataBroker broker) {
-        this.dataBroker = broker;
-        this.reg = dataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
+        dataBroker = broker;
+        reg = dataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
             NETCONF_TOPO_IID.child(Node.class)), this);
     }
 
@@ -111,9 +110,7 @@ final class CallhomeStatusReporter implements DataTreeChangeListener<Node>, Stat
     }
 
     private void handledNetconfNode(final NodeId nodeId, final NetconfNode nnode) {
-        NetconfNodeConnectionStatus.ConnectionStatus csts = nnode.getConnectionStatus();
-
-        switch (csts) {
+        switch (nnode.getConnectionStatus()) {
             case Connected: {
                 handleConnectedNetconfNode(nodeId);
                 break;
index 2a08683d3b877c0cf40651c1e037da2cccec5ced..f6f21c67406b515a88067c5b0169ee89d450d8e3 100644 (file)
@@ -18,7 +18,7 @@ import java.net.SocketAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yangtools.yang.common.Uint16;
 
 class ContextKey {
index ca863ebd502318a2983db3fc363d8e93cb57c8a6..47253736369b9a9e009e1be7b8586fdaacddfed5 100644 (file)
@@ -25,7 +25,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yangtools.yang.common.Uint16;
 
 public class ContextKeyTest {
index f9b8ec5f3558ea76864663a1293a1ad04d6b6400..bebfed6d0f9bfa0bb6842f43f721c14f34ffc710 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.netconf.console.api;
 
 import java.util.List;
 import java.util.Map;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 
 public interface NetconfCommands {
 
index d1dc91877ed73ede79fec5e0b9eb4ea6879b59ae..b45d7cb8edb17a655e89bae219914fed81c6f811 100644 (file)
@@ -22,14 +22,13 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.Protocol.Name;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.ProtocolBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.protocol.specification.TlsCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.protocol.specification.TlsCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.protocol.specification.tls._case.TlsBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.Credentials;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.Protocol.Name;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.ProtocolBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.protocol.specification.TlsCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.protocol.specification.TlsCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.protocol.specification.tls._case.TlsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
 import org.opendaylight.yangtools.yang.common.Uint16;
 
 @Service
@@ -143,9 +142,10 @@ public class NetconfConnectDeviceCommand implements Action {
                 return "Empty Username:" + username + " or Password:" + password
                         + ". In TCP or SSH mode, you must provide valid username and password.";
             }
-            final Credentials credentials =
-                    new LoginPasswordBuilder().setPassword(password).setUsername(username).build();
-            netconfNodeBuilder.setCredentials(credentials);
+            netconfNodeBuilder.setCredentials(new LoginPasswordBuilder()
+                .setUsername(username)
+                .setPassword(password)
+                .build());
             if (!isTcpOnly) {
                 netconfNodeBuilder.setProtocol(new ProtocolBuilder().setName(Name.SSH).build());
             }
index d51c803cdf15c8828e2f2ed605b1956d406e1ff6..d013b5da8c64a39c66a3248f2c6a0951e261901c 100644 (file)
@@ -33,11 +33,11 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-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.NetconfNodeBuilder;
-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.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
 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.network.topology.Topology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
@@ -61,7 +61,7 @@ public class NetconfCommandsImpl implements NetconfCommands {
     @Inject
     @Activate
     public NetconfCommandsImpl(@Reference final DataBroker db) {
-        this.dataBroker = requireNonNull(db);
+        dataBroker = requireNonNull(db);
         LOG.debug("NetconfConsoleProviderImpl initialized");
     }
 
@@ -105,7 +105,7 @@ public class NetconfCommandsImpl implements NetconfCommands {
             attributes.put(NetconfConsoleConstants.NETCONF_PORT, List.of(netconfNode.getPort().getValue().toString()));
             attributes.put(NetconfConsoleConstants.STATUS, List.of(netconfNode.getConnectionStatus().name()));
             if (netconfNode.getConnectionStatus().equals(
-                NetconfNodeConnectionStatus.ConnectionStatus.Connected)) {
+                ConnectionStatus.Connected)) {
                 attributes.put(NetconfConsoleConstants.AVAILABLE_CAPABILITIES, netconfNode.getAvailableCapabilities()
                     .getAvailableCapability().stream()
                         .map(AvailableCapability::getCapability)
@@ -130,7 +130,7 @@ public class NetconfCommandsImpl implements NetconfCommands {
                 List.of(netconfNode.getHost().getIpAddress().getIpv4Address().getValue()));
             attributes.put(NetconfConsoleConstants.NETCONF_PORT, List.of(netconfNode.getPort().getValue().toString()));
             attributes.put(NetconfConsoleConstants.STATUS, List.of(netconfNode.getConnectionStatus().name()));
-            if (netconfNode.getConnectionStatus().equals(NetconfNodeConnectionStatus.ConnectionStatus.Connected)) {
+            if (netconfNode.getConnectionStatus() == ConnectionStatus.Connected) {
                 attributes.put(NetconfConsoleConstants.AVAILABLE_CAPABILITIES, netconfNode.getAvailableCapabilities()
                     .getAvailableCapability().stream()
                         .map(AvailableCapability::getCapability).collect(Collectors.toList()));
@@ -227,8 +227,8 @@ public class NetconfCommandsImpl implements NetconfCommands {
                         .setTcpOnly(tcpOnly)
                         .setSchemaless(isSchemaless)
                         .setCredentials(new LoginPasswordBuilder()
-                            .setPassword(newPassword)
                             .setUsername(newUsername)
+                            .setPassword(newPassword)
                             .build())
                         .build())
                     .build();
index 7304f5cd7839bf79d3cc90d46a17086272d3814e..ba2eafe45f7cb2120f7c5a12ff3049ba57e26e0d 100644 (file)
@@ -15,7 +15,7 @@ import java.util.concurrent.ExecutionException;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.ReadTransaction;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 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.topology.Node;
 import org.opendaylight.yangtools.yang.binding.DataObject;
index 85415c02b7603bce298fbc75e026479b2f04fcb5..fff596d3ed4aa6b4c41156cd7de5c1c60fe5d086 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.netconf.console.utils;
 
-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.opendaylight.netconf.node.topology.rev221225.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;
index 6ace0f7216e2e0f7b565d66822dc7e4ff3e07ca2..b6825bc056db0ddd231cc57c20d4de211cba05c1 100644 (file)
@@ -40,14 +40,14 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-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.NetconfNodeBuilder;
-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.opendaylight.netconf.node.topology.rev150114.network.topology.topology.topology.types.TopologyNetconf;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.AvailableCapabilities;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.AvailableCapabilitiesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.network.topology.topology.topology.types.TopologyNetconf;
 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;
@@ -55,16 +55,13 @@ 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.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.NodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
 import org.opendaylight.yangtools.yang.common.Uint16;
 
 public class NetconfCommandsImplTest {
-
     private static final String NODE_ID = "NodeID";
     private static final String IP = "192.168.1.1";
     private static final int PORT = 1234;
-    private static final NetconfNodeConnectionStatus.ConnectionStatus CONN_STATUS =
-            NetconfNodeConnectionStatus.ConnectionStatus.Connected;
+    private static final ConnectionStatus CONN_STATUS = ConnectionStatus.Connected;
     private static final String CAP_PREFIX = "prefix";
 
     private static BindingRuntimeContext RUNTIME_CONTEXT;
@@ -217,7 +214,7 @@ public class NetconfCommandsImplTest {
     }
 
     private static Node getNetconfNode(final String nodeIdent, final String ip, final int portNumber,
-            final NetconfNodeConnectionStatus.ConnectionStatus cs, final String notificationCapabilityPrefix) {
+            final ConnectionStatus cs, final String notificationCapabilityPrefix) {
 
         final Host host = new Host(new IpAddress(new Ipv4Address(ip)));
         final PortNumber port = new PortNumber(Uint16.valueOf(portNumber));
@@ -229,11 +226,8 @@ public class NetconfCommandsImplTest {
         final AvailableCapabilities avCaps =
                 new AvailableCapabilitiesBuilder().setAvailableCapability(avCapList).build();
 
-        final NodeId nodeId = new NodeId(nodeIdent);
-        final NodeKey nk = new NodeKey(nodeId);
         return new NodeBuilder()
-                .withKey(nk)
-                .setNodeId(nodeId)
+                .setNodeId(new NodeId(nodeIdent))
                 .addAugmentation(new NetconfNodeBuilder()
                     .setConnectionStatus(cs).setHost(host).setPort(port).setAvailableCapabilities(avCaps).build())
                 .build();
index 958437d7fbb6cd00cac4ed8fb3acea579608b481..d4737bb045cc42653452729736385532354783f6 100644 (file)
@@ -20,9 +20,9 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPwBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.login.pw.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPwBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.login.pw.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
 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;
index d982b338b3a349448c1a3e240d5b07811ac371c2..99fdee6225fc9ef33bf583d096366e0510ecedec 100644 (file)
@@ -30,7 +30,7 @@ import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.BaseNetconfSc
 import org.opendaylight.netconf.sal.connect.util.NetconfTopologyRPCProvider;
 import org.opendaylight.netconf.topology.spi.AbstractNetconfTopology;
 import org.opendaylight.netconf.topology.spi.NetconfConnectorDTO;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeTopologyService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeTopologyService;
 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;
index 2b98eb8a63df20d223c94acfe05c0b75cf5f54ff..a7f1d1c20e7a0e3617bc771f39980fe0949b6f24 100644 (file)
@@ -53,10 +53,10 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.Protocol.Name;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.ProtocolBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.Protocol.Name;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.ProtocolBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
 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;
index f1836b3cb77fc941667d5b42e27cecc0fb8ac250..aa26fd2117a223feb4e5825083bfcc7e1699fade 100644 (file)
@@ -31,8 +31,8 @@ import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologyUti
 import org.opendaylight.netconf.topology.singleton.messages.AskForMasterMountPoint;
 import org.opendaylight.netconf.topology.singleton.messages.RefreshSlaveActor;
 import org.opendaylight.netconf.topology.singleton.messages.UnregisterSlaveMountPoint;
-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.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 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.network.topology.topology.Node;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
@@ -152,7 +152,7 @@ class NetconfNodeManager
         @SuppressWarnings("ConstantConditions")
         final NetconfNode netconfNodeAfter = rootNode.getDataAfter().augmentation(NetconfNode.class);
 
-        if (NetconfNodeConnectionStatus.ConnectionStatus.Connected.equals(netconfNodeAfter.getConnectionStatus())) {
+        if (ConnectionStatus.Connected == netconfNodeAfter.getConnectionStatus()) {
             lastUpdateCount++;
             createOrUpdateActorRef();
 
index 64da6cec64a84fce30db28f9b3896de6758dbb53..4c92f3c0e3655633f2f502244b53c202e5bb0655 100644 (file)
@@ -28,7 +28,7 @@ import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologySet
 import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologyUtils;
 import org.opendaylight.netconf.topology.singleton.messages.RefreshSetupMasterActorData;
 import org.opendaylight.netconf.topology.spi.NetconfNodeUtils;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
index c44fd3e9586662265b9ae923146a02c88afa4a93..dc8994659f2ac34f0b6e04b8bd7ff043eaace513 100644 (file)
@@ -51,8 +51,8 @@ import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologySet
 import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologySetup.NetconfTopologySetupBuilder;
 import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologyUtils;
 import org.opendaylight.netconf.topology.spi.NetconfNodeUtils;
-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.NetconfNodeTopologyService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeTopologyService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.topology.singleton.config.rev170419.Config;
 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;
index abe6221dd67aa8060f10f6759cb6f7de8dae509e..a3ab5490b9233ac171133c4a194bc003f5d076b8 100644 (file)
@@ -49,16 +49,13 @@ import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologyUti
 import org.opendaylight.netconf.topology.spi.NetconfConnectorDTO;
 import org.opendaylight.netconf.topology.spi.NetconfNodeUtils;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
-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.netconf.node.connection.parameters.OdlHelloMessageCapabilities;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.Protocol;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.Credentials;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.KeyAuth;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPw;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPwUnencrypted;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.key.auth.KeyBased;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.login.pw.LoginPassword;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.login.pw.unencrypted.LoginPasswordUnencrypted;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.OdlHelloMessageCapabilities;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.Protocol.Name;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.Credentials;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.KeyAuth;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPw;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPwUnencrypted;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yangtools.yang.common.Decimal64;
 import org.opendaylight.yangtools.yang.common.Empty;
@@ -245,16 +242,16 @@ public class RemoteDeviceConnectorImpl implements RemoteDeviceConnector {
 
 
         final NetconfReconnectingClientConfigurationBuilder reconnectingClientConfigurationBuilder;
-        final Protocol protocol = node.getProtocol();
+        final var protocol = node.getProtocol();
         if (isTcpOnly) {
             reconnectingClientConfigurationBuilder = NetconfReconnectingClientConfigurationBuilder.create()
                     .withProtocol(NetconfClientConfiguration.NetconfClientProtocol.TCP)
                     .withAuthHandler(getHandlerFromCredentials(node.getCredentials()));
-        } else if (protocol == null || protocol.getName() == Protocol.Name.SSH) {
+        } else if (protocol == null || protocol.getName() == Name.SSH) {
             reconnectingClientConfigurationBuilder = NetconfReconnectingClientConfigurationBuilder.create()
                     .withProtocol(NetconfClientConfiguration.NetconfClientProtocol.SSH)
                     .withAuthHandler(getHandlerFromCredentials(node.getCredentials()));
-        } else if (protocol.getName() == Protocol.Name.TLS) {
+        } else if (protocol.getName() == Name.TLS) {
             reconnectingClientConfigurationBuilder = NetconfReconnectingClientConfigurationBuilder.create()
                     .withSslHandlerFactory(new SslHandlerFactoryImpl(keystoreAdapter, protocol.getSpecification()))
                     .withProtocol(NetconfClientConfiguration.NetconfClientProtocol.TLS);
@@ -283,22 +280,21 @@ public class RemoteDeviceConnectorImpl implements RemoteDeviceConnector {
 
     private AuthenticationHandler getHandlerFromCredentials(final Credentials credentials) {
         if (credentials
-                instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node
+                instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225
                     .credentials.credentials.LoginPassword loginPassword) {
             return new LoginPasswordHandler(loginPassword.getUsername(), loginPassword.getPassword());
         }
-        if (credentials instanceof LoginPwUnencrypted) {
-            final LoginPasswordUnencrypted loginPassword =
-                    ((LoginPwUnencrypted) credentials).getLoginPasswordUnencrypted();
+        if (credentials instanceof LoginPwUnencrypted unencrypted) {
+            final var loginPassword = unencrypted.getLoginPasswordUnencrypted();
             return new LoginPasswordHandler(loginPassword.getUsername(), loginPassword.getPassword());
         }
-        if (credentials instanceof LoginPw) {
-            final LoginPassword loginPassword = ((LoginPw) credentials).getLoginPassword();
+        if (credentials instanceof LoginPw loginPw) {
+            final var loginPassword = loginPw.getLoginPassword();
             return new LoginPasswordHandler(loginPassword.getUsername(),
                     encryptionService.decrypt(loginPassword.getPassword()));
         }
-        if (credentials instanceof KeyAuth) {
-            final KeyBased keyPair = ((KeyAuth) credentials).getKeyBased();
+        if (credentials instanceof KeyAuth keyAuth) {
+            final var keyPair = keyAuth.getKeyBased();
             return new DatastoreBackedPublicKeyAuth(keyPair.getUsername(), keyPair.getKeyId(),
                     keystoreAdapter, encryptionService);
         }
index 7528e06079792cac026dab8c6538dcf363b17cc0..c6de36f416d28254404825f412b9abd34b82cc27 100644 (file)
@@ -115,13 +115,13 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPwUnencryptedBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.login.pw.unencrypted.LoginPasswordUnencryptedBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.keystore.rev171017.Keystore;
-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.NetconfNodeBuilder;
-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.credentials.credentials.LoginPwUnencryptedBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.login.pw.unencrypted.LoginPasswordUnencryptedBuilder;
-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.opendaylight.netconf.node.topology.rev221225.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.network.topology.topology.topology.types.TopologyNetconf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.topology.singleton.config.rev170419.Config;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.topology.singleton.config.rev170419.ConfigBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.test.list.rev140701.GetTopInput;
@@ -509,7 +509,7 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest {
                         NODE_INSTANCE_ID).get(5, TimeUnit.SECONDS);
                 assertTrue(node.isPresent());
                 final NetconfNode netconfNode = node.get().augmentation(NetconfNode.class);
-                return netconfNode.getConnectionStatus() != NetconfNodeConnectionStatus.ConnectionStatus.Connected;
+                return netconfNode.getConnectionStatus() != ConnectionStatus.Connected;
             }
         });
 
index 8a9c637e84138d75e0634b9b5b11d56d5b1fc67e..d49aadb427a2c7efdc50f1041dc93fd30191342e 100644 (file)
@@ -75,10 +75,10 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-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.NetconfNodeBuilder;
-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.ClusteredConnectionStatusBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.ClusteredConnectionStatusBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
 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.network.topology.topology.Node;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
@@ -281,7 +281,7 @@ public class NetconfNodeManagerTest extends AbstractBaseSchemasTest {
 
         final Node updatedNode = new NodeBuilder().setNodeId(nodeId)
                 .addAugmentation(new NetconfNodeBuilder(netconfNode)
-                    .setConnectionStatus(NetconfNodeConnectionStatus.ConnectionStatus.UnableToConnect)
+                    .setConnectionStatus(ConnectionStatus.UnableToConnect)
                     .build())
                 .build();
 
@@ -368,7 +368,7 @@ public class NetconfNodeManagerTest extends AbstractBaseSchemasTest {
         return new NetconfNodeBuilder()
                 .setHost(new Host(new IpAddress(new Ipv4Address("127.0.0.1"))))
                 .setPort(new PortNumber(Uint16.valueOf(9999)))
-                .setConnectionStatus(NetconfNodeConnectionStatus.ConnectionStatus.Connected)
+                .setConnectionStatus(ConnectionStatus.Connected)
                 .setClusteredConnectionStatus(new ClusteredConnectionStatusBuilder()
                         .setNetconfMasterNode(masterAddress).build())
                 .build();
index fa53d4616eaaa401d0874a34ef7a7b817aae427f..439d5a5f55cc1f6b55c732880354588de932ec82 100644 (file)
@@ -68,8 +68,8 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-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.NetconfNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.topology.singleton.config.rev170419.Config;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.topology.singleton.config.rev170419.ConfigBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
index d0157f9f559cb295755ce093e9b634e0fcd61227..5c67d39b4f26171aa1e7ee4c3ba6a4ea1a60b63b 100644 (file)
@@ -47,10 +47,10 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-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.NetconfNodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.Credentials;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.Credentials;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
 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.network.topology.topology.NodeBuilder;
 import org.opendaylight.yangtools.yang.common.Uint16;
@@ -130,9 +130,7 @@ public class RemoteDeviceConnectorImplTest extends AbstractBaseSchemasTest {
                 .setBetweenAttemptsTimeoutMillis(Uint16.valueOf(100))
                 .setSchemaless(false)
                 .setTcpOnly(false)
-                .setCredentials(new LoginPasswordBuilder()
-                    .setPassword("admin").setUsername("admin")
-                    .build())
+                .setCredentials(new LoginPasswordBuilder().setPassword("admin").setUsername("admin").build())
                 .build())
             .build());
 
index b1c0dc7ab13284013e3329924ecd3e8890d39c6d..32f8850958f65a7d1e8ec8e31d3a10a4694f4615 100644 (file)
@@ -17,7 +17,7 @@ import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommun
 import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
 import org.opendaylight.netconf.topology.singleton.impl.utils.NetconfTopologySetup;
 import org.opendaylight.netconf.topology.spi.NetconfConnectorDTO;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 
index 7a1560c91b756d1d969a941b36826d2ce7dee811..2f0fead844a71afdccdafcb9c6fcb1ee1a76bbcf 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.netconf.topology.api;
 
 import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 
 /**
index d95a32c9e0ad04f557823d9543ebd7b8194ee428..1b881c409e7af4f16a9ebf4310cb9ac38ad71731 100644 (file)
@@ -57,18 +57,13 @@ import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
 import org.opendaylight.netconf.sal.connect.util.SslHandlerFactoryImpl;
 import org.opendaylight.netconf.topology.api.NetconfTopology;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.Protocol.Name;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.Credentials;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.KeyAuth;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPw;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPwUnencrypted;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.optional.rev190614.NetconfNodeAugmentedOptional;
-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.netconf.node.connection.parameters.Protocol;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.Protocol.Name;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.Credentials;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.KeyAuth;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPw;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPwUnencrypted;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.key.auth.KeyBased;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.login.pw.LoginPassword;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.login.pw.unencrypted.LoginPasswordUnencrypted;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.schema.storage.YangLibrary;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 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;
@@ -276,7 +271,7 @@ public abstract class AbstractNetconfTopology implements NetconfTopology {
 
     private static List<SchemaSourceRegistration<?>> registerDeviceSchemaSources(final RemoteDeviceId remoteDeviceId,
             final NetconfNode node, final SchemaResourcesDTO resources) {
-        final YangLibrary yangLibrary = node.getYangLibrary();
+        final var yangLibrary = node.getYangLibrary();
         if (yangLibrary != null) {
             final Uri uri = yangLibrary.getYangLibraryUrl();
             if (uri != null) {
@@ -327,7 +322,7 @@ public abstract class AbstractNetconfTopology implements NetconfTopology {
                 node.requireMaxConnectionAttempts().toJava(), node.requireBetweenAttemptsTimeoutMillis().toJava(),
                 node.requireSleepFactor().decimalValue());
         final NetconfReconnectingClientConfigurationBuilder reconnectingClientConfigurationBuilder;
-        final Protocol protocol = node.getProtocol();
+        final var protocol = node.getProtocol();
         if (node.requireTcpOnly()) {
             reconnectingClientConfigurationBuilder = NetconfReconnectingClientConfigurationBuilder.create()
                     .withProtocol(NetconfClientConfiguration.NetconfClientProtocol.TCP)
@@ -361,22 +356,21 @@ public abstract class AbstractNetconfTopology implements NetconfTopology {
 
     private AuthenticationHandler getHandlerFromCredentials(final Credentials credentials) {
         if (credentials
-                instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology
-                    .rev150114.netconf.node.credentials.credentials.LoginPassword loginPassword) {
+                instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225
+                    .credentials.credentials.LoginPassword loginPassword) {
             return new LoginPasswordHandler(loginPassword.getUsername(), loginPassword.getPassword());
         }
-        if (credentials instanceof LoginPwUnencrypted) {
-            final LoginPasswordUnencrypted loginPassword =
-                    ((LoginPwUnencrypted) credentials).getLoginPasswordUnencrypted();
+        if (credentials instanceof LoginPwUnencrypted unencrypted) {
+            final var loginPassword = unencrypted.getLoginPasswordUnencrypted();
             return new LoginPasswordHandler(loginPassword.getUsername(), loginPassword.getPassword());
         }
-        if (credentials instanceof LoginPw) {
-            final LoginPassword loginPassword = ((LoginPw) credentials).getLoginPassword();
+        if (credentials instanceof LoginPw loginPw) {
+            final var loginPassword = loginPw.getLoginPassword();
             return new LoginPasswordHandler(loginPassword.getUsername(),
                     encryptionService.decrypt(loginPassword.getPassword()));
         }
-        if (credentials instanceof KeyAuth) {
-            final KeyBased keyPair = ((KeyAuth) credentials).getKeyBased();
+        if (credentials instanceof KeyAuth keyAuth) {
+            final var keyPair = keyAuth.getKeyBased();
             return new DatastoreBackedPublicKeyAuth(keyPair.getUsername(), keyPair.getKeyId(),
                     keystoreAdapter, encryptionService);
         }
index baa46a6c87bc6caccaed451e98108665309ff3ab..d4db8b057caebdfdae030d8255be252735fa5e1b 100644 (file)
@@ -15,8 +15,8 @@ import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPrefe
 import org.opendaylight.netconf.sal.connect.netconf.listener.UserPreferences;
 import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IetfInetUtil;
-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.netconf.node.connection.status.available.capabilities.AvailableCapability.CapabilityOrigin;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability.CapabilityOrigin;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 
 /**
index a779f690bf757b4f0b50829eb235be839dbb430d..78fe93091285ec8a8e87408d7e95f2636eebe9a2 100644 (file)
@@ -15,7 +15,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yangtools.yang.common.Uint16;
 
index 667ca04b883155a815d06b499504bbedbf6c1d73..92f7c12e0bdf2d1ccd0cdaa7058b70b15ba07337 100644 (file)
@@ -55,10 +55,10 @@ import org.opendaylight.netconf.sal.connect.netconf.schema.mapping.NetconfMessag
 import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil;
 import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.notifications.rev120206.NetconfCapabilityChange;
-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.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.unavailable.capabilities.UnavailableCapability;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.unavailable.capabilities.UnavailableCapability.FailureReason;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.unavailable.capabilities.UnavailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.unavailable.capabilities.UnavailableCapability.FailureReason;
 import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.rfc8528.data.api.MountPointContext;
 import org.opendaylight.yangtools.rfc8528.data.util.EmptyMountPointContext;
index 335525e77b407ef736288340c60a45ee796fc1f9..5223d0920e5a729a066eaf079e0441e41057357f 100644 (file)
@@ -12,8 +12,8 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import org.eclipse.jdt.annotation.NonNull;
-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.unavailable.capabilities.UnavailableCapability.FailureReason;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.unavailable.capabilities.UnavailableCapability.FailureReason;
 import org.opendaylight.yangtools.yang.common.QName;
 
 public record NetconfDeviceCapabilities(
index 1a0911287d03b5a900d92bc5a5e2ea06dd6ca0b1..4228f955ce3491c3a4cff37446e23cfd9b7a92f1 100644 (file)
@@ -23,7 +23,7 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.netconf.client.NetconfClientSession;
 import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability.CapabilityOrigin;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability.CapabilityOrigin;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.slf4j.Logger;
index 72a431ec465fed712371c5e8c84d3a46d9677ff1..9d7e3f3861ac40008643775a2e463903b61a6773 100644 (file)
@@ -25,14 +25,14 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCapabilities;
 import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-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.NetconfNodeBuilder;
-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.AvailableCapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.ClusteredConnectionStatusBuilder;
-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.unavailable.capabilities.UnavailableCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.AvailableCapabilitiesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.ClusteredConnectionStatusBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.UnavailableCapabilitiesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.unavailable.capabilities.UnavailableCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
 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.network.topology.topology.NodeBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
index 9162237ba838fcddc41148c058696b4e2fe30385..7f185d52351c8700659a284a758331c0e2dc1188 100644 (file)
@@ -20,20 +20,19 @@ import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.WriteTransaction;
 import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.CreateDeviceInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.CreateDeviceOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.CreateDeviceOutputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.DeleteDeviceInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.DeleteDeviceOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.DeleteDeviceOutputBuilder;
-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.NetconfNodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeTopologyService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.Credentials;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPw;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPwBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.login.pw.LoginPassword;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.login.pw.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.Credentials;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPw;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPwBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.login.pw.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.CreateDeviceInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.CreateDeviceOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.CreateDeviceOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.DeleteDeviceInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.DeleteDeviceOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.DeleteDeviceOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeTopologyService;
 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;
@@ -58,7 +57,7 @@ public class NetconfTopologyRPCProvider implements NetconfNodeTopologyService {
                                       final String topologyId) {
         this.dataBroker = requireNonNull(dataBroker);
         this.encryptionService = requireNonNull(encryptionService);
-        this.topologyPath = InstanceIdentifier.builder(NetworkTopology.class)
+        topologyPath = InstanceIdentifier.builder(NetworkTopology.class)
                 .child(Topology.class, new TopologyKey(new TopologyId(topologyId)))
                 .build();
     }
@@ -115,14 +114,15 @@ public class NetconfTopologyRPCProvider implements NetconfNodeTopologyService {
     }
 
     private Credentials handleEncryption(final Credentials credentials) {
-        if (credentials instanceof LoginPw) {
-            final LoginPassword loginPassword = ((LoginPw) credentials).getLoginPassword();
-            final String encryptedPassword =
-                    encryptionService.encrypt(loginPassword.getPassword());
-
-            return new LoginPwBuilder().setLoginPassword(new LoginPasswordBuilder()
-                    .setPassword(encryptedPassword)
-                    .setUsername(loginPassword.getUsername()).build()).build();
+        if (credentials instanceof LoginPw loginPw) {
+            final var loginPassword = loginPw.getLoginPassword();
+
+            return new LoginPwBuilder()
+                .setLoginPassword(new LoginPasswordBuilder()
+                    .setUsername(loginPassword.getUsername())
+                    .setPassword(encryptionService.encrypt(loginPassword.getPassword()))
+                    .build())
+                .build();
         }
 
         // nothing else needs to be encrypted
index ec544da992fc17e7312ba39bdad5a072b63677dd..8b40fc08f5020eede9941e994175bfc143ce53fb 100644 (file)
@@ -15,7 +15,7 @@ import java.util.Objects;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.DomainName;
 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.IetfInetUtil;
-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.opendaylight.netconf.node.topology.rev221225.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;
index 6165869eed50d6778befa6f59f6c387b9f1695b8..b91fc1b575bd7a7916d8a0038eb56febbc844379 100644 (file)
@@ -22,8 +22,8 @@ import javax.net.ssl.TrustManagerFactory;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.netconf.client.SslHandlerFactory;
 import org.opendaylight.netconf.sal.connect.netconf.sal.NetconfKeystoreAdapter;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.protocol.Specification;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.parameters.protocol.specification.TlsCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.protocol.Specification;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.parameters.protocol.specification.TlsCase;
 
 public final class SslHandlerFactoryImpl implements SslHandlerFactory {
     private final NetconfKeystoreAdapter keystoreAdapter;
index f94c3c85016b976baaa537d4f55009f0f66c1aa7..4614290a734f206a39fd1f8cac2d1a274625f036 100644 (file)
@@ -4,348 +4,27 @@ module netconf-node-topology {
 
     import network-topology { prefix nt; revision-date 2013-10-21; }
     import yang-ext { prefix ext; revision-date "2013-07-09";}
-    import ietf-inet-types { prefix inet; revision-date "2013-07-15"; }
     import netconf-node-optional { prefix nno; revision-date "2019-06-14"; }
+    import odl-netconf-device { prefix ond; }
 
-    revision "2015-01-14" {
-        description "Initial revision of Topology model";
-    }
-
-    augment "/nt:network-topology/nt:topology/nt:topology-types" {
-        container topology-netconf {
-            presence "The presence of the container node indicates a network
-                      of NETCONF devices";
-        }
-    }
-
-    grouping username-password {
-        leaf username {
-            type string;
-        }
-
-        leaf password {
-            type string;
-        }
-    }
-
-    grouping netconf-node-credentials {
-        choice credentials {
-            config true;
-            case login-password {
-                description "Deprecated way of storing credentials, unencrypted.";
-
-                status deprecated;
-                uses username-password;
-            }
-            case login-pw {
-                description "login-password credentials, encrypted.";
-
-                container login-password {
-                    uses username-password;
-                }
-            }
-            case login-pw-unencrypted {
-                description "login-password credentials, not encrypted.";
-
-                container login-password-unencrypted {
-                    uses username-password;
-                }
-            }
-            case key-auth {
-                description "key-based authentication, use the id for the pair thats stored in the keystore.";
-
-                container key-based {
-                    leaf key-id {
-                        type string;
-                    }
-
-                    leaf username {
-                        type string;
-                    }
-                }
-            }
-        }
-    }
-
-    grouping netconf-node-connection-parameters {
-
-        leaf host {
-            type inet:host;
-        }
-
-        leaf port {
-            type inet:port-number;
-        }
-
-        leaf tcp-only {
-            config true;
-            type boolean;
-            default false;
-        }
-
-        container protocol {
-            config true;
-            leaf name {
-                type enumeration {
-                    enum SSH;
-                    enum TLS;
-                }
-                default SSH;
-            }
-
-            choice specification {
-                case tls-case {
-                   container tls {
-                       leaf-list excluded-versions {
-                           type string;
-                           description "A list of TLS version names provided in JDK that are not supported by the
-                                        target netconf device, eg, the netopeer2 simulator does not support the
-                                        SSLv2Hello. Most of the time, this list need not be set";
-                       }
-                   }
-                }
-            }
-        }
-
-        leaf schemaless {
-            type boolean;
-            default false;
-        }
-
-        container yang-module-capabilities {
-            config true;
-            leaf override {
-                type boolean;
-                default false;
-                description "Whether to override or merge this list of capabilities with capabilities from device";
-            }
-
-            leaf-list capability {
-                type string;
-                description "Set a list of capabilities to override capabilities provided in device's hello message.
-                             Can be used for devices that do not report any yang modules in their hello message";
-            }
-        }
-
-        container non-module-capabilities {
-            config true;
-            leaf override {
-                type boolean;
-                default false;
-                description "Whether to override or merge this list of non-module based capabilities with non-module
-                             based capabilities from device";
-            }
-
-            leaf-list capability {
-                type string;
-                description "Set a list of non-module based capabilities to override or merge non-module capabilities
-                             provided in device's hello message. Can be used for devices that do not report or
-                             incorrectly report non-module based capabilities in their hello message";
-            }
-        }
-
-        leaf reconnect-on-changed-schema {
-            config true;
-            type boolean;
-            default false;
-            description "If true, the connector would auto disconnect/reconnect when schemas are changed in the remote device.
-                         The connector subscribes (right after connect) to base netconf notifications and listens for netconf-capability-change notification";
-        }
-
-        leaf connection-timeout-millis {
-            description "Specifies timeout in milliseconds after which connection must be established.";
-            config true;
-            type uint32;
-            default 20000;
-        }
-
-        leaf default-request-timeout-millis {
-            description "Timeout for blocking operations within transactions.";
-            config true;
-            type uint32;
-            default 60000;
-        }
-
-        leaf max-connection-attempts {
-            description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
-            config true;
-            type uint32;
-            default 0; // retry forever
-        }
-
-        leaf between-attempts-timeout-millis {
-            description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by sleep-factor with every additional attempt";
-            config true;
-            type uint16;
-            default 2000;
-        }
-
-        leaf sleep-factor {
-            config true;
-            type decimal64 {
-                fraction-digits 1;
-            }
-            default 1.5;
-        }
-
-        // Keepalive configuration
-        leaf keepalive-delay {
-            config true;
-            type uint32;
-            default 120;
-            description "Netconf connector sends keepalive RPCs while the session is idle, this delay specifies the delay between keepalive RPC in seconds
-                         If a value <1 is provided, no keepalives will be sent";
-        }
-
-        leaf concurrent-rpc-limit {
-            config true;
-            type uint16;
-            default 0;
-            description "Limit of concurrent messages that can be send before reply messages are received.
-                         If value <1 is provided, no limit will be enforced";
-        }
-
-        leaf actor-response-wait-time {
-                    config true;
-                    type uint16 {
-                      range "1..max";
-                    }
-                    default 5;
-                    description "Time that slave actor will wait for response from master.";
-        }
-
-        container odl-hello-message-capabilities {
-            config true;
-            leaf-list capability {
-                type inet:uri;
-                description "Certain devices are non-accepting of ODL's hello message.  This allows specification of
-                             a custom ODL hello message based on a list of supported capabilities.";
-            }
-        }
+    revision 2022-12-25 {
+        description "Refactored into odl-netconf-device";
     }
 
-    grouping netconf-node-connection-status {
-
-        leaf connection-status {
-            config false;
-            type enumeration {
-                enum connecting;
-                enum connected;
-                enum unable-to-connect;
-            }
-        }
-
-        container clustered-connection-status {
-            config false;
-            list node-status {
-                leaf node {
-                    type string;
-                }
-                leaf status {
-                    type enumeration {
-                        enum connected;
-                        enum unavailable;
-                        enum failed;
-                    }
-                }
-            }
-            leaf netconf-master-node {
-                config false;
-                type string;
-            }
-        }
-
-        leaf connected-message {
-            config false;
-            type string;
-        }
-
-        container available-capabilities {
-            config false;
-            list available-capability {
-                leaf capability {
-                    type string;
-                }
-                leaf capability-origin {
-                    type enumeration {
-                        enum user-defined;
-                        enum device-advertised;
-                    }
-                }
-            }
-        }
-
-        container unavailable-capabilities {
-            config false;
-            list unavailable-capability {
-                leaf capability {
-                    type string;
-                }
-
-                leaf failure-reason {
-                    type enumeration {
-                        enum missing-source;
-                        enum unable-to-resolve;
-                    }
-                }
-            }
-        }
-
-        container pass-through {
-            when "../connection-status = connected";
-            description
-                "When the underlying node is connected, its NETCONF context
-                is available verbatim under this container through the
-                mount extension.";
-        }
-
-    }
-
-    grouping netconf-schema-storage {
-        leaf schema-cache-directory {
-            config true;
-            type string;
-            default "schema";
-            description "The destination schema repository for yang files relative to the cache directory.  This may be specified per netconf mount
-                         so that the loaded yang files are stored to a distinct directory to avoid potential conflict.";
-        }
-
-        container yang-library {
-            leaf yang-library-url {
-                config true;
-                type inet:uri;
-                description "Yang library to be plugged as additional source provider into the shared schema repository";
-            }
-
-            // credentials for basic http authentication
-            leaf username {
-                config true;
-                type string;
-            }
-
-            leaf password {
-                config true;
-                type string;
-            }
-        }
+    revision "2015-01-14" {
+        description "Initial revision of Topology model";
     }
 
     grouping netconf-node-fields {
-
-        uses netconf-node-credentials;
-
-        uses netconf-node-connection-parameters;
-
-        uses netconf-node-connection-status;
-
-        uses netconf-schema-storage;
-        uses nno:netconf-node-augmented-optional-fields ;
-
+      uses ond:credentials;
+      uses ond:connection-parameters;
+      uses ond:netconf-schema-storage;
     }
 
     rpc create-device {
         input {
             uses netconf-node-fields;
+            uses nno:netconf-node-augmented-optional-fields;
             leaf node-id {
                 type string;
             }
@@ -360,12 +39,20 @@ module netconf-node-topology {
         }
     }
 
+    augment "/nt:network-topology/nt:topology/nt:topology-types" {
+        container topology-netconf {
+            presence "The presence of the container node indicates a network
+                      of NETCONF devices";
+        }
+    }
+
     augment "/nt:network-topology/nt:topology/nt:node" {
         when "../../nt:topology-types/topology-netconf";
         ext:augment-identifier "netconf-node";
 
         uses netconf-node-fields;
+        uses ond:connection-oper;
+        uses nno:netconf-node-augmented-optional-fields;
         ext:mount;
     }
-
 }
diff --git a/netconf/sal-netconf-connector/src/main/yang/odl-netconf-device.yang b/netconf/sal-netconf-connector/src/main/yang/odl-netconf-device.yang
new file mode 100644 (file)
index 0000000..268a227
--- /dev/null
@@ -0,0 +1,327 @@
+module odl-netconf-device {
+  namespace "urn:opendaylight:netconf:device";
+  prefix "ond";
+
+  description
+    "Common groupings for describing configuration and operational status
+     of an OpenDaylight southbound NETCONF device.";
+
+  import ietf-inet-types { prefix inet; }
+
+  revision 2022-12-25;
+
+  grouping username-password {
+    leaf username {
+      type string;
+    }
+
+    leaf password {
+      type string;
+    }
+  }
+
+  grouping credentials {
+    choice credentials {
+      config true;
+      case login-password {
+        description "Deprecated way of storing credentials, unencrypted.";
+
+        status deprecated;
+        uses username-password;
+      }
+      case login-pw {
+        description "login-password credentials, encrypted.";
+
+        container login-password {
+          uses username-password;
+        }
+      }
+      case login-pw-unencrypted {
+        description "login-password credentials, not encrypted.";
+
+        container login-password-unencrypted {
+          uses username-password;
+        }
+      }
+      case key-auth {
+        description "key-based authentication, use the id for the pair thats stored in the keystore.";
+
+        container key-based {
+          leaf key-id {
+            type string;
+          }
+
+          leaf username {
+            type string;
+          }
+        }
+      }
+    }
+  }
+
+  grouping connection-parameters {
+    leaf host {
+      type inet:host;
+    }
+
+    leaf port {
+      type inet:port-number;
+    }
+
+    leaf tcp-only {
+      config true;
+      type boolean;
+      default false;
+    }
+
+    container protocol {
+      config true;
+      leaf name {
+        type enumeration {
+          enum SSH;
+          enum TLS;
+        }
+        default SSH;
+      }
+
+      choice specification {
+        case tls-case {
+          container tls {
+            leaf-list excluded-versions {
+              type string;
+              description "A list of TLS version names provided in JDK that are not supported by the
+                           target netconf device, eg, the netopeer2 simulator does not support the
+                           SSLv2Hello. Most of the time, this list need not be set";
+            }
+          }
+        }
+      }
+    }
+
+    leaf schemaless {
+      type boolean;
+      default false;
+    }
+
+    container yang-module-capabilities {
+      config true;
+      leaf override {
+        type boolean;
+        default false;
+        description "Whether to override or merge this list of capabilities with capabilities from device";
+      }
+
+      leaf-list capability {
+        type string;
+        description "Set a list of capabilities to override capabilities provided in device's hello message.
+                     Can be used for devices that do not report any yang modules in their hello message";
+      }
+    }
+
+    container non-module-capabilities {
+      config true;
+      leaf override {
+        type boolean;
+        default false;
+        description "Whether to override or merge this list of non-module based capabilities with non-module
+                     based capabilities from device";
+      }
+
+      leaf-list capability {
+        type string;
+        description "Set a list of non-module based capabilities to override or merge non-module capabilities
+                     provided in device's hello message. Can be used for devices that do not report or
+                     incorrectly report non-module based capabilities in their hello message";
+      }
+    }
+
+    leaf reconnect-on-changed-schema {
+      config true;
+      type boolean;
+      default false;
+      description "If true, the connector would auto disconnect/reconnect when schemas are changed in the
+                   remote device. The connector subscribes (right after connect) to base netconf notifications
+                   and listens for netconf-capability-change notification";
+    }
+
+    leaf connection-timeout-millis {
+      description "Specifies timeout in milliseconds after which connection must be established.";
+      config true;
+      type uint32;
+      default 20000;
+    }
+
+    leaf default-request-timeout-millis {
+      description "Timeout for blocking operations within transactions.";
+      config true;
+      type uint32;
+      default 60000;
+    }
+
+    leaf max-connection-attempts {
+      description "Maximum number of connection retries. Non positive value or null is interpreted as infinity.";
+      config true;
+      type uint32;
+      default 0; // retry forever
+    }
+
+    leaf between-attempts-timeout-millis {
+      description "Initial timeout in milliseconds to wait between connection attempts. Will be multiplied by
+                   sleep-factor with every additional attempt";
+      config true;
+      type uint16;
+      default 2000;
+    }
+
+    leaf sleep-factor {
+      config true;
+      type decimal64 {
+        fraction-digits 1;
+      }
+      default 1.5;
+    }
+
+    // Keepalive configuration
+    leaf keepalive-delay {
+      config true;
+      type uint32;
+      default 120;
+      description "Netconf connector sends keepalive RPCs while the session is idle, this delay specifies
+                   the delay between keepalive RPC in seconds.
+                   If a value <1 is provided, no keepalives will be sent";
+    }
+
+    leaf concurrent-rpc-limit {
+      config true;
+      type uint16;
+      default 0;
+      description "Limit of concurrent messages that can be send before reply messages are received.
+                   If value <1 is provided, no limit will be enforced";
+    }
+
+    leaf actor-response-wait-time {
+      config true;
+      type uint16 {
+        range "1..max";
+      }
+      default 5;
+      description "Time that slave actor will wait for response from master.";
+    }
+
+    container odl-hello-message-capabilities {
+      config true;
+      leaf-list capability {
+        type inet:uri;
+        description "Certain devices are non-accepting of ODL's hello message.  This allows specification of
+                     a custom ODL hello message based on a list of supported capabilities.";
+      }
+    }
+  }
+
+  grouping connection-oper {
+    leaf connection-status {
+      config false;
+      type enumeration {
+        enum connecting;
+        enum connected;
+        enum unable-to-connect;
+      }
+    }
+
+    container clustered-connection-status {
+      config false;
+      list node-status {
+        leaf node {
+          type string;
+        }
+        leaf status {
+          type enumeration {
+            enum connected;
+            enum unavailable;
+            enum failed;
+          }
+        }
+      }
+      leaf netconf-master-node {
+        config false;
+        type string;
+      }
+    }
+
+    leaf connected-message {
+      config false;
+      type string;
+    }
+
+    container available-capabilities {
+      config false;
+      list available-capability {
+        leaf capability {
+            type string;
+        }
+        leaf capability-origin {
+          type enumeration {
+            enum user-defined;
+            enum device-advertised;
+          }
+        }
+      }
+    }
+
+    container unavailable-capabilities {
+      config false;
+      list unavailable-capability {
+        leaf capability {
+          type string;
+        }
+
+        leaf failure-reason {
+          type enumeration {
+            enum missing-source;
+            enum unable-to-resolve;
+          }
+        }
+      }
+    }
+
+    container pass-through {
+      when "../connection-status = connected";
+      description
+        "When the underlying node is connected, its NETCONF context
+        is available verbatim under this container through the
+        mount extension.";
+    }
+  }
+  
+  grouping netconf-schema-storage {
+    leaf schema-cache-directory {
+      config true;
+      type string;
+      default "schema";
+      description
+        "The destination schema repository for yang files relative to the cache directory.
+         This may be specified per netconf mount so that the loaded yang files are stored
+         to a distinct directory to avoid potential conflict.";
+    }
+
+    container yang-library {
+      leaf yang-library-url {
+          config true;
+          type inet:uri;
+          description
+            "Yang library to be plugged as additional source provider into the shared schema repository";
+      }
+
+      // credentials for basic http authentication
+      leaf username {
+          config true;
+          type string;
+      }
+
+      leaf password {
+          config true;
+          type string;
+      }
+    }
+  }
+}
index 863f1027acbc796a2b1bb4cf61cf339673517763..6ac3fd0a8fd804b353dcb6ab30f4617e07eb7a5d 100644 (file)
@@ -56,8 +56,8 @@ import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommun
 import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences;
 import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil;
 import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
-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.AvailableCapability.CapabilityOrigin;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability.CapabilityOrigin;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
index 7c6a7e69c69690950273451bead2e03a40c3b8af..709beabfd92fd75b7d13f4dac4c4305312f9f2e0 100644 (file)
@@ -26,8 +26,8 @@ import org.opendaylight.mdsal.dom.api.DOMDataBroker;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
 import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCapabilities;
 import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
-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.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.augment.test.rev160808.Node1;
 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.network.topology.Topology;
@@ -82,8 +82,7 @@ public class NetconfDeficeTopologyAdapterIntegrationTest {
         Awaitility.await().atMost(5, TimeUnit.SECONDS).until(() -> dataBroker.newReadWriteTransaction()
             .read(LogicalDatastoreType.OPERATIONAL, ID.getTopologyBindingPath().augmentation(NetconfNode.class))
             .get(5, TimeUnit.SECONDS)
-            .map(NetconfNodeConnectionStatus::getConnectionStatus)
-            .filter(status -> status == NetconfNodeConnectionStatus.ConnectionStatus.UnableToConnect)
+            .filter(conn -> conn.getConnectionStatus() == ConnectionStatus.UnableToConnect)
             .isPresent());
     }
 
index a31287c185e58c922623b940fd7f171376d90267..3106a3eedca8073bc96f97c690ed502d56d1d80c 100644 (file)
@@ -41,8 +41,8 @@ import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCapabi
 import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences;
 import org.opendaylight.netconf.sal.connect.netconf.util.NetconfMessageTransformUtil;
 import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
-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.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yangtools.rfc8528.data.util.EmptyMountPointContext;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
index 0247e995b89f1371b2e372576bd0d27b3b1ed048..8d61cc0e4987d0109907de97391e0139a0c4b141 100644 (file)
@@ -22,16 +22,16 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.CreateDeviceInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.CreateDeviceInputBuilder;
-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.netconf.node.credentials.Credentials;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPw;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPwBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPwUnencrypted;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPwUnencryptedBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.login.pw.LoginPasswordBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.login.pw.unencrypted.LoginPasswordUnencryptedBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.Credentials;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPw;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPwBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPwUnencrypted;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPwUnencryptedBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.login.pw.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.login.pw.unencrypted.LoginPasswordUnencryptedBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.CreateDeviceInput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.CreateDeviceInputBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yangtools.yang.common.Uint16;
 
@@ -80,17 +80,21 @@ public class NetconfTopologyRPCProviderTest {
     }
 
     private static CreateDeviceInput getInput(final boolean encrypt) {
-        CreateDeviceInputBuilder builder = new CreateDeviceInputBuilder();
         final Credentials credentials;
         if (encrypt) {
-            credentials = new LoginPwBuilder().setLoginPassword(
-                    new LoginPasswordBuilder().setUsername("test").setPassword(TEST_PWD).build()).build();
+            credentials = new LoginPwBuilder()
+                .setLoginPassword(new LoginPasswordBuilder().setUsername("test").setPassword(TEST_PWD).build())
+                .build();
         } else {
-            credentials = new LoginPwUnencryptedBuilder().setLoginPasswordUnencrypted(
-                    new LoginPasswordUnencryptedBuilder().setUsername("test").setPassword(TEST_PWD).build()).build();
+            credentials = new LoginPwUnencryptedBuilder()
+                .setLoginPasswordUnencrypted(new LoginPasswordUnencryptedBuilder()
+                    .setUsername("test")
+                    .setPassword(TEST_PWD)
+                    .build())
+                .build();
         }
 
-        return builder
+        return new CreateDeviceInputBuilder()
             .setCredentials(credentials)
             .setHost(new Host(new IpAddress(new Ipv4Address("10.18.16.188"))))
             .setPort(new PortNumber(Uint16.valueOf(830)))
index 7fa9f45d109e795085d4b5b7b8e414a2d0acbbfd..c6aa850a1b748d1cbd967010efa864c0591b25b8 100644 (file)
@@ -35,7 +35,7 @@ import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ip._stat
 import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.ios.xr.ip._static.cfg.rev130722.vrf.unicast.VrfUnicastBuilder;
 import org.opendaylight.yang.gen.v1.http.cisco.com.ns.yang.cisco.xr.types.rev150119.CiscoIosXrString;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
-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.opendaylight.netconf.node.topology.rev221225.network.topology.topology.topology.types.TopologyNetconf;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ncmount.rev150105.ListNodesInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ncmount.rev150105.ListNodesOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ncmount.rev150105.NcmountService;
index eb38992f1ea913e72ecdda9bf678baffd215a6cd..f2b2ada794828f055b9d5c0a1c664572b1f461d4 100644 (file)
@@ -12,9 +12,9 @@ import java.io.IOException;
 import java.io.StringWriter;
 import java.util.List;
 import org.opendaylight.mdsal.binding.runtime.spi.BindingRuntimeHelpers;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.$YangModuleInfoImpl;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeFields;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.Credentials;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.Credentials;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.$YangModuleInfoImpl;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeFields;
 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.network.topology.Topology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;