summaryrefslogtreecommitdiffstats
path: root/yang2tosca
diff options
context:
space:
mode:
Diffstat (limited to 'yang2tosca')
-rw-r--r--yang2tosca/tosca_translator.py62
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)