Привязка Python к sysrepo дает недопустимое исключение аргумента - PullRequest
1 голос
/ 26 апреля 2019

Я пытаюсь связать некоторый существующий код Python 2 с пакетом sysrepo в OpenWrt.Привязка Python использует SWIG для взаимодействия с базовым C / C ++.

Я пытаюсь создать объект YANG, вызывая функцию Session.set_item(), но получаю исключение.

Однако обратите вниманиечто удаление того же объекта YANG работает нормально.

Вот некоторый код, который не работает:

import libsysrepoPython2 as sr

def delete_configuration_ntp(session):
    print('Deleting')
    session.delete_item('/ietf-system:system/ntp/enabled')
    print('Deleted')

def create_configuration_ntp(session, enabled):
    print('Creating')
    value = sr.Val(enabled, sr.SR_BOOL_T)
    print('    boolean value created')
    session.set_item('/ietf-system:system/ntp/enabled', value)
    print('    boolean value set')
    print('Created')

try:
    connection = sr.Connection("example_application")
    session = sr.Session(connection, sr.SR_DS_RUNNING)
    subscribe = sr.Subscribe(session)

    delete_configuration_ntp(session)
    create_configuration_ntp(session, True)

except Exception as e:
    print('Main program exception:', e)

Я ожидаю, что эта программа Python2 будет работать, но она завершится с ошибкой следующим образом:

root@OpenWrt:~# python -V
Python 2.7.15
root@OpenWrt:~# ./minimal.py
Deleting
Deleted
Creating
    boolean value created
('Main program exception:', RuntimeError('Invalid argument',))
root@OpenWrt:~#

Есть ли какие-либо указатели, например, как я могу отладить SWIG?

Могу ли я получить дополнительную информацию о причине этого исключения?

...