Comments (4)
from yang.
Hi, thx for the reply.
In a nutshell, I have an identityref leaf using a derived type defined in an imported yang module. When processing the leaf, this code:
func toIdentRef(base *meta.Identity, v interface{}) (val.IdentRef, error) {
var empty val.IdentRef
x := fmt.Sprintf("%v", v)
ref, found := base.Derived()[x]
//...
}
compares namespace-qualified name receive in the JSON with the derived type name without the namespace. In other words it compares A:B with B. Which fails. If I remove the namespace from the JSON body, it works fine.
I can provide a small example if needed.
Thx
from yang.
Hi,
A quick and dirty example that will panic at startup:
main.go.txt
Module-test.yang.txt
Module-types.yang.txt
If you remove the namespace ("type":"derived-type") it works... But when getting back the "type" leaf you get this result:
GET http://localhost:8090/restconf/data/Module-test
{
"Module-test:type": "derived-type"
}
Here the namespace is applied to the key and not the value which is incorrect as far as I know. type doesn't require a namspace since it's already in Module-test namespace and the derived type needs to be prefixed.
As a reference, section 6.8 of RFC7951.
Thx
from yang.
I was able to duplicate this and spec reference confirms your assertion. I should have fix and unit test in next couple days, thanks for reporting!
from yang.
Related Issues (20)
- Renaming of struct fields doesn't apply during replace operation? HOT 7
- Yang loader gets blocked for for an invalid yang file. HOT 1
- Panic in freeconf/yang library when import is missing HOT 1
- No support for mutiple bases for identityref type. HOT 1
- Derived bases of identities are not as expected when muti-level imports are done HOT 4
- [Question] Is Default() method syntax changed intentionally? Is this correct if leaf has value other than string. HOT 3
- Panic in freeconf/yang library if two leaf nodes has the same name. HOT 1
- Panic when 'config:true' is added in yang HOT 3
- Config substatment is not supported under choice statement HOT 1
- Augmenting is failing if target node is any substatment under a choice HOT 7
- Failing to augment if taget node is choice and data to be augmented also is choice HOT 3
- No error thrown is when a duplicate node is added to container using augment. HOT 1
- No error is thrown if cases inside a choice contains child nodes with same name. HOT 2
- Leaf of type union wrongly inherits default and units from typedef HOT 3
- Fraction-digits is not inherited through typedef HOT 2
- Panic when 'config:true' is added inside a choicecase in yang HOT 2
- bit information for 'bits' datatype is not found if a typedef is used. HOT 3
- 'Config'=false setting from parent/grand-parents not getting inherited to data nodes under a choice HOT 4
- Issue with setting default value for list and leaf-list using refine HOT 4
- Setting default value through typedef for leaf-list generates panic HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yang.