[CONTROLLER-741] Restconf can not get top level data from mounted controller config/oper does not work Created: 27/Aug/14  Updated: 02/Sep/14  Resolved: 02/Sep/14

Status: Resolved
Project: controller
Component/s: netconf
Affects Version/s: Helium
Fix Version/s: None

Type: Bug
Reporter: Jan Medved Assignee: Tony Tkacik
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Mac OS
Platform: Macintosh


External issue ID: 1636

 Description   

Trying to get mounted data via Restconf from the mounted controller netconf server does not work. The URL used in the attempt to retrieve the data is as follows:

http://localhost:8080/restconf/operational/opendaylight-inventory:nodes/node/controller-config/yang-ext:mount/

The request returns with the following error message:

errors: {
-error: [
-{
error-type: "application"
error-tag: "operation-failed"
error-message: "read execution failed"
error-info: "java.lang.IllegalArgumentException: It wasn't possible to get namespace for prefix prefix\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.InstanceIdentifierForXmlCodec.toIdentity(InstanceIdentifierForXmlCodec.java:152)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.toSimpleNodeWithType(XmlDocumentUtils.java:244)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.toNodeWithSchema(XmlDocumentUtils.java:220)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.access$000(XmlDocumentUtils.java:67)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils$1.apply(XmlDocumentUtils.java:355)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils$1.apply(XmlDocumentUtils.java:347)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.forEachChild(XmlDocumentUtils.java:495)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.toDomNodes(XmlDocumentUtils.java:347)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.toCompositeNodeWithSchema(XmlDocumentUtils.java:276)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.toNodeWithSchema(XmlDocumentUtils.java:218)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.access$000(XmlDocumentUtils.java:67)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils$1.apply(XmlDocumentUtils.java:355)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils$1.apply(XmlDocumentUtils.java:347)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.forEachChild(XmlDocumentUtils.java:495)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.toDomNodes(XmlDocumentUtils.java:347)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.toCompositeNodeWithSchema(XmlDocumentUtils.java:276)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.toNodeWithSchema(XmlDocumentUtils.java:218)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.access$000(XmlDocumentUtils.java:67)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils$1.apply(XmlDocumentUtils.java:355)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils$1.apply(XmlDocumentUtils.java:347)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.forEachChild(XmlDocumentUtils.java:495)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.toDomNodes(XmlDocumentUtils.java:347)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.toCompositeNodeWithSchema(XmlDocumentUtils.java:276)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.toNodeWithSchema(XmlDocumentUtils.java:218)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.access$000(XmlDocumentUtils.java:67)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils$1.apply(XmlDocumentUtils.java:355)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils$1.apply(XmlDocumentUtils.java:347)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.forEachChild(XmlDocumentUtils.java:495)\ \ at org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils.toDomNodes(XmlDocumentUtils.java:347)\ \ at org.opendaylight.controller.sal.connect.netconf.schema.mapping.NetconfMessageTransformer.toRpcResult(NetconfMessageTransformer.java:107)\ \ at org.opendaylight.controller.sal.connect.netconf.schema.mapping.NetconfMessageTransformer.toRpcResult(NetconfMessageTransformer.java:96)\ \ at org.opendaylight.controller.sal.connect.netconf.schema.mapping.NetconfMessageTransformer.toRpcResult(NetconfMessageTransformer.java:36)\ \ at org.opendaylight.controller.sal.connect.netconf.sal.NetconfDeviceRpc.transformResult(NetconfDeviceRpc.java:71)\ \ at org.opendaylight.controller.sal.connect.netconf.sal.NetconfDeviceRpc.access$000(NetconfDeviceRpc.java:32)\ \ at org.opendaylight.controller.sal.connect.netconf.sal.NetconfDeviceRpc$1.apply(NetconfDeviceRpc.java:59)\ \ at org.opendaylight.controller.sal.connect.netconf.sal.NetconfDeviceRpc$1.apply(NetconfDeviceRpc.java:56)\ \ at com.google.common.util.concurrent.Futures$1.apply(Futures.java:720)\ \ at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:859)\ \ at com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:293)\ \ at com.google.common.util.concurrent.ExecutionList$RunnableExecutorPair.execute(ExecutionList.java:150)\ \ at com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:135)\ \ at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:185)\ \ at org.opendaylight.controller.sal.connect.netconf.listener.UncancellableFuture.set(UncancellableFuture.java:45)\ \ at org.opendaylight.controller.sal.connect.netconf.listener.NetconfDeviceCommunicator.processMessage(NetconfDeviceCommunicator.java:251)\ \ at org.opendaylight.controller.sal.connect.netconf.listener.NetconfDeviceCommunicator.onMessage(NetconfDeviceCommunicator.java:197)\ \ at org.opendaylight.controller.sal.connect.netconf.listener.NetconfDeviceCommunicator.onMessage(NetconfDeviceCommunicator.java:45)\ \ at org.opendaylight.controller.netconf.nettyutil.AbstractNetconfSession.handleMessage(AbstractNetconfSession.java:57)\ \ at org.opendaylight.controller.netconf.nettyutil.AbstractNetconfSession.handleMessage(AbstractNetconfSession.java:28)\ \ at org.opendaylight.protocol.framework.AbstractProtocolSession.channelRead0(AbstractProtocolSession.java:46)\ \ at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103)\ \ at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:341)\ \ at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:327)\ \ at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:163)\ \ at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:341)\ \ at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:327)\ \ at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:163)\ \ at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:341)\ \ at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:327)\ \ at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)\ \ at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:341)\ \ at io.netty.channel.DefaultChannelHandlerContext.access$700(DefaultChannelHandlerContext.java:30)\ \ at io.netty.channel.DefaultChannelHandlerContext$8.run(DefaultChannelHandlerContext.java:332)\ \ at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:370)\ \ at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:353)\ \ at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)\ \ at java.lang.Thread.run(Thread.java:745)\ "
}
]
}
}



 Comments   
Comment by Jan Medved [ 27/Aug/14 ]

The same error happens for the configuration name space.

I am also unable to retrieve state beyond the top level mount, such as netconf monitoring. It appears like the entire mount point is not functional

Comment by Tony Tkacik [ 28/Aug/14 ]

With master build I was able to retrieve Netconf state: http://localhost:8080/restconf/operational/opendaylight-inventory:nodes/node/controller-config/yang-ext:mount/ietf-netconf-monitoring:netconf-state

Comment by Tony Tkacik [ 28/Aug/14 ]

Bug was combination of two:
Netconf server did not properly serialized list of dependencies
SAL Inmemory Datastore model contained bugs

https://git.opendaylight.org/gerrit/#/c/10445/1
https://git.opendaylight.org/gerrit/#/c/10451/

Generated at Wed Feb 07 19:53:45 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.