Details
-
Bug
-
Status: Resolved
-
Resolution: Cannot Reproduce
-
Beryllium
-
None
-
None
-
Operating System: All
Platform: All
-
4048
Description
I am in the process of trying to get IT testing working in the startup archetype.
In the process of doing that, I am getting IT test failures with an exception:
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 477.459 sec <<< FAILURE! - in HelloIT
testRPC(HelloIT) Time elapsed: 394.96 sec <<< ERROR!
org.opendaylight.controller.md.sal.dom.api.DOMRpcImplementationNotAvailableException: No implementation of RPC AbsoluteSchemaPath
available
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRoutingTable.invokeRpc(DOMRpcRoutingTable.java:183)
at org.opendaylight.controller.md.sal.dom.broker.impl.DOMRpcRouter.invokeRpc(DOMRpcRouter.java:124)
at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke0(RpcServiceAdapter.java:64)
at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.access$000(RpcServiceAdapter.java:42)
at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter$RpcInvocationStrategy.invoke(RpcServiceAdapter.java:156)
at org.opendaylight.controller.md.sal.binding.impl.RpcServiceAdapter.invoke(RpcServiceAdapter.java:95)
at com.sun.proxy.$Proxy84.helloWorld(Unknown Source)
at HelloIT.testRPC(HelloIT.java:57)
This happens in spite of the fact that if I put a debugger breakpoint on HelloIT.java:56 (the line before the exception is thrown) I can successfully access the RPC via Restconf.
The RPC implementation is registered with the BindingAwareBroker via the ProviderContext, and we are attempting to access if in the IT test via the BindingAwareBroker via a ProviderContext. But it appears that the BindingAwareBroker is forwarding it to the DomBroker where the RPC is not being found.
If we try to access it via RestConf however its being access correctly.
To recreate:
As part of doing that, I am using this patch:
https://git.opendaylight.org/gerrit/#/c/16294/
to do IT testing via a parent and base classes, so you will need to build the new directories from there.
You will find attached a hello.zip file which contains the code I am working from. Building hello/ will build hello/it which will run the IT tests and fail appropriately.
The POSTMAN to use RESTCONF is here: https://www.getpostman.com/collections/fe835cc9c7b50343f752