示例#1
0
    def get(self, request, pk, format=None):
        json_data = {'success': True, 'data': {}, 'msg': 'User queue list'}
        if 'username' not in request.session:
            json_data['data'] = "User not found"
        else:
            cpu_per_job_per_node_list = []
            Job_Owner = request.session['username']
            node_name = ''
            node_names_list = []
            all_node_list = ServerInstance().node_list(
            )  # Get a list with all nodes
            for node in all_node_list:  # Fill a list with node names and node names without '-'
                node_names_list.append({
                    'node_name':
                    node.name,
                    'clear_node_name':
                    node.name.replace('-', '')
                })
            for item in node_names_list:  # Search the list with node names and node names without '-'
                if str(pk) == item[
                        'clear_node_name']:  # If url node name equals list's clear_node_name, set the proper node name
                    node_name = item['node_name']

            node_list = ServerInstance().node_list(
                node_name)  # Get specific node
            node = node_list[0]
            serializer = NodeSerializer(node)
            cpu_per_job_per_node_list.append(serializer.data)

            json_data['data'] = cpu_per_job_per_node_list
        if format == 'json':
            return HttpResponse(json.dumps(json_data),
                                content_type="application/json")
        else:
            return Response(data=cpu_per_job_per_node_list)
示例#2
0
    def get(self, request, format=None):
        json_data = {'success': True, 'data': {}, 'msg': 'User queue list'}
        if 'username' not in request.session:
            json_data['data'] = "User not found"
        else:
            cpu_per_job_per_node_list = []
            node_list = ServerInstance().node_list()
            for node in node_list:
                check = 0
                for item in cpu_per_job_per_node_list:
                    if node.state == item['state']:
                        item['value'] += 1
                        check = 1
                if check == 0:
                    cpu_per_job_per_node_list.append({
                        'state': node.state,
                        'value': 1
                    })

            json_data['data'] = cpu_per_job_per_node_list
        if format == 'json':
            return HttpResponse(json.dumps(json_data),
                                content_type="application/json")
        else:
            return Response(data=cpu_per_job_per_node_list)
示例#3
0
    def get(self, request, pk, format=None):
        json_data = {'success': True, 'data': {}, 'msg': 'User queue list'}
        if 'username' not in request.session:
            json_data['data'] = "User not found"
        else:
            user_jobs = 0
            rest_jobs = 0
            user_all_job_queue_list = []
            Job_Owner = request.session['username']
            all_job_list = ServerInstance().job_list()
            for job in all_job_list:
                if job.queue == str(pk):
                    temp_Job_Owner, temp_host = job.Job_Owner.split('@')
                    if temp_Job_Owner == Job_Owner:
                        user_jobs += 1
                    else:
                        rest_jobs += 1
            user_all_job_queue_list.append({
                'user': Job_Owner,
                'jobs': user_jobs
            })
            user_all_job_queue_list.append({'user': '******', 'jobs': rest_jobs})

            json_data['data'] = user_all_job_queue_list
        if format == 'json':
            return HttpResponse(json.dumps(json_data),
                                content_type="application/json")
        else:
            return Response(data=user_all_job_queue_list)
示例#4
0
 def list(self, request, format=None):
     json_data = {'success': True, 'data': {}, 'msg': 'User queue list'}
     if 'username' not in request.session:
         json_data['data'] = "User not found"
     else:
         check = 0
         user_queues_list = []
         Job_Owner = request.session['username']
         user_job_instances_list = ServerInstance().job_list(Job_Owner)
         for user_job_instance in user_job_instances_list:
             for user_queue in user_queues_list:
                 if user_queue['queue'] == user_job_instance.queue:
                     user_queue['jobs'] += 1
                     check = 1
                     continue
             if check == 0:
                 user_queues_list.append({
                     'queue': user_job_instance.queue,
                     'jobs': 1
                 })
             check = 0
         json_data['data'] = user_queues_list
     if format == 'json':
         return HttpResponse(json.dumps(json_data),
                             content_type="application/json")
     else:
         return Response(data=user_queues_list)
示例#5
0
    def get(self, request, pk, format=None):
        json_data = {'success': True, 'data': {}, 'msg': 'User queue list'}
        if 'username' not in request.session:
            json_data['data'] = "User not found"
        else:
            Job_Owner = request.session['username']
            job_list = ServerInstance().job_list()
            completed_user_jobs = 0
            running_user_jobs = 0
            holded_user_jobs = 0
            queued_user_jobs = 0
            for job in job_list:
                if job.queue == str(pk):
                    if job.job_state == 'C':
                        completed_user_jobs += 1
                    elif job.job_state == 'R':
                        running_user_jobs += 1
                    elif job.job_state == 'H':
                        holded_user_jobs += 1
                    elif job.job_state == 'Q':
                        queued_user_jobs += 1

            jobs_list = []
            jobs_list.append({'state': 'C', 'value': completed_user_jobs})
            jobs_list.append({'state': 'R', 'value': running_user_jobs})
            jobs_list.append({'state': 'H', 'value': holded_user_jobs})
            jobs_list.append({'state': 'Q', 'value': queued_user_jobs})

            json_data['data'] = jobs_list
        if format == 'json':
            return HttpResponse(json.dumps(json_data),
                                content_type="application/json")
        else:
            return Response(data=jobs_list)
示例#6
0
 def list(self, request, format=None):
     # if 'username' not in request.session:
     #     return Response("User not found")
     # else:
     #Job_Owner = request.session['username']
     list = []
     node_list = ServerInstance().node_list()
     for node in node_list:
         serializer = NodeSerializer(node)
         list.append(serializer.data)
     return Response(list)
示例#7
0
 def list(self, request, format=None):
     # if 'username' not in request.session:
     #     return Response("User not found")
     # else:
     # Job_Owner = request.session['username']
     queue_list = []
     user_queue_list = ServerInstance().queue_list()
     for queue in user_queue_list:
         serializer = QueueSerializer(queue)
         queue_list.append(serializer.data)
     return Response(queue_list)
示例#8
0
 def get(self, request, pk, format=None):
     json_data = {'success': True, 'data': {}, 'msg': 'User detail'}
     if 'username' not in request.session:
         json_data['data'] = "User not found"
     else:
         Job_Owner = request.session['username']
         user_queues_list = []
         queue_instances_list = ServerInstance().queue_list(str(pk))
         for queue in queue_instances_list:
             serializer = QueueSerializer(queue)
             user_queues_list.append(serializer.data)
         json_data['data'] = user_queues_list
     if format == 'json':
         return HttpResponse(json.dumps(json_data),
                             content_type="application/json")
     else:
         return Response(data=user_queues_list)
示例#9
0
    def get(self, request, pk, format=None):
        json_data = {'success': True, 'data': {}, 'msg': 'User queue list'}
        if 'username' not in request.session:
            json_data['data'] = "User not found"
        else:
            cpu_per_job_per_node_list = []
            Job_Owner = request.session['username']
            node_name = ''
            node_names_list = []
            all_node_list = ServerInstance().node_list(
            )  # Get a list with all nodes
            for node in all_node_list:  # Fill a list with node names and node names without '-'
                node_names_list.append({
                    'node_name':
                    node.name,
                    'clear_node_name':
                    node.name.replace('-', '')
                })
            for item in node_names_list:  # Search the list with node names and node names without '-'
                if str(pk) == item[
                        'clear_node_name']:  # If url node name equals list's clear_node_name, set the proper node name
                    node_name = item['node_name']

            node_list = ServerInstance().node_list(
                node_name)  # Get specific node
            node = node_list[0]
            node_job_list = node.jobs
            # torque_version = "old"
            for node_job in node_job_list:
                check = 0
                print node_job
                cpu_id, job = node_job.split('/')
                job_id, host = job.split('.')

                print cpu_id
                if '-' in cpu_id:
                    cpu_id_1, cpu_id_2 = cpu_id.split('-')
                    cpu_id_1 = int(cpu_id_1)
                    cpu_id_2 = int(cpu_id_2)
                    cpu_id = cpu_id_2 - cpu_id_1 + 1
                else:
                    cpu_id = 1
                print "CPUs: %d" % cpu_id
                job_id = int(job_id)

                cpu_per_job_per_node_list.append({
                    'job': job_id,
                    'cpu': cpu_id
                })

                # support Torque 6

                # print cpu_id
                # if '-' in cpu_id:
                #     torque_version = "new"
                #     cpu_id_1, cpu_id_2 = cpu_id.split('-')
                #     cpu_id_1 = int(cpu_id_1)
                #     cpu_id_2 = int(cpu_id_2)
                #     cpu_id = cpu_id_2 - cpu_id_1 + 1
                #     print "torque 6: %d" % cpu_id
                # else:
                #     torque_version = "old"
                #     cpu_id = int(cpu_id)
                #     print "torque 4: %d" % cpu_id
                # job_id = int(job_id)
                # for job in cpu_per_job_per_node_list:
                #     if torque_version == "old":
                #         if job['job'] == job_id:
                #             job['cpu'] += 1
                #             check = 1
                #         cpu_per_job_per_node_list.append({'job' : job_id, 'cpu' : job['cpu']})
                #     else:
                #         job['cpu'] = cpu_id
                #         cpu_per_job_per_node_list.append({'job' : job_id, 'cpu' : cpu_id})
                #         check = 1
                # if check == 0:
                #     if torque_version == "old":
                #         cpu_per_job_per_node_list.append({'job' : job_id, 'cpu' : 1})
                #     else:
                #         cpu_per_job_per_node_list.append({'job' : job_id, 'cpu' : cpu_id})
            print cpu_per_job_per_node_list
            json_data['data'] = cpu_per_job_per_node_list
        if format == 'json':
            return HttpResponse(json.dumps(json_data),
                                content_type="application/json")
        else:
            return Response(data=cpu_per_job_per_node_list)