cisco-ie / anx

Advanced NETCONF Explorer: Graphical Explorer for NETCONF / YANG and GNMI/GRPC Telemetry & Java NETCONF 1.1 client library
Apache License 2.0
183 stars 43 forks source link

Cannot connect to NETCONF server. YANG parsing error #4

Closed CmeRR4 closed 6 years ago

CmeRR4 commented 6 years ago

Hello,

I'm trying to learn the Advanced Netconf Explorer cisco-ie/anx github project for research purposes. I was able to successfully install and run the Explorer from my browser; however, any time I'm trying to connect to NETCONF server I'm getting an error:

Failed to connect: Failed to analyze schemas! Please verify that the YANG models of your agent are valid!

I'm using NETCONF server that works with ODL for me and cannot identify any problems in the get reply for on /netconf-state/schemas. Is it possible that the Explorer cannot parse the starting elements of the reply message? Or maybe that the schema list element has augmented leafs inside ("conformance" and "module-type") may cause this problem?

Regarding the "format" leaf in the schemas list:

ncm:yang

I believe this is a valid usage of the identity-ref leaf as specified in the RFC 7950. So it should not cause any parsing errors. After the latest commit (Increase compatibility with anomalous NETCONF servers), I still having the same error as stated above.

I attached the RPC request and reply. RPCs.log

leaf format { type identityref { base schema-format; } description "The data modeling language the schema is written in (currently xsd, yang, yin, rng, or rnc). For YANG data models, 'yang' format MUST be supported and 'yin' format MAY also be provided."; }

From RFC 7950:

9.10.3. Lexical Representation

An identityref is lexically represented as the referred identity's qualified name as defined in [XML-NAMES]. If the prefix is not present, the namespace of the identityref is the default namespace in effect on the element that contains the identityref value.

When an identityref is given a default value using the "default" statement, the identity name in the default value MAY have a prefix. If a prefix is present on the identity name, it refers to an identity defined in the module that was imported with that prefix, or the prefix for the current module if the identity is defined in the

Thanks, Anatoliy

sbyx commented 6 years ago

Could you please provide the log output from the Explorer? E.g. using "docker logs" if you are using docker.

CmeRR4 commented 6 years ago

Yes, I used docker in my testing. I attached docker logs output dockerlog.log

Thanks

sbyx commented 6 years ago

You are correct, I guess it is valid according to the YANG RFC. I have made another commit that should address the issue of not finding any schemas finally https://github.com/cisco-ie/anx/commit/81607bece6049af48e1d23c6a2b79899b67aa510

I hope this addresses the issue now.

CmeRR4 commented 6 years ago

Unfortunately, I still having the same error. Here is the log dockerlog.log

sbyx commented 6 years ago

Installed yuma123 and debugged the issue. It should work correctly now. Actually the code I edited before was not in use so it didn't do anything. I removed the duplicate codes and cleaned up.