Add RemoteDeviceServices
[netconf.git] / netconf / sal-netconf-connector / src / main / java / org / opendaylight / netconf / sal / connect / netconf / sal / NetconfDeviceSalProvider.java
index 55ede4ccc121e0338ab03d04058e0611bb4917e7..9109ee4bcb5fba56fc0fd784130637c7e4b9e337 100644 (file)
@@ -22,6 +22,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcService;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 import org.opendaylight.mdsal.dom.spi.FixedDOMSchemaService;
 import org.opendaylight.netconf.dom.api.NetconfDataTreeService;
+import org.opendaylight.netconf.sal.connect.api.RemoteDeviceServices;
 import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId;
 import org.opendaylight.yangtools.concepts.ObjectRegistration;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
@@ -85,9 +86,16 @@ public class NetconfDeviceSalProvider implements AutoCloseable {
             this.id = requireNonNull(id);
         }
 
+        public void onTopologyDeviceConnected(final EffectiveModelContext initialCtx,
+                final RemoteDeviceServices services, final DOMDataBroker broker,
+                final NetconfDataTreeService dataTreeService) {
+            onTopologyDeviceConnected(initialCtx, services, new NetconfDeviceNotificationService(), broker,
+                dataTreeService);
+        }
+
         public synchronized void onTopologyDeviceConnected(final EffectiveModelContext initialCtx,
-                final DOMDataBroker broker, final NetconfDataTreeService netconfService, final DOMRpcService rpc,
-                final NetconfDeviceNotificationService newNotificationService, final DOMActionService deviceAction) {
+                final RemoteDeviceServices services, final NetconfDeviceNotificationService newNotificationService,
+                final DOMDataBroker broker, final NetconfDataTreeService dataTreeService) {
             requireNonNull(mountService, "Closed");
             checkState(topologyRegistration == null, "Already initialized");
 
@@ -98,14 +106,15 @@ public class NetconfDeviceSalProvider implements AutoCloseable {
             if (broker != null) {
                 mountBuilder.addService(DOMDataBroker.class, broker);
             }
-            mountBuilder.addService(DOMRpcService.class, rpc);
-            mountBuilder.addService(DOMNotificationService.class, newNotificationService);
-            if (deviceAction != null) {
-                mountBuilder.addService(DOMActionService.class, deviceAction);
+            mountBuilder.addService(DOMRpcService.class, services.rpcs());
+            final var actions = services.actions();
+            if (actions != null) {
+                mountBuilder.addService(DOMActionService.class, actions);
             }
-            if (netconfService != null) {
-                mountBuilder.addService(NetconfDataTreeService.class, netconfService);
+            if (dataTreeService != null) {
+                mountBuilder.addService(NetconfDataTreeService.class, dataTreeService);
             }
+            mountBuilder.addService(DOMNotificationService.class, newNotificationService);
             notificationService = newNotificationService;
 
             topologyRegistration = mountBuilder.register();