Update dmi-registry yang to support cmHandle State
[cps.git] / cps-ri / src / main / resources / yangResourceCsvGenerator.py
index 9a4077b..3a076d4 100644 (file)
 
 
 import csv
+import datetime
 import hashlib
 import sys
+import re
 
 yang_source = ''
 checksum = ''
+regexForModuleName = '(?<=module)(.*)(?={)'
+regexForRevision = '(?<=revision)(.*)(?={)'
 
-for yang_source in sys.argv[1:]:
-    checksum = hashlib.sha256(str(yang_source).encode()).hexdigest()
+def main():
+    for yang_source in sys.argv[1:]:
+        checksum = hashlib.sha256(str(yang_source).encode()).hexdigest()
 
-with open('changelog/db/changes/data/yang-models/' + yang_source + '.yang') as content:
-    dmiRegistry = content.read()
+        with open('changelog/db/changes/data/yang-models/' + yang_source + '.yang', 'r') as content:
+            dmiRegistry = content.read()
 
-# open the file in the write mode
-with open('changelog/db/changes/data/dmi/generated-csv/generated_yang_resource_' + yang_source + '.csv', 'w', newline='') \
-        as file:
-    writer = csv.writer(file, delimiter='|')
-    writer.writerow(["name", "content", "checksum"])
-    writer.writerow([yang_source + '.yang', dmiRegistry, checksum])
+        try:
+            latestRevision = re.search(regexForRevision, dmiRegistry).group(0).replace('\"','').strip()
+        except:
+            print("ERROR IN in yangResourceCsvGenerator.py: Unable to find revision for " + yang_source + '.yang')
+
+        try:
+            module_name = re.search(regexForModuleName, dmiRegistry).group(0).strip()
+        except:
+            print("ERROR IN in yangResourceCsvGenerator.py: Unable to find module name for " + yang_source + '.yang')
+
+        #If true, file was created after module_name and revision columns were added to yang-resources table
+        writeWithModuleNameAndRevision = yang_source != 'dmi-registry@2021-12-13'
+
+        try:
+            # open the file in the write mode
+            with open('changelog/db/changes/data/dmi/generated-csv/generated_yang_resource_' + yang_source + '.csv', 'w', newline='') \
+                    as file:
+                writer = csv.writer(file, delimiter='|')
+                if(writeWithModuleNameAndRevision):
+                    writer.writerow(["name", "content", "checksum", "module_name", "revision"])
+                    writer.writerow([yang_source + '.yang', dmiRegistry, checksum, module_name, latestRevision])
+                else:
+                    writer.writerow(["name", "content", "checksum"])
+                    writer.writerow([yang_source + '.yang', dmiRegistry, checksum])
+        except:
+            print("ERROR IN in yangResourceCsvGenerator.py: Unable to write to changelog/db/changes/data/dmi/generated-csv/generated_yang_resource_" + yang_source + ".csv")
+
+
+main()
\ No newline at end of file