diff options
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/acme/srtool_jira.py | 10 | ||||
-rwxr-xr-x | bin/common/srtool_common.py | 5 | ||||
-rwxr-xr-x | bin/common/srtool_defect.py | 13 | ||||
-rwxr-xr-x | bin/common/srtool_update.py | 32 | ||||
-rwxr-xr-x | bin/mitre/srtool_mitre.py | 2 | ||||
-rwxr-xr-x | bin/nist/srtool_nist.py | 6 |
6 files changed, 39 insertions, 29 deletions
diff --git a/bin/acme/srtool_jira.py b/bin/acme/srtool_jira.py index a0a90851..dc72404b 100755 --- a/bin/acme/srtool_jira.py +++ b/bin/acme/srtool_jira.py @@ -214,10 +214,10 @@ def do_update_jira(): log.write("=============================================================================\n") log.write("\n") - # Reset datasource's update_time as today - sql = "UPDATE orm_datasource SET update_time=?,lastModifiedDate=? WHERE data='jira_status'" - date_string = datetime.today().strftime('%Y-%m-%d %H:%M:%S') - c.execute(sql, (date_string,date_string,) ) + # Reset datasource's lastModifiedDate as today + sql = "UPDATE orm_datasource SET lastModifiedDate=? WHERE name='Jira'" + date_string = datetime.now().strftime(ORM.DATASOURCE_DATETIME_FORMAT) + c.execute(sql, (date_string,) ) conn.commit() c.close() @@ -433,7 +433,7 @@ def update_project_issues(project, issues, conn, log): sql = ''' INSERT into orm_cve (name, name_sort, priority, status, comments, comments_private, cve_data_type, cve_data_format, cve_data_version, public, publish_state, publish_date, description, publishedDate, lastModifiedDate, recommend, recommend_list, cvssV3_baseScore, cvssV3_baseSeverity, cvssV2_baseScore, cvssV2_severity, packages, srt_updated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''' - c.execute(sql, (cve_name, cve_name_sort, d.priority, cve_status, '', '', '', '', '', 1, 0, '', 'Created from defect %s' % d.name, '', '', 0, '', '', '', '', '', '', datetime.now())) + c.execute(sql, (cve_name, cve_name_sort, d.priority, cve_status, '', '', '', '', '', 1, 0, '', 'Created from defect %s' % d.name, '', '', 0, '', '', '', '', '', '', datetime.now().strftime(ORM.DATASOURCE_DATETIME_FORMAT))) # Find the new id print("FINDING CVE ID for %s\n" % cve_name) diff --git a/bin/common/srtool_common.py b/bin/common/srtool_common.py index 46996aec..4cba2dc2 100755 --- a/bin/common/srtool_common.py +++ b/bin/common/srtool_common.py @@ -360,7 +360,7 @@ def score_new_cves(cve_filter): packages = ?, score_date = ? WHERE id = ?''' - cur_write.execute(sql, (recommend, recommend_list, cve_packages, time_now.strftime('%Y-%m-%d %H:%M:%S'), cve[ORM.CVE_ID])) + cur_write.execute(sql, (recommend, recommend_list, cve_packages, time_now.strftime(ORM.DATASOURCE_DATETIME_FORMAT), cve[ORM.CVE_ID])) write_count += 1 if verbose: print(" %d:%s:%s" % (recommend,recommend_list,cve_packages)) @@ -499,9 +499,12 @@ def gen_schema_header(): fd.write(" %s_%s = '%s'\n" % ('DATASOURCE','FREQUENCY_STR', \ 'Minute,Hourly,Daily,Weekly,Monthly,OnDemand,OnStartup' \ )) + fd.write(" %s_%s = '%s'\n" % ('DATASOURCE','DATE_FORMAT','%Y-%m-%d')) + fd.write(" %s_%s = '%s'\n" % ('DATASOURCE','DATETIME_FORMAT','%Y-%m-%d %H:%M:%S')) fd.write("\n\n") fd.write(" # General routine to return string name of a constant (e.g. 'DATASOURCE_FREQUENCY_STR')\n") + fd.write(" @staticmethod\n") fd.write(" def get_orm_string(value,string_set):\n") fd.write(" string_list = string_set.split(',')\n") fd.write(" string_count = len(string_list)\n") diff --git a/bin/common/srtool_defect.py b/bin/common/srtool_defect.py index 7cee1f85..d2a6878f 100755 --- a/bin/common/srtool_defect.py +++ b/bin/common/srtool_defect.py @@ -46,6 +46,11 @@ except ImportError: srtDbName = 'srt.sqlite' +# 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 common.srt_schema import ORM + ################################# # Helper methods # @@ -178,10 +183,10 @@ def update_defects(): log.write("=============================================================================\n") log.write("\n") - # Reset datasource's update_time as today - sql = "UPDATE orm_datasource SET update_time=?,lastModifiedDate=? WHERE data='defect_status'" - date_string = datetime.today().strftime('%Y-%m-%d %H:%M:%S') - c.execute(sql, (date_string,date_string,) ) + # Reset datasource's lastModifiedDate as today + sql = "UPDATE orm_datasource SET lastModifiedDate=? WHERE name='Defect'" + date_string = datetime.today().strftime(ORM.DATASOURCE_DATETIME_FORMAT) + c.execute(sql, (date_string,) ) conn.commit() c.close() diff --git a/bin/common/srtool_update.py b/bin/common/srtool_update.py index 64501f69..c282f40b 100755 --- a/bin/common/srtool_update.py +++ b/bin/common/srtool_update.py @@ -94,9 +94,9 @@ def run_updates(force_all,name_filter,is_trial): cur_write = conn.cursor() time_now = datetime.now() #datetime.now(pytz.utc) - print("SRTool Update: time_now = %s" % time_now.strftime('%Y-%m-%d %H:%M:%S')) + print("SRTool Update: time_now = %s" % time_now.strftime(ORM.DATASOURCE_DATETIME_FORMAT)) status_str = "====================\n" - status_str += "Update: Date=%s,Filter='%s',Force=%s\n" % (time_now.strftime('%Y-%m-%d %H:%M:%S'),name_filter,force_all) + status_str += "Update: Date=%s,Filter='%s',Force=%s\n" % (time_now.strftime(ORM.DATASOURCE_DATETIME_FORMAT),name_filter,force_all) #get sources that have update command sources = cur.execute("SELECT * FROM orm_datasource").fetchall() @@ -125,11 +125,11 @@ def run_updates(force_all,name_filter,is_trial): # Get the datasource values update_frequency = source[ORM.DATASOURCE_UPDATE_FREQUENCY] - if not source[ORM.DATASOURCE_LASTMODIFIEDDATE]: - # Force update if no registed modified date for datasource (e.g. Init) - last_modified_date = time_now-timedelta(days=365) + if not source[ORM.DATASOURCE_LASTUPDATEDDATE]: + # Force update if no registed updated date for datasource (i.e. at Init phase) + last_updated_date = time_now - timedelta(days=365) else: - last_modified_date = datetime.strptime(source[ORM.DATASOURCE_LASTMODIFIEDDATE], '%Y-%m-%d %H:%M:%S') + last_updated_date = datetime.strptime(source[ORM.DATASOURCE_LASTUPDATEDDATE], ORM.DATASOURCE_DATETIME_FORMAT) # Get the update presets update_time = source[ORM.DATASOURCE_UPDATE_TIME] delta_minutes = get_tag_key(update_time,'minutes',None) @@ -156,7 +156,7 @@ def run_updates(force_all,name_filter,is_trial): continue elif ORM.DATASOURCE_ONSTARTUP == update_frequency: continue - testdate = last_modified_date + testdiff + testdate = last_updated_date + testdiff # Adjust for update presets if None != delta_minute: @@ -175,10 +175,10 @@ def run_updates(force_all,name_filter,is_trial): # Not yet? if testdate > time_now: - status_str += " Skip '%s': update time not reached (%s)\n" % (source[ORM.DATASOURCE_DESCRIPTION],testdate.strftime('%Y-%m-%d %H:%M:%S')) + status_str += " Skip '%s': update time not reached (%s)\n" % (source[ORM.DATASOURCE_DESCRIPTION],testdate.strftime(ORM.DATASOURCE_DATETIME_FORMAT)) continue else: - status_str += " UPDATE '%s': update time reached (%s)\n" % (source[ORM.DATASOURCE_DESCRIPTION],testdate.strftime('%Y-%m-%d %H:%M:%S')) + status_str += " UPDATE '%s': update time reached (%s)\n" % (source[ORM.DATASOURCE_DESCRIPTION],testdate.strftime(ORM.DATASOURCE_DATETIME_FORMAT)) # Execute the update if is_trial: @@ -187,15 +187,15 @@ def run_updates(force_all,name_filter,is_trial): else: print("Update required\t...\texecuting '%s'" % (source[ORM.DATASOURCE_UPDATE])) status_str += " > EXECUTE: execute '%s'\n" % (source[ORM.DATASOURCE_UPDATE]) - master_write("SRTOOL_UPDATE:%s:%s:%s\n" %(time_now.strftime('%Y-%m-%d %H:%M:%S'),source[ORM.DATASOURCE_DESCRIPTION],source[ORM.DATASOURCE_UPDATE])) + master_write("SRTOOL_UPDATE:%s:%s:%s\n" %(time_now.strftime(ORM.DATASOURCE_DATETIME_FORMAT),source[ORM.DATASOURCE_DESCRIPTION],source[ORM.DATASOURCE_UPDATE])) update_command = source[ORM.DATASOURCE_UPDATE] if force_all: update_command += " --force" os.system(os.path.join(script_pathname, update_command)) - # Reset datasource's last_modified_date - sql = "UPDATE orm_datasource SET lastModifiedDate=? WHERE id=?" - cur_write.execute(sql, (time_now.strftime('%Y-%m-%d %H:%M:%S'),source[ORM.DATASOURCE_ID],) ) + # Reset datasource's last_updated_date + sql = "UPDATE orm_datasource SET lastUpdatedDate=? WHERE id=?" + cur_write.execute(sql, (time_now.strftime(ORM.DATASOURCE_DATETIME_FORMAT),source[ORM.DATASOURCE_ID],) ) conn.commit() conn.close() @@ -239,6 +239,8 @@ def list(): continue frequency_str = ORM.get_orm_string(source[ORM.DATASOURCE_UPDATE_FREQUENCY],ORM.DATASOURCE_FREQUENCY_STR) print(format_str % (source[ORM.DATASOURCE_DATA],source[ORM.DATASOURCE_SOURCE],source[ORM.DATASOURCE_NAME],frequency_str,source[ORM.DATASOURCE_UPDATE_TIME],source[ORM.DATASOURCE_DESCRIPTION])) + if verbose: + print(format_str % ('',source[ORM.DATASOURCE_LASTMODIFIEDDATE],source[ORM.DATASOURCE_LASTUPDATEDDATE],'','','')) ################################# # Start 'cron' job for updates @@ -246,7 +248,7 @@ def list(): def cron_start(): pid = os.getpid() - master_write("SRTOOL_UPDATE:%s:Starting -v update cron job, pid=%s\n" % (datetime.now().strftime('%Y-%m-%d %H:%M:%S'),pid)) + master_write("SRTOOL_UPDATE:%s:Starting -v update cron job, pid=%s\n" % (datetime.now().strftime(ORM.DATASOURCE_DATETIME_FORMAT),pid)) # Preserve this app's pid srt_update_pid_file = os.path.join(script_pathname,SRT_UPDATE_PID_FILE) @@ -276,7 +278,7 @@ def cron_stop(): # Kill the update app os.system("kill %s" % pid) os.system("rm %s" % srt_update_pid_file) - master_write("SRTOOL_UPDATE:%s:Stopping -^ update cron job, pid=%s\n" % (datetime.now().strftime('%Y-%m-%d %H:%M:%S'),pid)) + master_write("SRTOOL_UPDATE:%s:Stopping -^ update cron job, pid=%s\n" % (datetime.now().strftime(ORM.DATASOURCE_DATETIME_FORMAT),pid)) else: print("No running update task file found") diff --git a/bin/mitre/srtool_mitre.py b/bin/mitre/srtool_mitre.py index 5920b4dd..7504100e 100755 --- a/bin/mitre/srtool_mitre.py +++ b/bin/mitre/srtool_mitre.py @@ -110,7 +110,7 @@ def get_cve_default_status(is_init,publishedDate): date_delta = timedelta(days=cve_init_new_delta) init_new_date = datetime.now(pytz.utc) - date_delta - #print("\nPreset new data = %s" % init_new_date.strftime("%Y%m%d")) + #print("\nPreset new data = %s" % init_new_date.strftime("%Y-%m-%d")) init_new_date = init_new_date.strftime("%Y-%m-%d") if is_init: diff --git a/bin/nist/srtool_nist.py b/bin/nist/srtool_nist.py index 8138387c..e69420c7 100755 --- a/bin/nist/srtool_nist.py +++ b/bin/nist/srtool_nist.py @@ -111,7 +111,7 @@ def get_cve_default_status(is_init,publishedDate): date_delta = timedelta(days=cve_init_new_delta) init_new_date = datetime.now(pytz.utc) - date_delta - #print("\nPreset new data = %s" % init_new_date.strftime("%Y%m%d")) + #print("\nPreset new data = %s" % init_new_date.strftime("%Y-%m-%d")) init_new_date = init_new_date.strftime("%Y-%m-%d") if is_init: @@ -174,7 +174,7 @@ def update_nist(is_init,datasource_description, url_file, url_meta, cve_file, in # Force update if no registed modified date for datasource (e.g. Init) date_past = date_new-timedelta(days=1) else: - date_past = datetime.strptime(ds[ORM.DATASOURCE_LASTMODIFIEDDATE], '%Y-%m-%d %H:%M:%S') + date_past = datetime.strptime(ds[ORM.DATASOURCE_LASTMODIFIEDDATE], ORM.DATASOURCE_DATETIME_FORMAT) log.write("BEGINNING NIST %s\n" % ('INITS' if is_init else 'UPDATES')) #determine if we are out of date and apply updates if true @@ -200,7 +200,7 @@ def update_nist(is_init,datasource_description, url_file, url_meta, cve_file, in # Reset datasource's lastModifiedDate as today sql = "UPDATE orm_datasource SET lastModifiedDate = ? WHERE id='%s'" % ds[ORM.DATASOURCE_ID] - c.execute(sql, (datetime.today().strftime('%Y-%m-%d %H:%M:%S'),) ) + c.execute(sql, (datetime.today().strftime(ORM.DATASOURCE_DATETIME_FORMAT),) ) conn.commit() ####### |