|
|
|
@ -122,3 +122,33 @@ class CreateWatch(Resource):
|
|
|
|
|
return {'status': "OK"}, 200
|
|
|
|
|
|
|
|
|
|
return list, 200
|
|
|
|
|
|
|
|
|
|
class SystemInfo(Resource):
|
|
|
|
|
def __init__(self, **kwargs):
|
|
|
|
|
# datastore is a black box dependency
|
|
|
|
|
self.datastore = kwargs['datastore']
|
|
|
|
|
self.update_q = kwargs['update_q']
|
|
|
|
|
|
|
|
|
|
@auth.check_token
|
|
|
|
|
def get(self):
|
|
|
|
|
import time
|
|
|
|
|
overdue_watches = []
|
|
|
|
|
|
|
|
|
|
# Check all watches and report which have not been checked but should have been
|
|
|
|
|
|
|
|
|
|
for uuid, watch in self.datastore.data.get('watching', {}).items():
|
|
|
|
|
# see if now - last_checked is greater than the time that should have been
|
|
|
|
|
# this is not super accurate (maybe they just edited it) but better than nothing
|
|
|
|
|
t = watch.threshold_seconds()
|
|
|
|
|
if not t:
|
|
|
|
|
t = self.datastore.threshold_seconds
|
|
|
|
|
time_since_check = time.time() - watch.get('last_checked')
|
|
|
|
|
if time_since_check > t:
|
|
|
|
|
overdue_watches.append(uuid)
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
'queue_size': self.update_q.qsize(),
|
|
|
|
|
'overdue_watches': overdue_watches,
|
|
|
|
|
'uptime': round(time.time() - self.datastore.start_time, 2),
|
|
|
|
|
'watch_count': len(self.datastore.data.get('watching', {}))
|
|
|
|
|
}, 200
|
|
|
|
|