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