Source
xxxxxxxxxx
import os
import time
import threading
from casac import casac
class TelemetryLogMonitor:
def __init__(self):
self.showWarning = True
# Limit in kilobytes
def isWithinLimit(self, filename, limit, casa):
try:
filesize = os.path.getsize(filename)/1024
if (filesize > limit):
if (self.showWarning):
print "Logfile size is too large. Disabling telemetry."
print "Filesize: " + str(filesize)
print "Limit: " + str(limit)
casa['state']['telemetry-enabled'] = False
self.showWarning = False
except OSError:
# If file doesn't exist, we'll create a new one
pass
# Else if telemetry disabled enable it again?
def monitorLogFileSize(self, filename, limit, interval, casa):
while (True):
self.isWithinLimit (filename, limit, casa)
time.sleep(interval)
def start(self, filename, limit, interval, casa):
try:
logmonitor_thread = threading.Thread(target=self.monitorLogFileSize, args=[filename, limit, interval, casa])
logmonitor_thread.start()
except (KeyboardInterrupt, SystemExit):
cleanup_stop_thread()
sys.exit()