diff options
Diffstat (limited to 'bin/common/srtool_backup.py')
-rwxr-xr-x | bin/common/srtool_backup.py | 56 |
1 files changed, 30 insertions, 26 deletions
diff --git a/bin/common/srtool_backup.py b/bin/common/srtool_backup.py index ec252cdb..6cd62573 100755 --- a/bin/common/srtool_backup.py +++ b/bin/common/srtool_backup.py @@ -40,30 +40,23 @@ import os import sys -import re -import csv -import xml.etree.ElementTree as ET import argparse import sqlite3 -import subprocess import json -import urllib +from datetime import datetime, date # load the srt.sqlite schema indexes dir_path = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) sys.path.insert(0, dir_path) -from srt_schema import ORM - -from datetime import datetime, date -from pprint import pprint -from urllib.request import urlopen, URLError -from urllib.parse import urlparse +from common.srt_schema import ORM -# setup +# Setup: lookupTable = [] cveIndex = {} db_change = False -is_verbose = False +verbose = False +cmd_skip = 0 +cmd_count = 0 srtDbName = 'srt.sqlite' # Save the "whole" table contents @@ -233,17 +226,27 @@ def restore_db_json(weeknum, weekday): #print("Inserting value %d" % i) #print("Restoring %s" % table + spinner[i % 4], end='\r', flush=True) #create sql query for updating subset of a record - "%s = ?," * len(dic) sql = "UPDATE %s SET " % table - sql += "%s = ?," * len(dic) % tuple(dic) - sql = sql[:-1] - sql += " WHERE %s=?" % primary_key + # Build member assignment string and values list + names = '' + values = [] + for n,v in dic: + if n == primary_key: + continue + names += "%s = ?," % n + values.append(v) + names = names[:-1] + sql += "%s WHERE %s=?" % (names,primary_key) + values.append(dic[primary_key]) + cur.execute(sql, values) + + #sql += ("%s = ?," * len(dic)) % tuple(dic) + #sql = sql[:-1] + #sql += " WHERE %s=?" % primary_key #add primary key at the end for WHERE clause - - temp = list(dic.values()) - temp.append(dic[primary_key]) - - cur.execute(sql, temp) + #temp = list(dic.values()) + #temp.append(dic[primary_key]) + #cur.execute(sql, temp) conn.commit() print("Finished %s " % table, end='\r', flush=True) print(" " * 80, end='\r') @@ -255,8 +258,10 @@ def restore_db_json(weeknum, weekday): def simulate_corruption(): conn = sqlite3.connect(srtDbName) cur = conn.cursor() - [cur.execute("DELETE FROM %s" % table) for table in WHOLE_TABLES] - #[cur.execute("DELETE FROM %s" % table[0]) for table in SUBSET_TABLES] + for table in WHOLE_TABLES: + cur.execute("DELETE FROM %s" % table) + #for table in SUBSET_TABLES: + # cur.execute("DELETE FROM %s" % table[0]) conn.commit() conn.close() @@ -268,6 +273,7 @@ def simulate_corruption(): def backup_cve_packages(): global cmd_skip + global cmd_count conn = sqlite3.connect(srtDbName) cur_cve = conn.cursor() @@ -495,7 +501,5 @@ def main(argv): master_log.close() if __name__ == '__main__': - global script_pathname - from os.path import abspath script_pathname = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(sys.argv[0])))) main(sys.argv[1:]) |