Handle Observer being down

pull/17/head
db0 2023-07-09 17:54:48 +02:00
parent 3cf4ebc797
commit 28e59ede86
2 changed files with 16 additions and 1 deletions

View File

@ -23,6 +23,8 @@ handle_bad_request = api.errorhandler(e.BadRequest)(e.handle_bad_requests)
handle_forbidden = api.errorhandler(e.Forbidden)(e.handle_bad_requests)
handle_unauthorized = api.errorhandler(e.Unauthorized)(e.handle_bad_requests)
handle_not_found = api.errorhandler(e.NotFound)(e.handle_bad_requests)
handle_internal_server_error = api.errorhandler(e.InternalServerError)(e.handle_bad_requests)
handle_service_unavailable = api.errorhandler(e.ServiceUnavailable)(e.handle_bad_requests)
# Used to for the flask limiter, to limit requests per url paths
def get_request_path():
@ -46,7 +48,10 @@ class Suspicions(Resource):
'''A List with the details of all suspicious instances
'''
self.args = self.get_parser.parse_args()
sus_instances = retrieve_suspicious_instances(self.args.activity_suspicion, self.args.active_suspicion)
try:
sus_instances = retrieve_suspicious_instances(self.args.activity_suspicion, self.args.active_suspicion)
except Exception as err:
raise e.ServiceUnavailable("Could not retrieve list from Fediseer Observer. Please try again later")
if self.args.csv:
return {"csv": ",".join([instance["domain"] for instance in sus_instances])},200
if self.args.domains:

View File

@ -26,6 +26,16 @@ class Locked(wze.Locked):
self.specific = message
self.log = log
class InternalServerError(wze.InternalServerError):
def __init__(self, message, log=None):
self.specific = message
self.log = log
class ServiceUnavailable(wze.ServiceUnavailable):
def __init__(self, message, log=None):
self.specific = message
self.log = log
def handle_bad_requests(error):
'''Namespace error handler'''
if error.log: