|
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()))
|