X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=netconf%2Fsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Fconnect%2Fnetconf%2Fsal%2FNetconfDeviceSalProvider.java;h=b215f882d23bf212e811f0fd56495df679c21458;hb=fc71e17ca46e029ad6535613498842ff2854868d;hp=b24eb89c9927bcc3da6d7dcd1b8bcc4405de9e75;hpb=676b7818fd81f1322b7e8aa977271f3a3af397a6;p=netconf.git diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalProvider.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalProvider.java index b24eb89c99..b215f882d2 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalProvider.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceSalProvider.java @@ -13,6 +13,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.common.api.data.AsyncTransaction; import org.opendaylight.controller.md.sal.common.api.data.TransactionChain; import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener; +import org.opendaylight.controller.md.sal.dom.api.DOMActionService; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; import org.opendaylight.controller.md.sal.dom.api.DOMMountPoint; import org.opendaylight.controller.md.sal.dom.api.DOMMountPointService; @@ -53,20 +54,19 @@ public class NetconfDeviceSalProvider implements AutoCloseable { } }; - public NetconfDeviceSalProvider(final RemoteDeviceId deviceId, final DOMMountPointService mountService, - final DataBroker dataBroker) { - this.id = deviceId; - mountInstance = new MountInstance(mountService, id); - this.dataBroker = dataBroker; - txChain = Preconditions.checkNotNull(dataBroker).createTransactionChain(transactionChainListener); - - topologyDatastoreAdapter = new NetconfDeviceTopologyAdapter(id, txChain); + public NetconfDeviceSalProvider(final RemoteDeviceId deviceId, final DOMMountPointService mountService) { + this(deviceId, mountService, null); } - public NetconfDeviceSalProvider(final RemoteDeviceId deviceId, final DOMMountPointService mountService) { + public NetconfDeviceSalProvider(final RemoteDeviceId deviceId, final DOMMountPointService mountService, + final DataBroker dataBroker) { this.id = deviceId; mountInstance = new MountInstance(mountService, id); - this.dataBroker = null; + this.dataBroker = dataBroker; + if (dataBroker != null) { + txChain = Preconditions.checkNotNull(dataBroker).createTransactionChain(transactionChainListener); + topologyDatastoreAdapter = new NetconfDeviceTopologyAdapter(id, txChain); + } } public MountInstance getMountInstance() { @@ -106,8 +106,8 @@ public class NetconfDeviceSalProvider implements AutoCloseable { private final DOMMountPointService mountService; private final RemoteDeviceId id; - private NetconfDeviceNotificationService notificationService; + private NetconfDeviceNotificationService notificationService; private ObjectRegistration topologyRegistration; MountInstance(final DOMMountPointService mountService, final RemoteDeviceId id) { @@ -115,9 +115,15 @@ public class NetconfDeviceSalProvider implements AutoCloseable { this.id = Preconditions.checkNotNull(id); } - public synchronized void onTopologyDeviceConnected(final SchemaContext initialCtx, + public void onTopologyDeviceConnected(final SchemaContext initialCtx, final DOMDataBroker broker, final DOMRpcService rpc, final NetconfDeviceNotificationService newNotificationService) { + onTopologyDeviceConnected(initialCtx, broker, rpc, newNotificationService, null); + } + + public synchronized void onTopologyDeviceConnected(final SchemaContext initialCtx, + final DOMDataBroker broker, final DOMRpcService rpc, + final NetconfDeviceNotificationService newNotificationService, DOMActionService deviceAction) { Preconditions.checkNotNull(mountService, "Closed"); Preconditions.checkState(topologyRegistration == null, "Already initialized"); @@ -128,11 +134,13 @@ public class NetconfDeviceSalProvider implements AutoCloseable { mountBuilder.addService(DOMDataBroker.class, broker); mountBuilder.addService(DOMRpcService.class, rpc); mountBuilder.addService(DOMNotificationService.class, newNotificationService); + if (deviceAction != null) { + mountBuilder.addService(DOMActionService.class, deviceAction); + } this.notificationService = newNotificationService; topologyRegistration = mountBuilder.register(); LOG.debug("{}: TOPOLOGY Mountpoint exposed into MD-SAL {}", id, topologyRegistration); - } @SuppressWarnings("checkstyle:IllegalCatch")