diff options
author | Skip Wonnell <kw5258@att.com> | 2017-08-14 17:47:10 -0500 |
---|---|---|
committer | Patrick Brady <pb071s@att.com> | 2017-08-18 05:46:15 +0000 |
commit | ab6c2c0cd441cf40723016e9a82aeeeb933fec7e (patch) | |
tree | 10d9de942694ca129cfc78d13cf2269f5c37cfc9 /appc-inbound/appc-artifact-handler/model/scripts | |
parent | 5166a76913fcb658be58adffed441590979e41cf (diff) |
Initial adds artifact handler and design services
asdc-artifact-handler: an interface to receive artifacts distributed
by SDC and persist them into the local database.
appc-design-services: an interface to manage VNF configuration
artifacts, primarily those generated by the configuration design tool.
Includes these user stories: APPC-28/85
Change-Id: Ib207070d4593554fa424fc69d9c77a6cd5349fec
Signed-off-by: Skip Wonnell <kw5258@att.com>
Issue-Id: APPC-9
Diffstat (limited to 'appc-inbound/appc-artifact-handler/model/scripts')
-rwxr-xr-x | appc-inbound/appc-artifact-handler/model/scripts/python/yang2props.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/appc-inbound/appc-artifact-handler/model/scripts/python/yang2props.py b/appc-inbound/appc-artifact-handler/model/scripts/python/yang2props.py new file mode 100755 index 000000000..559d31b8b --- /dev/null +++ b/appc-inbound/appc-artifact-handler/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 <input yang> <output properties>' + 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() + + |