def get(self, request, tool_id): """ Get development scripts and files for tool """ jms = JobManager(user=request.user) dir_listing = jms.GetToolFiles(tool_id) return Response(dir_listing, status=200)
def get(self, request): """ Get queues """ jms = JobManager(user=request.user) queues = jms.GetQueues() return Response(json.dumps(queues, default=lambda o: o.__dict__))
def get(self, request): """ Get administrators """ jms = JobManager(user=request.user) admins = jms.GetAdministrators() return Response(json.dumps(admins, default=lambda o: o.__dict__))
def post(self, request, tool_id, file_name): """ Create a new file """ jms = JobManager(user=request.user) jms.CreateToolFile(tool_id, file_name) return Response(status=200)
def post(self, request, tool_id): """ Upload files for tool """ jms = JobManager(user=request.user) dir_listing = jms.UploadToolFiles(tool_id, request.FILES) return Response(dir_listing, status=200)
def delete(self, request, parameter_id): """ Delete parameter """ jms = JobManager(user=request.user) jms.DeleteParameter(parameter_id) return Response(status=200)
def delete(self, request, tool_id, user_name): """ Unshare a tool with a user """ jms = JobManager(user=request.user) jms.UnshareTool(tool_id, user_name) return Response()
def get(self, request): """ Get server settings """ jms = JobManager(user=request.user) settings = jms.GetSettings() return Response(json.dumps(settings, default=lambda o: o.__dict__, sort_keys=True))
def delete(self, request, category_id): """ Update tool category """ jms = JobManager(user=request.user) jms.DeleteCategory(category_id) return Response(status=200)
def delete(self, request, tool_id): """ Delete a tool """ jms = JobManager(user=request.user) jms.DeleteTool(tool_id) return Response(status=200)
def get(self, request): """ Get queue and node usage statistics for all nodes in the cluster """ jms = JobManager(user=request.user) dashboard = jms.GetDashboard() return Response(json.dumps(dashboard, default=lambda o: o.__dict__, sort_keys=True))
def get(self, request, job_id): """ Get the status ID of the job """ jms = JobManager(user=request.user) stage = jms.GetJob(job_id).JobStages.all()[0] return Response(stage.Status.StatusID)
def delete(self, request, cluster_id): """ Stop job """ jms = JobManager(user=request.user) jms.StopClusterJob(cluster_id) return Response()
def get(self, request, tool_id, file_name): """ Get file content """ jms = JobManager(user=request.user) content = jms.ReadToolFile(tool_id, file_name) return Response(content, status=200)
def delete(self, request, tool_id, file_name): """ Delete a file """ jms = JobManager(user=request.user) jms.DeleteToolFile(tool_id, file_name) return Response(status=200)
def delete(self, request, job_id): """ Delete job """ jms = JobManager(user=request.user) job = jms.DeleteJob(job_id) return Response()
def delete(self, request, workflow_id, user_name): """ Unshare a workflow with a user """ jms = JobManager(user=request.user) jms.UnshareWorkflow(workflow_id, user_name) return Response()
def delete(self, request, stage_id): """ Delete stage """ jms = JobManager(user=request.user) stage = jms.DeleteStage(stage_id) return Response()
def delete(self, request, workflow_id): """ Delete a workflow """ jms = JobManager(user=request.user) jms.DeleteWorkflow(workflow_id) return Response(status=200)
def delete(self, request, dependency_id): """ Delete stage dependency """ jms = JobManager(user=request.user) stages = jms.DeleteStageDependency(dependency_id) serializer = StageLevelSerializer(stages, many=True) return Response(serializer.data)
def get(self, request, workflow_id, version_num): """ Get workflow stages """ jms = JobManager(user=request.user) stages = jms.GetStages(workflow_id, version_num) serializer = StageLevelSerializer(stages, many=True) return Response(serializer.data)
def get(self, request, stage_id): """ Get stage details """ jms = JobManager(user=request.user) stage = jms.GetStage(stage_id) serializer = StageListSerializer(stage) return Response(serializer.data)
def delete(self, request, workflow_id): """ Make workflow private """ jms = JobManager(user=request.user) workflow = jms.UpdateWorkflowAvailability(workflow_id, False) serializer = WorkflowPermissionSerializer(workflow) return Response(serializer.data)
def put(self, request, workflow_id): """ Make workflow publically available """ jms = JobManager(user=request.user) workflow = jms.UpdateWorkflowAvailability(workflow_id, True) serializer = WorkflowPermissionSerializer(workflow) return Response(serializer.data)
def get(self, request, workflow_id): """ Get the access permissions for a workflow """ jms = JobManager(user=request.user) workflow = jms.GetWorkflow(workflow_id) serializer = WorkflowPermissionSerializer(workflow) return Response(serializer.data)
def get(self, request, workflow_id, version_num): """ Get a workflow version based on the WorkflowID and WorkflowVersionNum fields """ jms = JobManager(user=request.user) version = jms.GetWorkflowVersion(jms.GetWorkflow(workflow_id), version_num) serializer = WorkflowVersionDetailSerializer(version) return Response(serializer.data)
def get(self, request, workflow_id): """ Get all versions of a workflow """ jms = JobManager(user=request.user) versions = jms.GetWorkflowVersions(workflow_id) serializer = WorkflowVersionListSerializer(versions, many=True) return Response(serializer.data)
def get(self, request, workflow_id): """ Fetch workflow """ jms = JobManager(user=request.user) workflow = jms.GetWorkflow(tool_id) serializer = WorkflowListSerializer(workflow) return Response(serializer.data)
def delete(self, request, node_name): """ Delete node """ jms = JobManager(user=request.user) jms.DeleteNode(node_name) nodes = jms.GetNodes() return Response(json.dumps(nodes, default=lambda o: o.__dict__))
def get(self, request, job_stage_id): """ List job directory contents """ path = request.GET.get("path", "/") jms = JobManager(user=request.user) data = jms.get_job_directory_listing(job_stage_id, path) return Response(data)
def get(self, request): """ Get all workflows accessible to user """ jms = JobManager(user=request.user) workflows = jms.GetWorkflows() serializer = WorkflowListSerializer(workflows, many=True) return Response(serializer.data)
def get(self, request, job_stage_id): """ Get job file contents """ log = request.GET.get("log", None) if not log: #We are fetching a job file try: jms = JobManager(user=request.user) #create a temp copy filepath = request.GET.get("path", '') tmp_path = jms.get_tmp_job_file(job_stage_id, filepath) #Get file type mimetypes.init() name, file_ext = os.path.splitext(os.path.basename(filepath)) type = mimetypes.types_map.get(file_ext.lower(), "text/plain") if type == "application/javascript": type = "text/plain" if request.method == "HEAD": response = HttpResponse("", content_type=type) return response else: wrapper = FileWrapper(open(tmp_path, "rb")) response = HttpResponse(wrapper, content_type=type) response['Content-Length'] = os.path.getsize(tmp_path) return response except Exception, err: f = open("/tmp/file.txt", "w") f.write(str(err)) f.close() return Response(str(err), status=400)
return response else: wrapper = FileWrapper(open(tmp_path, "rb")) response = HttpResponse(wrapper, content_type=type) response['Content-Length'] = os.path.getsize(tmp_path) return response except Exception, err: f = open("/tmp/file.txt", "w") f.write(str(err)) f.close() return Response(str(err), status=400) else: #We are fetching a log file jms = JobManager(user=request.user) if log.lower() == "error": data = jms.get_job_error(job_stage_id) elif log.lower() == "output": data = jms.get_job_output(job_stage_id) return Response(data) class DirectoryDetail(APIView): permission_classes = (IsAuthenticated,) def get(self, request, job_stage_id): """