Esempio n. 1
0
def gpu_list_view(req):
    dicts = {}
    group_info = api_group_get_list({'req_user': req.user})
    ret_list = []
    gpu_info = api_gpu_get_list({'req_user': req.user})
    if gpu_info['res']:
        ret_list+=gpu_info['list']
    dicts['p'] = get_page(ret_list, req)
    return render_to_response('vmadmin_gpu_list.html', dicts, context_instance=RequestContext(req))
Esempio n. 2
0
def gpu_list_view(req):
    dicts = {}
    group_info = api_group_get_list({'req_user': req.user})
    ret_list = []
    gpu_info = api_gpu_get_list({'req_user': req.user})
    if gpu_info['res']:
        ret_list+=gpu_info['list']
    dicts['p'] = get_page(ret_list, req)
    #return render_to_response('vmadmin_gpu_list.html', dicts, context_instance=RequestContext(req))
    return render(req, 'vmadmin_gpu_list.html',dicts)
Esempio n. 3
0
def gpu_mount_view(req):
    dicts = {}
    if req.method == "POST":
        gpu_id = req.POST.get('gpu_id', None)
        vm_id = req.POST.get('vm_id', None)
        if gpu_id == None or vm_id == None:
            dicts['alert_msg'] = '参数错误'
        else:
            gpu = _get_gpu_by_id(req.user, gpu_id)
            if gpu['enable'] == False:
                dicts['alert_msg'] = '该设备不可用'
            elif gpu['vm']:
                dicts['alert_msg'] = '该设备已被占用'
            else:
                vm = _get_vm_by_id(req.user, vm_id)
                res = api_gpu_mount({'req_user': req.user, 'vm_id':vm_id, 'gpu_id':gpu_id})   
                if res['res']:
                    dicts['alert_msg'] = '挂载成功'
                elif res['err'] in ERROR_CN:
                    dicts['alert_msg'] = ERROR_CN[res['err']]
                else:
                    dicts['alert_msg'] = '挂载失败(' + res['err'] + ')'
                # return HttpResponseRedirect('../detail/?gpu_id=' + gpu_id)            

    gpu_id = req.GET.get('gpu_id', None)
    vm_id = req.GET.get('vm_id', None)
    host_id = req.GET.get('host_id', None)
    gpu = None
    vm = None
    host = None

    if gpu_id != None:
        gpu = _get_gpu_by_id(req.user, gpu_id)
    if vm_id != None:
        vm = _get_vm_by_id(req.user, vm_id)
    if host_id != None:
        host = _get_host_by_id(req.user, host_id)

    if host == None:
        if vm != None:
            host_id_from_vm_or_gpu = vm['host_id']
        elif gpu != None:
            host_id_from_vm_or_gpu = gpu['host_id']
        else:
            host_id_from_vm_or_gpu = None

        if host_id_from_vm_or_gpu:
            host = _get_host_by_id(req.user, host_id_from_vm_or_gpu)

    if host != None:
        gpu_list = []
        if gpu == None:
            gpu_list_info = api_gpu_get_list({'req_user': req.user, 'host_id':host['id']})
            if gpu_list_info['res']:
                gpu_list = gpu_list_info['list']
        
        vm_list = []
        if vm == None:
            vm_list_info = api_vm_get_list({'req_user': req.user, 'group_id': host['group_id']})
            if vm_list_info['res']:
                for v in vm_list_info['list']:
                    if v['host_id'] == host['id'] and (req.user.is_superuser or req.user.username == v['creator']):
                        vm_list.append(v)
        
        dicts['host'] = host
        dicts['vm'] = vm
        dicts['gpu'] = gpu
        dicts['gpu_list'] = gpu_list
        dicts['vm_list'] = vm_list

        if gpu and gpu['enable'] == False:
            dicts['alert_msg'] = '该设备不可用'
    
    return render_to_response('vmadmin_gpu_mount.html', dicts, context_instance=RequestContext(req))    
Esempio n. 4
0
def gpu_mount_view(req):
    dicts = {}
    if req.method == "POST":
        gpu_id = req.POST.get('gpu_id', None)
        vm_id = req.POST.get('vm_id', None)
        if gpu_id == None or vm_id == None:
            dicts['alert_msg'] = '参数错误'
        else:
            gpu = _get_gpu_by_id(req.user, gpu_id)
            if gpu['enable'] == False:
                dicts['alert_msg'] = '该设备不可用'
            elif gpu['vm']:
                dicts['alert_msg'] = '该设备已被占用'
            else:
                vm = _get_vm_by_id(req.user, vm_id)
                res = api_gpu_mount({'req_user': req.user, 'vm_id':vm_id, 'gpu_id':gpu_id})   
                if res['res']:
                    dicts['alert_msg'] = '挂载成功'
                elif res['err'] in ERROR_CN:
                    dicts['alert_msg'] = ERROR_CN[res['err']]
                else:
                    dicts['alert_msg'] = '挂载失败(' + res['err'] + ')'
                # return HttpResponseRedirect('../detail/?gpu_id=' + gpu_id)            

    gpu_id = req.GET.get('gpu_id', None)
    vm_id = req.GET.get('vm_id', None)
    host_id = req.GET.get('host_id', None)
    gpu = None
    vm = None
    host = None

    if gpu_id != None:
        gpu = _get_gpu_by_id(req.user, gpu_id)
    if vm_id != None:
        vm = _get_vm_by_id(req.user, vm_id)
    if host_id != None:
        host = _get_host_by_id(req.user, host_id)

    if host == None:
        if vm != None:
            host_id_from_vm_or_gpu = vm['host_id']
        elif gpu != None:
            host_id_from_vm_or_gpu = gpu['host_id']
        else:
            host_id_from_vm_or_gpu = None

        if host_id_from_vm_or_gpu:
            host = _get_host_by_id(req.user, host_id_from_vm_or_gpu)

    if host != None:
        gpu_list = []
        if gpu == None:
            gpu_list_info = api_gpu_get_list({'req_user': req.user, 'host_id':host['id']})
            if gpu_list_info['res']:
                gpu_list = gpu_list_info['list']
        
        vm_list = []
        if vm == None:
            vm_list_info = api_vm_get_list({'req_user': req.user, 'group_id': host['group_id']})
            if vm_list_info['res']:
                for v in vm_list_info['list']:
                    if v['host_id'] == host['id'] and (req.user.is_superuser or req.user.username == v['creator']):
                        vm_list.append(v)
        
        dicts['host'] = host
        dicts['vm'] = vm
        dicts['gpu'] = gpu
        dicts['gpu_list'] = gpu_list
        dicts['vm_list'] = vm_list

        if gpu and gpu['enable'] == False:
            dicts['alert_msg'] = '该设备不可用'
    
    return render_to_response('vmadmin_gpu_mount.html', dicts, context_instance=RequestContext(req))