From: Maros Marsalek Date: Wed, 16 Apr 2014 12:36:20 +0000 (+0200) Subject: BUG-732 Fix netconf-connector unable to detect monitoring capability X-Git-Tag: autorelease-tag-v20140601202136_82eb3f9~188^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=a72a0a1f866a407b89fe70faf16c1b55ba98daa0 BUG-732 Fix netconf-connector unable to detect monitoring capability Change-Id: I6d84db9994a85116d6159d960908c0816f31461b Signed-off-by: Maros Marsalek --- diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDevice.xtend b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDevice.xtend index 12e8b5587c..0b88c66b45 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDevice.xtend +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDevice.xtend @@ -167,8 +167,10 @@ AutoCloseable { commitHandlerReg = mountInstance.registerCommitHandler(ROOT_PATH, this); val rpcs = new ArrayList(); - for (rpc : mountInstance.schemaContext.operations) { - rpcs.add(mountInstance.addRpcImplementation(rpc.QName, this)); + if (mountInstance != null && schemaContext.isPresent) { + for (rpc : mountInstance.schemaContext.operations) { + rpcs.add(mountInstance.addRpcImplementation(rpc.QName, this)); + } } rpcReg = rpcs } diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDeviceListener.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDeviceListener.java index d5e1d35d7d..8c65aa309f 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDeviceListener.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfDeviceListener.java @@ -63,6 +63,7 @@ class NetconfDeviceListener implements NetconfClientSessionListener { LOG.debug("Session with {} established as address {} session-id {}", device.getName(), device.getSocketAddress(), session.getSessionId()); + this.session = session; final Set caps = device.getCapabilities(session.getServerCapabilities()); LOG.trace("Server {} advertized capabilities {}", device.getName(), caps); @@ -70,7 +71,8 @@ class NetconfDeviceListener implements NetconfClientSessionListener { final SchemaSourceProvider delegate; if (NetconfRemoteSchemaSourceProvider.isSupportedFor(caps)) { delegate = new NetconfRemoteSchemaSourceProvider(device); - } else if(caps.contains(NetconfRemoteSchemaSourceProvider.IETF_NETCONF_MONITORING.getNamespace().toString())) { + // FIXME parsed caps contain only module-based capabilities + } else if(session.getServerCapabilities().contains(NetconfRemoteSchemaSourceProvider.IETF_NETCONF_MONITORING.getNamespace().toString())) { delegate = new NetconfRemoteSchemaSourceProvider(device); } else { LOG.info("Netconf server {} does not support IETF Netconf Monitoring", device.getName()); @@ -79,7 +81,6 @@ class NetconfDeviceListener implements NetconfClientSessionListener { device.bringUp(delegate, caps); - this.session = session; } private synchronized void tearDown(final Exception e) {