EOX GitLab Instance

Skip to content
Snippets Groups Projects
Commit 81d5a1e1 authored by Mussab Abdalla's avatar Mussab Abdalla
Browse files

save/move xml

parent cdb74e5a
No related branches found
No related tags found
2 merge requests!55Production release 1.2.0,!50Ingestor status
......@@ -35,7 +35,7 @@ from flask import Flask, request, Response
import redis
from ingestor.browse_report import parse_browse_report
from ingestor.util import converter, save_json, browse_name
from ingestor.util import converter, save_report, browse_name
application = Flask(__name__)
......@@ -94,9 +94,9 @@ def ingest():
try:
client.lpush(queue_name, queue_content)
save_json(filename, queue_content, True)
save_report(filename, request.data, True)
return Response(status=202)
except Exception as e:
save_json(filename, queue_content, False)
save_report(filename, request.data, False)
return Response(str(e), status=400)
......@@ -35,7 +35,7 @@ import pyinotify
import redis
from ingestor.browse_report import parse_browse_report
from ingestor.util import converter, save_json, browse_name
from ingestor.util import converter, save_report, browse_name
logger = logging.getLogger(__name__)
......@@ -83,27 +83,24 @@ watchmanager = pyinotify.WatchManager()
class EventHandler(pyinotify.ProcessEvent):
def process_IN_CLOSE_WRITE(self, event):
logger.info(f'Parsing browse file: {event.pathname}')
with open(event.pathname) as f:
browse_report = parse_browse_report(f)
logger.debug(browse_report)
if isinstance(browse_report, str):
queue_content = browse_report
filename = queue_content
queue_content = event.pathname
else:
queue_content = json.dumps(
browse_report, default=converter
)
filename = browse_name(browse_report)
try:
client.lpush(queue_name, queue_content)
save_json(filename, queue_content, True)
save_report('', event.pathname, True)
except Exception as e:
save_json(filename, queue_content, False)
save_report('', event.pathname, False)
logger.exception(e)
handler = EventHandler()
......
......@@ -27,6 +27,7 @@
import json
import os
import shutil
from datetime import datetime
......@@ -40,16 +41,19 @@ def converter(o):
if isinstance(o, datetime):
return o.isoformat()
def save_json(filename:str, data, success: bool):
def save_report(filename:str, data, success: bool):
if success:
save_dir = os.environ['INGESTOR_SUCCESS_DIR']
else:
save_dir = os.environ['INGESTOR_FAIL_DIR']
with open("%s/%s.json" % (save_dir, filename), "w") as outfile:
outfile.write(data)
if isinstance(data, str):
shutil.move(data, save_dir)
else :
with open(os.path.join(save_dir, '%s.xml' % filename), "w") as outfile:
outfile.write(data)
def browse_name(report):
return '_'.join(browse["browse_identifier"] for browse in report["browses"])
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment