Ejemplo n.º 1
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 2
0
Archivo: views.py Proyecto: triicst/JMS
 def get(self, request):
     """
     Get queues
     """
     jms = JobManager(user=request.user)
     queues = jms.GetQueues()
     return Response(json.dumps(queues, default=lambda o: o.__dict__))
Ejemplo n.º 3
0
Archivo: views.py Proyecto: triicst/JMS
 def get(self, request):
     """
     Get administrators
     """
     jms = JobManager(user=request.user) 
     admins = jms.GetAdministrators()
     return Response(json.dumps(admins, default=lambda o: o.__dict__))
Ejemplo n.º 4
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 5
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 6
0
Archivo: views.py Proyecto: triicst/JMS
 def delete(self, request, parameter_id):
     """
     Delete parameter
     """
     jms = JobManager(user=request.user)
     jms.DeleteParameter(parameter_id)
     
     return Response(status=200)
Ejemplo n.º 7
0
Archivo: views.py Proyecto: triicst/JMS
 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()
Ejemplo n.º 8
0
Archivo: views.py Proyecto: triicst/JMS
 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))
Ejemplo n.º 9
0
Archivo: views.py Proyecto: triicst/JMS
 def delete(self, request, category_id):
     """
     Update tool category
     """
     jms = JobManager(user=request.user)
     jms.DeleteCategory(category_id)
     
     return Response(status=200)
Ejemplo n.º 10
0
Archivo: views.py Proyecto: triicst/JMS
 def delete(self, request, tool_id):
     """
     Delete a tool
     """
     jms = JobManager(user=request.user)
     jms.DeleteTool(tool_id)
     
     return Response(status=200)
Ejemplo n.º 11
0
Archivo: views.py Proyecto: triicst/JMS
 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))
Ejemplo n.º 12
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 13
0
Archivo: views.py Proyecto: triicst/JMS
 def delete(self, request, cluster_id):
     """
     Stop job
     """
     jms = JobManager(user=request.user)
     jms.StopClusterJob(cluster_id)
     
     return Response()
Ejemplo n.º 14
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 15
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 16
0
Archivo: views.py Proyecto: triicst/JMS
 def delete(self, request, job_id):
     """
     Delete job
     """
     jms = JobManager(user=request.user)
     job = jms.DeleteJob(job_id)
     
     return Response()
Ejemplo n.º 17
0
Archivo: views.py Proyecto: triicst/JMS
 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()
Ejemplo n.º 18
0
Archivo: views.py Proyecto: triicst/JMS
 def delete(self, request, stage_id):
     """
     Delete stage
     """
     jms = JobManager(user=request.user)
     stage = jms.DeleteStage(stage_id)
     
     return Response()
Ejemplo n.º 19
0
Archivo: views.py Proyecto: triicst/JMS
 def delete(self, request, workflow_id):
     """
     Delete a workflow
     """
     jms = JobManager(user=request.user)
     jms.DeleteWorkflow(workflow_id)
     
     return Response(status=200)
Ejemplo n.º 20
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 21
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 22
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 23
0
Archivo: views.py Proyecto: triicst/JMS
 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)    
Ejemplo n.º 24
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 25
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 26
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 27
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 28
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 29
0
Archivo: views.py Proyecto: triicst/JMS
 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__))
Ejemplo n.º 30
0
Archivo: views.py Proyecto: RUBi-ZA/JMS
 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)
Ejemplo n.º 31
0
Archivo: views.py Proyecto: triicst/JMS
 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)
Ejemplo n.º 32
0
Archivo: views.py Proyecto: RUBi-ZA/JMS
 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) 
Ejemplo n.º 33
0
Archivo: views.py Proyecto: RUBi-ZA/JMS
                    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):
        """