diff options
-rw-r--r-- | yang2tosca/tosca_translator.py | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/yang2tosca/tosca_translator.py b/yang2tosca/tosca_translator.py new file mode 100644 index 0000000..afbb3a1 --- /dev/null +++ b/yang2tosca/tosca_translator.py @@ -0,0 +1,62 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import sys +import getopt +import argparse +from lxml import etree + + +def tosca_translator(file_name): + if os.path.exists(file_name): + var = file_name + file_format = var.split('.') + if len(file_format) == 2: + if file_format[1] == 'yaml' or file_format[1] == 'yang': + print("Its a yaml file") + os.system('pyang -f yin '+var + ' -o ' + file_format[0]+'.xml') + elif file_format[1] == 'xml': + print ("Its a "+file_format[1]+" file") + + else: + print ("File format not supported exiting script.") + exit() + else: + print ("File format not supported exiting script.") + exit() + tree = etree.parse(file_format[0]+'.xml') + + doc = tree.getroot() + + xslt_root = etree.parse('tosca_transformer.xslt') + + transform = etree.XSLT(xslt_root) + + result_tree = transform(doc) + output_file = file_format[0]+'_tosca.yaml' + + f = open(output_file, "w") + f.write(str(result_tree)) + f.close() + print ("TOSCA file generated with name "+output_file) + else: + print ("File does not exist, exiting the script") + exit() +if __name__ == '__main__': + parser = argparse.ArgumentParser(add_help=True) + parser.add_argument('-n', '--filename', dest='filename', required=True, + help='Please enter the YANG file name: ') + args = parser.parse_args() + file_name = str(args.filename) + tosca_translator(file_name) |