Ejemplo n.º 1
0
def volume_create_view(req):
    dicts = {}

    if req.method == 'POST':
        group_id = req.POST.get('group', None)
        pool_id = req.POST.get('pool', None)
        size = req.POST.get('size', None)
        remarks = req.POST.get('remarks', None)
        go_to_mount = req.POST.get('go_to_mount', '0')
        print(group_id, pool_id, size, remarks,go_to_mount)
        
        if not group_id or not group_id.isdigit() or not pool_id or not pool_id.isdigit() or not size or not size.isdigit() or float(size) <= 0:
            dicts['alert_msg'] = '参数错误'
        else:
            size = int(float(size) * 1024)
            res = api_volume_create({'req_user':req.user, 'group_id': int(group_id), 'size': size, 'pool_id': int(pool_id)})
            if res['res']:#by lzx:2018-06-25
                api_volume_set_remark({
                       'req_user': req.user,
                       'volume_id': res['volume_id'], 
                       'remarks': remarks})
            if res['res']:
                if go_to_mount == '1':
                    return HttpResponseRedirect('/vmadmin/volume/mount/?volume_id=' + res['volume_id'])
                return HttpResponseRedirect('../list/')
            else:
                if res['err'] in ERROR_CN:
                    dicts['alert_msg'] = ERROR_CN[res['err']]
                else:
                    dicts['alert_msg'] = res['err']

    center_dic = api_center_get_list({'req_user': req.user})
    if center_dic['res']:
        dicts['center_list'] = center_dic['list']

    center_id = req.GET.get('center', None)
    if not center_id and len(dicts['center_list']) > 0:
        center_id = dicts['center_list'][0]['id']
    if center_id:
        group_list_info = api_group_get_list({'req_user': req.user, 'center_id': center_id})
        group_list = []
        if group_list_info['res']:
            group_list = group_list_info['list']
        dicts['group_list'] = group_list
        pool_list_info = api_ceph_get_list({'req_user': req.user, 'center_id': center_id})
        pool_list = []
        if pool_list_info['res']:
            pool_list = [p for p in pool_list_info['list'] if p['type'] == CEPH_VOLUME_POOL_FLAG]
        dicts['pool_list'] = pool_list
    return render(req, 'vmadmin_volume_create.html', dicts)
Ejemplo n.º 2
0
def volume_edit_remarks_ajax(req):
    remarks = req.POST.get('remarks')
    volume_id = req.POST.get('volume_id')
    res = api_volume_set_remark({
                       'req_user': req.user,
                       'volume_id': volume_id, 
                       'remarks': remarks})
    if not res['res'] and res['err'] in ERROR_CN:
        res['error'] = ERROR_CN[res['err']]
    return HttpResponse(json.dumps(res), content_type='application/json')
Ejemplo n.º 3
0
def volume_vm_create_view(req):
    vmid = req.GET.get('vmid')
    obj_res = api_vm_get({'req_user': req.user, 'uuid': vmid})
    if obj_res['res']:
        obj = obj_res['info']
    else:
        return HttpResponseRedirect('/vmadmin/vm/list/')

    dicts = {}
    if req.method == 'POST':
        size = req.POST.get('size', None)
        group_id = obj['group_id']
        backend = req.POST.get('backend', 'CEPH')
        remarks = req.POST.get('remarks', None)
        if not size or not size.isdigit() or float(size) <= 0:
            dicts['alert_msg'] = '参数错误'
        size = int(float(size) * 1024)
        res = api_volume_create({
            'req_user': req.user,
            'host_id': obj['host_id'],
            'group_id': int(group_id),
            'size': size,
            'backend': backend})
        if res['res']:#by lzx:2018-09-28
            api_volume_set_remark({
                'req_user': req.user,
                'volume_id': res['volume_id'], 
                'remarks': remarks})

        if res['res']:
            mount_res = api_volume_mount({'req_user': req.user, 'vm_uuid': vmid, 'volume_id': res['volume_id']})
            if not mount_res['res']:
                messages.error(req, '挂载失败:' + ERROR_CN.get(mount_res['err'], mount_res['err']))
            return HttpResponseRedirect('/vmadmin/vm/list/')
        else:
            if res['err'] in ERROR_CN:
                dicts['alert_msg'] = ERROR_CN[res['err']]
            else:
                dicts['alert_msg'] = res['err']

    dicts['vmobj'] = obj

    return render(req, 'vmadmin_volume_vm_create.html', dicts)
Ejemplo n.º 4
0
def volume_edit_remarks_ajax(req):
    remarks = req.POST.get('remarks')
    volume_id = req.POST.get('volume_id')
    res = api_volume_set_remark({
                       'req_user': req.user,
                       'volume_id': volume_id, 
                       'remarks': remarks})
    if not res['res'] and res['err'] in ERROR_CN:
        res['error'] = ERROR_CN[res['err']]
    return HttpResponse(json.dumps(res), content_type='application/json')