Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need help for a 'derived-from-or-self' validation #2342

Open
prmanna opened this issue Jan 30, 2025 · 3 comments
Open

Need help for a 'derived-from-or-self' validation #2342

prmanna opened this issue Jan 30, 2025 · 3 comments
Labels
is:question Issue is actually a question.

Comments

@prmanna
Copy link

prmanna commented Jan 30, 2025

Hi Team,

We are using the yanglint validation for the yang with json example.

For this new change (ie. union)
https://github.com/ietf-ivy-wg/network-inventory-yang/blob/06d546603dbd58f1d6dccb371aa58204bf8a6399/ietf-network-inventory.yang#L334

the yanglint is giving error in this following validation for the example above.
https://github.com/ietf-ivy-wg/network-inventory-yang/blob/06d546603dbd58f1d6dccb371aa58204bf8a6399/ietf-network-inventory.yang#L520

Need your input here.
Thanks,
Prasenjit

@michalvasko
Copy link
Member

Can you please post the exact command you are executing? I have tried validating the data you posted but they contain obvious typos (such as transceivers-module identityref instead of transceiver-module) and so I am getting lots of different errors than the one you mentioned.

@michalvasko michalvasko added the is:question Issue is actually a question. label Jan 31, 2025
@prmanna
Copy link
Author

prmanna commented Feb 1, 2025

./yanglint --path=/prmanna/ietf/libyang/build/yangdb/ -f json tests/ietf-network-inventory.yang yangdb/iana-hardware.yang tests/ports-transceivers-breakouts-examples.json

@michalvasko
Copy link
Member

> yanglint -f json ./ietf-network-inventory.yang /home/vasko/Downloads/yang/standard/ietf/RFC/[email protected] ./ports-transceivers-breakouts-examples.json 
libyang err : Expecting JSON name/object but container "parent-component-ref" is represented in input data as name/string. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='port-1'])
libyang err : Invalid union value "ietf-network-inventory:transceivers-module" - no matching subtype found:
    libyang 2 - identityref, version 1: Invalid identityref "ietf-network-inventory:transceivers-module" value - identity not found in module "ietf-network-inventory".
    libyang 2 - identityref, version 1: Invalid identityref "ietf-network-inventory:transceivers-module" value - identity not found in module "ietf-network-inventory".
 (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-1']/class)
libyang err : Expecting JSON name/object but container "parent-component-ref" is represented in input data as name/string. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-1'])
libyang err : Expecting JSON name/object but container "parent-component-ref" is represented in input data as name/string. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='port-2'])
libyang err : Expecting JSON name/object but container "parent-component-ref" is represented in input data as name/string. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='port-3'])
libyang err : Invalid union value "ietf-network-inventory:transceivers-module" - no matching subtype found:
    libyang 2 - identityref, version 1: Invalid identityref "ietf-network-inventory:transceivers-module" value - identity not found in module "ietf-network-inventory".
    libyang 2 - identityref, version 1: Invalid identityref "ietf-network-inventory:transceivers-module" value - identity not found in module "ietf-network-inventory".
 (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-3']/class)
libyang err : Expecting JSON name/object but container "parent-component-ref" is represented in input data as name/string. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-3'])
libyang err : Expecting JSON name/object but container "parent-component-ref" is represented in input data as name/string. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='port-4'])
libyang err : Invalid union value "ietf-network-inventory:transceivers-module" - no matching subtype found:
    libyang 2 - identityref, version 1: Invalid identityref "ietf-network-inventory:transceivers-module" value - identity not found in module "ietf-network-inventory".
    libyang 2 - identityref, version 1: Invalid identityref "ietf-network-inventory:transceivers-module" value - identity not found in module "ietf-network-inventory".
 (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-4']/class)
libyang err : Expecting JSON name/object but container "parent-component-ref" is represented in input data as name/string. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-4'])
libyang err : Expecting JSON name/object but container "parent-component-ref" is represented in input data as name/string. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='port-5'])
libyang err : Invalid union value "ietf-network-inventory:transceivers-module" - no matching subtype found:
    libyang 2 - identityref, version 1: Invalid identityref "ietf-network-inventory:transceivers-module" value - identity not found in module "ietf-network-inventory".
    libyang 2 - identityref, version 1: Invalid identityref "ietf-network-inventory:transceivers-module" value - identity not found in module "ietf-network-inventory".
 (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-5']/class)
libyang err : Expecting JSON name/object but container "parent-component-ref" is represented in input data as name/string. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-5'])
libyang err : Expecting JSON name/object but container "parent-component-ref" is represented in input data as name/string. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='port-6'])
libyang err : Invalid union value "ietf-network-inventory:transceivers-module" - no matching subtype found:
    libyang 2 - identityref, version 1: Invalid identityref "ietf-network-inventory:transceivers-module" value - identity not found in module "ietf-network-inventory".
    libyang 2 - identityref, version 1: Invalid identityref "ietf-network-inventory:transceivers-module" value - identity not found in module "ietf-network-inventory".
 (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-6']/class)
libyang err : Expecting JSON name/object but container "parent-component-ref" is represented in input data as name/string. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-6'])
libyang err : Node "transceivers-module-specific-info" not found as a child of "component" node. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-6'])
libyang err : Expecting JSON name/object but container "parent-component-ref" is represented in input data as name/string. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='port-7'])
libyang err : Invalid union value "ietf-network-inventory:transceivers-module" - no matching subtype found:
    libyang 2 - identityref, version 1: Invalid identityref "ietf-network-inventory:transceivers-module" value - identity not found in module "ietf-network-inventory".
    libyang 2 - identityref, version 1: Invalid identityref "ietf-network-inventory:transceivers-module" value - identity not found in module "ietf-network-inventory".
 (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-7']/class)
libyang err : Expecting JSON name/object but container "parent-component-ref" is represented in input data as name/string. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-7'])
libyang err : Node "transceivers-module-specific-info" not found as a child of "component" node. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-7'])
libyang err : Mandatory node "class" instance does not exist. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-1'])
libyang err : Mandatory node "class" instance does not exist. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-3'])
libyang err : Mandatory node "class" instance does not exist. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-4'])
libyang err : Mandatory node "class" instance does not exist. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-5'])
libyang err : Mandatory node "class" instance does not exist. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-6'])
libyang err : Mandatory node "class" instance does not exist. (/ietf-network-inventory:network-inventory/network-elements/network-element[ne-id='NE-1']/components/component[component-id='transceivers-module-7'])
YANGLINT[E]: Failed to parse input data file "./ports-transceivers-breakouts-examples.json".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is:question Issue is actually a question.
Projects
None yet
Development

No branches or pull requests

2 participants