commitHandlerReg = mountInstance.registerCommitHandler(ROOT_PATH, this);
val rpcs = new ArrayList<RpcRegistration>();
- 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
}
LOG.debug("Session with {} established as address {} session-id {}",
device.getName(), device.getSocketAddress(), session.getSessionId());
+ this.session = session;
final Set<QName> caps = device.getCapabilities(session.getServerCapabilities());
LOG.trace("Server {} advertized capabilities {}", device.getName(), caps);
final SchemaSourceProvider<String> 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());
device.bringUp(delegate, caps);
- this.session = session;
}
private synchronized void tearDown(final Exception e) {