I'm trying to implement OpenConfig in a test protocol. When the "connecting channel" is completed I try to request the interfaces. At this point the protocol throws an exception:
2023/08/02 10:25:41.428|SLManagedScripting.exe|ManagedInterop|DBG|0|164|Getting the paths [ { "elem": [ { "name": "interfaces" }, { "name": "interface" }, { "name": "state" } ] } ] for channel New OpenConfig.
2023/08/02 10:25:41.431|SLManagedScripting.exe|ManagedInterop|CRU|-1|164|399|ERR|An unexpected exception occurred for trigger 1997: Received error: Unavailable (14).
Skyline.DataMiner.DataSources.OpenConfig.Gnmi.Api.RequestFailedException: Exception of type 'Skyline.DataMiner.DataSources.OpenConfig.Gnmi.Api.RequestFailedException' was thrown.
at Skyline.DataMiner.DataSources.OpenConfig.Gnmi.Api.GnmiClient.Get(GetRequest request)
at Skyline.DataMiner.DataSources.OpenConfig.Gnmi.Api.GnmiClient.Get(IEnumerable`1 paths)
at Skyline.DataMiner.DataSources.OpenConfig.Gnmi.Api.GnmiClient.Get(IEnumerable`1 paths)
at QAction.PollInterfacesState()
at QAction.Run(SLProtocolExt protocol)
The received error has gRPC code 14 (Unavailable):
The service is currently unavailable. This can most likely be corrected by retrying after waiting a little bit. This error can also be returned when the TCP socket with the data source is not available. Is the IP of the data source reachable or is there a firewall blocking the connection? Check the CommunicationGateway logging for more detailed error information.
In the "CommunicationGateway.Grpc.err.txt" log file, I don't have issues. In the "info" log file, I get the following:
[2023-08-02 10:25:06.292 INF]Creating a gRPC channel to https://[...]:50051.
[2023-08-02 10:25:06.292 INF]Hander created for OpenConfig services group - ID: { "dataminerId": 166001, "elementId": 1249, "instanceGuid": "16d6adb77ffc4c12aa04a2242d44c6e0" }.
Does anyone know what could be causing this error and how to fix it?
Hi Andries,
Based on the TCP port in the logs, I'm suspecting you are looking at a Cisco device.
What is the specific device you are using?
Does the device have valid HTTPS certificates?
If it does, are they self-signed?
If that is the case, then you’ll have to install these certificates in the root CA certificate store on the DataMiner server.
The device is a CISCO Nexus, it has a valid HTTPS certificate and is self-signed.