def pipelines_json(project_uuid, pipeline_uuid): pipeline_json_path = get_pipeline_path( pipeline_uuid, project_uuid, request.args.get("experiment_uuid"), request.args.get("pipeline_run_uuid"), ) if request.method == "POST": pipeline_directory = get_pipeline_directory( pipeline_uuid, project_uuid, request.args.get("experiment_uuid"), request.args.get("pipeline_run_uuid"), ) # parse JSON pipeline_json = json.loads(request.form.get("pipeline_json")) # first create all files part of pipeline_json definition # TODO: consider removing other files (no way to do this reliably, # special case might be rename) create_pipeline_files(pipeline_json, pipeline_directory, project_uuid) # side effect: for each Notebook in de pipeline.json set the correct kernel pipeline_set_notebook_kernels(pipeline_json, pipeline_directory, project_uuid) with open(pipeline_json_path, "w") as json_file: json_file.write(json.dumps(pipeline_json, indent=4)) # Analytics call send_anonymized_pipeline_definition(app, pipeline_json) return jsonify({"message": "Successfully saved pipeline."}) elif request.method == "GET": if not os.path.isfile(pipeline_json_path): return ( jsonify({ "success": False, "reason": ".orchest file doesn't exist at location %s" % pipeline_json_path, }), 404, ) else: with open(pipeline_json_path) as json_file: return jsonify({ "success": True, "pipeline_json": json_file.read() }) return ""
def pipelines_json(project_uuid, pipeline_uuid): pipeline_json_path = get_pipeline_path( pipeline_uuid, project_uuid, request.args.get("job_uuid"), request.args.get("pipeline_run_uuid"), ) if request.method == "POST": pipeline_directory = get_pipeline_directory( pipeline_uuid, project_uuid, request.args.get("job_uuid"), request.args.get("pipeline_run_uuid"), ) # Parse JSON. pipeline_json = json.loads(request.form.get("pipeline_json")) # Side effect: for each Notebook in de pipeline.json set the # correct kernel. pipeline_set_notebook_kernels( pipeline_json, pipeline_directory, project_uuid ) with open(pipeline_json_path, "w") as json_file: json.dump(pipeline_json, json_file, indent=4, sort_keys=True) # Analytics call. send_anonymized_pipeline_definition(app, pipeline_json) return jsonify({"message": "Successfully saved pipeline."}) elif request.method == "GET": if not os.path.isfile(pipeline_json_path): return ( jsonify( { "success": False, "reason": ".orchest file doesn't exist at location %s" % pipeline_json_path, } ), 404, ) else: with open(pipeline_json_path, "r") as json_file: pipeline_json = json.load(json_file) # json.dumps because the front end expects it as a # string. return jsonify( {"success": True, "pipeline_json": json.dumps(pipeline_json)} ) return ""
def pipelines_json(project_uuid, pipeline_uuid): pipeline_json_path = get_pipeline_path( pipeline_uuid, project_uuid, request.args.get("job_uuid"), request.args.get("pipeline_run_uuid"), ) if request.method == "POST": pipeline_directory = get_pipeline_directory( pipeline_uuid, project_uuid, request.args.get("job_uuid"), request.args.get("pipeline_run_uuid"), ) # Parse JSON. pipeline_json = json.loads(request.form.get("pipeline_json")) # First create all files part of pipeline_json definition # TODO: consider removing other files (no way to do this # reliably, special case might be rename). create_pipeline_files(pipeline_json, pipeline_directory, project_uuid) # Side effect: for each Notebook in de pipeline.json set the # correct kernel. pipeline_set_notebook_kernels(pipeline_json, pipeline_directory, project_uuid) with open(pipeline_json_path, "w") as json_file: json.dump(pipeline_json, json_file, indent=4, sort_keys=True) # Analytics call. send_anonymized_pipeline_definition(app, pipeline_json) return jsonify({"message": "Successfully saved pipeline."}) elif request.method == "GET": if not os.path.isfile(pipeline_json_path): return ( jsonify({ "success": False, "reason": ".orchest file doesn't exist at location %s" % pipeline_json_path, }), 404, ) else: with open(pipeline_json_path) as json_file: pipeline_json = json.load(json_file) # Take care of old pipelines with no defined params. if "parameters" not in pipeline_json: pipeline_json["parameters"] = {} # json.dumps because the front end expects it as a # string. return jsonify({ "success": True, "pipeline_json": json.dumps(pipeline_json) }) return ""