aboutsummaryrefslogtreecommitdiffstats
path: root/bin/common/srtool_update.py
diff options
context:
space:
mode:
Diffstat (limited to 'bin/common/srtool_update.py')
-rwxr-xr-xbin/common/srtool_update.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/bin/common/srtool_update.py b/bin/common/srtool_update.py
index ec8554ea..1ec6c0a3 100755
--- a/bin/common/srtool_update.py
+++ b/bin/common/srtool_update.py
@@ -40,6 +40,7 @@ master_log = ''
srtDbName = 'srt.sqlite'
UPDATE_STATUS_LOG = 'update_logs/update_status.log'
SRT_UPDATE_PID_FILE = '.srtupdate.pid'
+SRT_UPDATE_TASK_FILE = '.srtupdate.task'
#################################
# Common routines
@@ -193,11 +194,18 @@ def run_updates(force_all,name_filter,is_trial):
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(ORM.DATASOURCE_DATETIME_FORMAT),source[ORM.DATASOURCE_DESCRIPTION],source[ORM.DATASOURCE_UPDATE]))
+ master_write("SRTOOL_UPDATE:%s:%s:%s\n" %(datetime.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))
+ if update_command.startswith('./'):
+ update_command = os.path.join(script_pathname, update_command)
+ os.system("echo 'Update:%s,%s' > %s" % (datetime.now().strftime(ORM.DATASOURCE_DATETIME_FORMAT),update_command,os.path.join(script_pathname,SRT_UPDATE_TASK_FILE)))
+ os.system(update_command)
+ os.system("echo 'Done:%s,%s' >> %s" % (datetime.now().strftime(ORM.DATASOURCE_DATETIME_FORMAT),update_command,os.path.join(script_pathname,SRT_UPDATE_TASK_FILE)))
+ master_write("SRTOOL_UPDATE_DONE:%s:%s:%s\n" %(datetime.now().strftime(ORM.DATASOURCE_DATETIME_FORMAT),source[ORM.DATASOURCE_DESCRIPTION],source[ORM.DATASOURCE_UPDATE]))
+ # Take a breath, let any commits settle
+ time.sleep(10)
conn.close()
@@ -252,15 +260,20 @@ def list():
def cron_start():
pid = os.getpid()
master_write("SRTOOL_UPDATE:%s:Starting -v update cron job, pid=%s\n" % (datetime.now().strftime(ORM.DATASOURCE_DATETIME_FORMAT),pid))
+ os.system("echo 'Start:%s,<cron_start>' > %s" % (datetime.now().strftime(ORM.DATASOURCE_DATETIME_FORMAT),os.path.join(script_pathname,SRT_UPDATE_TASK_FILE)))
# Preserve this app's pid
srt_update_pid_file = os.path.join(script_pathname,SRT_UPDATE_PID_FILE)
with open(srt_update_pid_file, 'w') as pidfile:
pidfile.write("%s" % pid)
+ # Start with delay to allow SRTool to bootup
+ time.sleep(30)
+
# Loop until app is killed
extra_line = False
while True:
+ # Run the updates
run_updates(False,'all',False)
# Toggle an extra line in the log to make updates obvious
if extra_line:
@@ -282,6 +295,7 @@ def cron_stop():
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(ORM.DATASOURCE_DATETIME_FORMAT),pid))
+ os.system("echo 'Done:%s,<cron_stop>' > %s" % (datetime.now().strftime(ORM.DATASOURCE_DATETIME_FORMAT),os.path.join(script_pathname,SRT_UPDATE_TASK_FILE)))
else:
print("No running update task file found")