From ff3eecb980bfdc8d43d2ed3a4c786d634fa6f4e2 Mon Sep 17 00:00:00 2001 From: Jessica Wagantall Date: Tue, 1 Dec 2020 11:52:01 -0800 Subject: Migrate sli-northbound repo Migrate sli-northbound repo files into new directory "northbound". Signed-off-by: Jessica Wagantall --- .../model/scripts/python/yang2props.py | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 northbound/daexim-offsite-backup/model/scripts/python/yang2props.py (limited to 'northbound/daexim-offsite-backup/model/scripts') diff --git a/northbound/daexim-offsite-backup/model/scripts/python/yang2props.py b/northbound/daexim-offsite-backup/model/scripts/python/yang2props.py new file mode 100755 index 000000000..97ceaa760 --- /dev/null +++ b/northbound/daexim-offsite-backup/model/scripts/python/yang2props.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 + +import re +import sys + + +# Convert word from foo-bar to FooBar +# words begining with a digit will be converted to _digit +def to_enum(s): + if s[0].isdigit(): + s = "_" + s + else: + s = s[0].upper() + s[1:] + return re.sub(r'(?!^)-([a-zA-Z])', lambda m: m.group(1).upper(), s) + +leaf = "" +val = "" +li = [] + +if len(sys.argv) < 3: + print('yang2props.py ') + sys.exit(2) + +with open(sys.argv[1], "r") as ins: + for line in ins: + # if we see a leaf save the name for later + if "leaf " in line: + match = re.search(r'leaf (\S+)', line) + if match: + leaf = match.group(1) + + # if we see enum convert the value to enum format and see if it changed + # if the value is different write a property entry + if "enum " in line: + match = re.search(r'enum "(\S+)";', line) + if match: + val = match.group(1) + enum = to_enum(val) + + # see if converting to enum changed the string + if val != enum: + property = "yang."+leaf+"."+enum+"="+val + if property not in li: + li.append( property) + + +with open(sys.argv[2], "w") as fo: + fo.write("# yang conversion properties \n") + fo.write("# used to convert Enum back to the original yang value \n") + fo.write("\n".join(li)) + fo.write("\n") + -- cgit 1.2.3-korg