tail-f-systems / JNC

JNC (Java NETCONF Client) is the name of a Java library for communicating with NETCONF agents, and a plugin for pyang (http://code.google.com/p/pyang/) to generate Java classes from YANG models, to be used by the JNC library.
Other
77 stars 87 forks source link

Import statements and schema is not properly converted from yang model. #63

Closed vishwaraths closed 8 years ago

vishwaraths commented 8 years ago

Hi, I tried to convert yang file in java using your suggested way, but in java file import statements are not proper so i manually changed import statement and schema file. But i think there is something missing in java file b'coz request message differs while executing same yang file from CLI using netconf-console and from JAVA.

klacke commented 8 years ago

Hi I've said it before - and say it again - the yang->java converter part of JNC isn't actively maintained by anyone. The code is clearly looking for a maintainer. I guess it's kind of working, for some yang files, but probably not for all. OTOH, now with free (as in beer) ConfD available, it's more than possible for someone to step up as JNC pyang plugin maintainer.

vishwaraths commented 8 years ago

Hi, Thanks for your response. Can you suggest me any other way to convert yang model in java model or you can suggest some other library other than pyang.

klacke commented 8 years ago

If you share your Yang model with me (maybe offline if you prefer) I can have a look at it.

OTOH, I'm not really in favour of the whole approach here, the idea of turning the yang models into Java classes sound better than it is.

Try to use the JNC lib as it is - the text based DOM that is used by the client lib itself is pretty nice.

/klacke

On 02/03/16 05:10, vishwaraths wrote:

Hi, Thanks for your response. Can you suggest me any other way to convert yang model in java model or you can suggest some other library other than pyang.

— Reply to this email directly or view it on GitHub https://github.com/tail-f-systems/JNC/issues/63#issuecomment-191048728.

vishwaraths commented 8 years ago

Hi, This is my Yang file `module arpe { namespace "http://tail-f.com/ns/example/arpe"; prefix arpe;

import ietf-inet-types { prefix inet; } import tailf-common { prefix tailf; }

container arpentries { config false; tailf:callpoint arpe; list arpe { key "ip ifname"; max-elements 1024; leaf ip { type inet:ip-address; } leaf ifname { type string; } leaf hwaddr { type string; mandatory true; } leaf permanent { type boolean; mandatory true; } leaf published { type boolean; mandatory true; } } } } `

klacke commented 8 years ago

Ok, I haven't tried with your module here, what I did try though was the code in examples/0-intro

Try to add your module to that example, that seems to work just fine. What didn't work for me, where I got bad import statements was the code in e.g tests/1-test-union

There are slightly different flags given to the jnc plugin in those two examples. Seems as if the tests dir is broken.

As I've said before - the jnc.py plugin isn't properly maintained, whereas the JNC lib under jnc/src/com/tailf/jnc/ is.

/klacke

On 02/03/16 12:03, vishwaraths wrote:

Hi, This is my Yang file `module arpe { namespace "http://tail-f.com/ns/example/arpe"; prefix arpe;

import ietf-inet-types { prefix inet; } import tailf-common { prefix tailf; }

container arpentries { config false; tailf:callpoint arpe; list arpe { key "ip ifname"; max-elements 1024; leaf ip { type inet:ip-address; } leaf ifname { type string; } leaf hwaddr { type string; mandatory true; } leaf permanent { type boolean; mandatory true; } leaf published { type boolean; mandatory true; } } } } `

— Reply to this email directly or view it on GitHub https://github.com/tail-f-systems/JNC/issues/63#issuecomment-191189013.