From ccc3eb162cb34478516a01e550ff1fa2cf17c1cf Mon Sep 17 00:00:00 2001 From: pritchardn <21726929@student.uwa.edu.au> Date: Wed, 14 Sep 2022 11:06:47 +0800 Subject: [PATCH] Changes gen_pg to return a JSONResponse. Corresponding update in main.js parses pgt string into Json object, before submitting to OOD endpoint. --- daliuge-translator/dlg/dropmake/web/main.js | 4 ++-- .../dlg/dropmake/web/translator_rest.py | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/daliuge-translator/dlg/dropmake/web/main.js b/daliuge-translator/dlg/dropmake/web/main.js index 8090f3b24..209a71bcd 100644 --- a/daliuge-translator/dlg/dropmake/web/main.js +++ b/daliuge-translator/dlg/dropmake/web/main.js @@ -679,7 +679,7 @@ async function restDeploy() { // fetch the PGT from this server console.log("sending request to ", pgt_url); console.log("graph name:", pgtName); - const pgt = await fetch(pgt_url, { + let pgt = await fetch(pgt_url, { method: 'GET', }) .then(handleFetchErrors) @@ -687,7 +687,7 @@ async function restDeploy() { .catch(function (error) { showMessageModal('Error', error + "\nGetting PGT unsuccessful: Unable to continue!"); }); - + pgt = JSON.parse(pgt); // This is for a deferred start of daliuge, e.g. on SLURM console.log("sending request to ", create_slurm_url); var body = [pgtName, pgt]; // we send the name in the body with the pgt diff --git a/daliuge-translator/dlg/dropmake/web/translator_rest.py b/daliuge-translator/dlg/dropmake/web/translator_rest.py index 911ee8cf5..1ebf35751 100644 --- a/daliuge-translator/dlg/dropmake/web/translator_rest.py +++ b/daliuge-translator/dlg/dropmake/web/translator_rest.py @@ -406,7 +406,7 @@ async def gen_pgt_post( detail="Graph partition exception {1}: {0}".format(trace_msg, lg_name)) -@app.get("/gen_pg", response_class=StreamingResponse, tags=["Original"]) +@app.get("/gen_pg", response_class=JSONResponse, tags=["Original"]) def gen_pg( request: Request, pgt_id: str = Query(description="The pgt_id used to internally reference this graph"), @@ -474,9 +474,7 @@ def gen_pg( pg_spec = pgtp.to_pg_spec([], ret_str=False, tpl_nodes_len=nnodes) pg_spec.append(reprodata) - response = StreamingResponse(json.dumps(pg_spec)) - response.headers["Content-Disposition"] = "attachment; filename=%s" % pgt_id - return response + return JSONResponse(pg_spec) try: mgr_client = CompositeManagerClient( host=mhost, port=mport, url_prefix=mprefix, timeout=30 @@ -505,9 +503,7 @@ def gen_pg( mhost, mport, mprefix, ssid )) else: - response = StreamingResponse(json.dumps(pg_spec)) - response.headers["Content-Disposition"] = "attachment; filename=%s" % pgt_id - return response + return JSONResponse(pg_spec) except restutils.RestClientException as re: raise HTTPException(status_code=500, detail="Failed to interact with DALiUGE Drop Manager: {0}".format(re)) @@ -900,3 +896,7 @@ def handler(*_args): port=options.port, debug=options.verbose ) + + +if __name__ == "__main__": + run(None, sys.argv[1:])