From 50bd4a0f591d9d00335b008a9e66f1906d40bc20 Mon Sep 17 00:00:00 2001 From: "Haddox, Anthony" Date: Wed, 16 Jan 2019 08:08:35 -0800 Subject: [CCSDK-953]Create Daexim Offsite Backup Inital commit of ODL feature Issue-ID: CCSDK-953 Change-Id: I7eb64fc9f414083db424700f2c901ba0a66cb0c4 Signed-off-by: Haddox, Anthony --- .../model/scripts/python/yang2props.py | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 daexim-offsite-backup/model/scripts/python/yang2props.py (limited to 'daexim-offsite-backup/model/scripts') diff --git a/daexim-offsite-backup/model/scripts/python/yang2props.py b/daexim-offsite-backup/model/scripts/python/yang2props.py new file mode 100755 index 000000000..559d31b8b --- /dev/null +++ b/daexim-offsite-backup/model/scripts/python/yang2props.py @@ -0,0 +1,57 @@ +#!/usr/bin/python + +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) + + +# Open output file +fo = open(sys.argv[2], "wb") +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") + +# Close opend file +fo.close() + + -- cgit 1.2.3-korg From fc54469234abffaefe85a6ac3e3e58fd2a869af1 Mon Sep 17 00:00:00 2001 From: Miroslav Los Date: Fri, 8 Nov 2019 14:05:39 +0100 Subject: Make yang2props used with python3 Besides print use, all indentation was normalized on spaces. The output is text, hence binary flag was dropped as well. Signed-off-by: Miroslav Los Issue-ID: CCSDK-1919 Change-Id: I5845f50c817454c91b6aec023b40fdbb6e3a9bcf --- .../model/scripts/python/yang2props.py | 41 ++++++++++------------ 1 file changed, 18 insertions(+), 23 deletions(-) (limited to 'daexim-offsite-backup/model/scripts') diff --git a/daexim-offsite-backup/model/scripts/python/yang2props.py b/daexim-offsite-backup/model/scripts/python/yang2props.py index 559d31b8b..97ceaa760 100755 --- a/daexim-offsite-backup/model/scripts/python/yang2props.py +++ b/daexim-offsite-backup/model/scripts/python/yang2props.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python3 import re import sys @@ -18,40 +18,35 @@ val = "" li = [] if len(sys.argv) < 3: - print 'yang2props.py ' - sys.exit(2) + 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) - + 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: + match = re.search(r'enum "(\S+)";', line) + if match: val = match.group(1) - enum = to_enum(val) + enum = to_enum(val) # see if converting to enum changed the string - if val != enum: + if val != enum: property = "yang."+leaf+"."+enum+"="+val - if property not in li: - li.append( property) - + if property not in li: + li.append( property) -# Open output file -fo = open(sys.argv[2], "wb") -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") -# Close opend file -fo.close() +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