`cffi==1.15.1` `libyang==2.7.1` `pycparser==2.21` ``` Python 3.10.12 (main, Jun 7 2023, 20:12:10) [GCC 10.2.1 20210110] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import libyang >>> ctx = libyang.Context() >>> module = ctx.parse_module_str(''' ... module example { ... namespace "urn:example"; ... prefix "ex"; ... container data { ... list interface { ... key name; ... leaf name { ... type string; ... } ... leaf address { ... type string; ... } ... } ... leaf hostname { ... type string; ... } ... } ... } ... ''') >>> print(module.print_mem('tree')) module: example +--rw data +--rw interface* [name] | +--rw name string | +--rw address? string +--rw hostname? string >>> node = module.parse_data_dict({ ... 'data': { ... 'hostname': 'foobar', ... 'interface': [ ... {'name': 'eth0', 'address': '1.2.3.4/24'}, ... {'name': 'lo', 'address': '127.0.0.1'}, ... ], ... }, ... }) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python3.10/site-packages/libyang/schema.py", line 215, in parse_data_dict return dict_to_dnode( File "/usr/local/lib/python3.10/site-packages/libyang/data.py", line 1277, in dict_to_dnode result.root().validate( File "/usr/local/lib/python3.10/site-packages/libyang/data.py", line 430, in validate self.validate_all(no_state, validate_present) File "/usr/local/lib/python3.10/site-packages/libyang/data.py", line 449, in validate_all raise self.context.error("validation failed") libyang.util.LibyangError: validation failed: Mandatory node "content-id" instance does not exist. >>> ``` It seems to be related to config store: https://github.com/CESNET/libyang-python/commit/93676bc9a829d5c94ba645db5bfbd90a13aab387 https://github.com/CESNET/libyang-python/issues/21
Activity