JIRA:PARSER-1 -Python script for translation patch set-4 89/2989/4
authorShiva Charan <shiva-charan.m-s@hpe.com>
Tue, 3 Nov 2015 12:26:58 +0000 (06:26 -0600)
committershiva-charan.m-s <shiva-charan.m-s@hp.com>
Thu, 10 Dec 2015 14:06:17 +0000 (08:06 -0600)
Signed-off-by: shiva-charan.m-s <shiva-charan.m-s@hp.com>
yang2tosca/tosca_translator.py [new file with mode: 0644]

diff --git a/yang2tosca/tosca_translator.py b/yang2tosca/tosca_translator.py
new file mode 100644 (file)
index 0000000..afbb3a1
--- /dev/null
@@ -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)