Blame swig/python/examples/process_tree.py

Packit 8fb591
__author__ = "Mislav Novakovic <mislav.novakovic@sartura.hr>"
Packit 8fb591
__copyright__ = "Copyright 2017, Deutsche Telekom AG"
Packit 8fb591
__license__ = "BSD 3-Clause"
Packit 8fb591
Packit 8fb591
import yang as ly
Packit 8fb591
Packit 8fb591
ctx = None
Packit 8fb591
try:
Packit 8fb591
    ctx = ly.Context("/etc/sysrepo/yang")
Packit 8fb591
except Exception as e:
Packit 8fb591
    print(e)
Packit 8fb591
    errors = ly.get_ly_errors(ctx)
Packit 8fb591
    for err in errors:
Packit 8fb591
        print("err: %d" % err.err())
Packit 8fb591
        print("vecode: %d" % err.vecode())
Packit 8fb591
        print("errmsg: " + err.errmsg())
Packit 8fb591
        print("errpath:" + err.errpath())
Packit 8fb591
        print("errapptag:" + err.errapptag())
Packit 8fb591
Packit 8fb591
module = ctx.get_module("turing-machine")
Packit 8fb591
if module is not None:
Packit 8fb591
    print(module.name())
Packit 8fb591
else:
Packit 8fb591
    module = ctx.load_module("turing-machine")
Packit 8fb591
Packit 8fb591
node = None
Packit 8fb591
try:
Packit 8fb591
    if node is None : node = ctx.parse_data_path("/etc/sysrepo/data/turing-machine.startup", ly.LYD_LYB, ly.LYD_OPT_CONFIG)
Packit 8fb591
except Exception as e:
Packit 8fb591
    print(e)
Packit 8fb591
try:
Packit 8fb591
    if node is None : node = ctx.parse_data_path("/etc/sysrepo/data/turing-machine.startup", ly.LYD_XML, ly.LYD_OPT_CONFIG)
Packit 8fb591
except Exception as e:
Packit 8fb591
    print(e)
Packit 8fb591
try:
Packit 8fb591
    if node is None : node = ctx.parse_data_path("/etc/sysrepo/data/turing-machine.startup", ly.LYD_JSON, ly.LYD_OPT_CONFIG)
Packit 8fb591
except Exception as e:
Packit 8fb591
    print(e)
Packit 8fb591
Packit 8fb591
if node is None:
Packit 8fb591
    sys.exit()
Packit 8fb591
Packit 8fb591
if node is None:
Packit 8fb591
    print("parse_data_path did not return any nodes")
Packit 8fb591
else:
Packit 8fb591
    print("tree_dfs\n")
Packit 8fb591
    data_list = node.tree_dfs()
Packit 8fb591
    for elem in data_list:
Packit 8fb591
        schema = elem.schema()
Packit 8fb591
        print("name: " + schema.name() + " type: " + str(schema.nodetype()))
Packit 8fb591
        if (ly.LYS_LEAF == schema.nodetype() or ly.LYS_LEAFLIST == schema.nodetype()):
Packit 8fb591
            casted = elem.subtype()
Packit 8fb591
            if casted is None:
Packit 8fb591
                continue
Packit 8fb591
            print("node " + casted.schema().name() + " has value " + casted.value_str())
Packit 8fb591
Packit 8fb591
    print("\nChild of " + node.schema().name() + " is " + node.child().schema().name() + " \n ")
Packit 8fb591
Packit 8fb591
    print("tree_for\n")
Packit 8fb591
    data_list = node.child().child().tree_for()
Packit 8fb591
    for elem in data_list:
Packit 8fb591
        print("child of " + node.child().schema().name() + " is: " + elem.schema().name() + " type: " + str(elem.schema().nodetype()))
Packit 8fb591
Packit 8fb591
    print("\nschema tree_dfs\n")
Packit 8fb591
    schema_list = node.schema().tree_dfs()
Packit 8fb591
    for elem in schema_list:
Packit 8fb591
        print("schema name: " + elem.name() + " type: " + str(elem.nodetype()))