Skip to content

Instance-identifier defined in ietf-netconf but not mapped in pyangbind #355

@sanchayanghosh

Description

@sanchayanghosh

What is the issue?

instance-identifier not being mapped. #123 was opened to address this issue, but got closed due to inactivity. So opening this issue because I don't know how to reopen that issue.

Elaborate on the issue?

I have created a test yang with instance-identifier defined as per RFC 6020

aeroplane.yang

module aeroplane {
    yang-version 1.1;
    namespace "urn:aeroplanetypes:test";
    prefix "test";
    revision 2024-08-02;
    container aeroplane {
        description "Its an aeroplane";
        leaf identityaero {
            type instance-identifier;
        }
    }

}

I use this script to compile this yang to a py module using pyangbind
run_pyang.sh

#!/bin/bash
export PYBINDPLUGIN=`/usr/bin/env python -c \
'import pyangbind; import os; print ("{}/plugin".format(os.path.dirname(pyangbind.__file__)))'`
echo $PYBINDPLUGIN


pyang --plugindir $PYBINDPLUGIN -f pybind -o $2 $1


I run above script and get this error

./run_pyang.sh build/aeroplane.py yang_values/aeroplane.yang 2>&1 | pbcopy
/mnt/5a257e09-2112-4140-b6d0-529977714705/yang/.venv/lib/python3.12/site-packages/pyangbind/plugin
FATAL: unmapped type (instance-identifier)
dict_keys(['boolean', 'binary', 'uint8', 'bits', 'uint16', 'uint32', 'uint64', 'string', 'decimal64', 'empty', 'int8', 'int16', 'int32', 'int64'])
'instance-identifier'
False

In #123 @robshakir had asked for a patch with what the value instance-identifier should be mapped to. Whoever is the maintainer now, I can submit a patch taking a look at the netconf-rfc for the right mapping.

What version of pyang and pyangbind do you use?

Name: pyang
Version: 2.6.1
Summary: A YANG (RFC 6020/7950) validator and converter
Home-page: https://github.com/mbj4668/pyang
Author: Martin Bjorklund
Author-email: [email protected]
License: BSD
Location: /mnt/5a257e09-2112-4140-b6d0-529977714705/yang/.venv/lib/python3.12/site-packages
Requires: lxml
Required-by: pyangbind

pyangbind version:

Name: pyangbind
Version: 0.8.5
Summary: PyangBind is a plugin for pyang which converts YANG data models into a Python class hierarchy, such that Python can be used to manipulate data that conforms with a YANG model.
Home-page: https://github.com/robshakir/pyangbind
Author: Rob Shakir
Author-email: [email protected]
License: Apache License, Version 2.0
Location: /mnt/5a257e09-2112-4140-b6d0-529977714705/yang/.venv/lib/python3.12/site-packages
Requires: enum34, lxml, pyang, regex, six
Required-by: 

PC version:

██████████████████  ████████
██████████████████  ████████
██████████████████  ████████
██████████████████  ████████
████████            ████████
████████  ████████  ████████
████████  ████████  ████████
████████  ████████  ████████
████████  ████████  ████████
████████  ████████  ████████
████████  ████████  ████████
████████  ████████  ████████
████████  ████████  ████████
████████  ████████  ████████�[1G�[13A�[32Cbob@bob-systemproductname
�[32C-------------------------
�[32COS: Manjaro Linux x86_64
�[32CKernel: Linux 5.15.160-1-MANJARO
�[32CUptime: 1 hour, 51 mins
�[32CPackages: 1987 (pacman)[stable], 159 (nix-user), 49 (nix-default), 11 (snap)
�[32CShell: bash 5.2.26
�[32CDisplay (VNC-0): 1024x768 @ 60 Hz
�[32CWM: i3 (X11)
�[32CTheme: Cutefish-light [GTK3]
�[32CIcons: Crule [GTK3]
�[32CFont: Noto Sans (9pt) [GTK3]
�[32CCursor: Vanilla-DMZ-AA
�[32CTerminal: GNOME Terminal 3.52.2
�[32CTerminal Font: Source Code Pro (10pt)
�[32CCPU: AMD Ryzen 9 5900X (24) @ 3.70 GHz
�[32CGPU: llvmpipe (LLVM 17.0.6, 256 bits)
�[32CMemory: 4.15 GiB / 31.26 GiB (13%)
�[32CSwap: Disabled
�[32CDisk (/): 243.80 GiB / 287.31 GiB (85%) - ext4
�[32CDisk (/mnt/5a257e09-2112-4140-b6d0-529977714705): 86.44 GiB / 915.82 GiB (9%) - ext4
�[32CDisk (/mnt/sda3): 10.11 GiB / 161.23 GiB (6%) - ext4
�[32CDisk (/mnt/sda5): 224.13 GiB / 300.26 GiB (75%) - fuseblk
�[32CLocal IP (wlp6s0): 192.168.0.113/24
�[32CLocale: en_IN
�[32C
�[32C�[40m   �[41m   �[42m   �[43m   �[44m   �[45m   �[46m   �[47m   �[m
�[32C�[100m   �[101m   �[102m   �[103m   �[104m   �[105m   �[106m   �[107m   �[m

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions