Exemplo n.º 1
0
def change_user_password_action(request, user_id):
    if request.user.username == "admin":
        return HttpResponse(jsonutils.dumps(
            ui_response(status_code=UI_RESPONSE_DWZ_ERROR,
                        message="admin can't change password")))

    username = request.user.username

    form = ChangePasswordForm(request, user_id, request.POST)
    if form.is_valid():
        old_password = request.POST.get('oldpassword', '')
        password = request.POST.get('password', '')
        try:
            api.user_update_own_password(request, old_password, password)
        except Unauthorized:
            return HttpResponse(jsonutils.dumps(
                ui_response(status_code=UI_RESPONSE_DWZ_ERROR,
                            message="The old password is wrong.")))
        except Exception, e:
            LOG.error('Change password error. %s' % e)
            return HttpResponse(jsonutils.dumps(
                ui_response(status_code=UI_RESPONSE_DWZ_ERROR,
                            message="change password error")))

        try:
            create_token(request, username, password)
        except Exception:
            pass

        return HttpResponse(jsonutils.dumps(
            ui_response(status_code=UI_RESPONSE_OK,
                        message="change password success.",
                        object_name=username)))
Exemplo n.º 2
0
def update_notice_action(request):
    """
    :param request: request Object
    :return:
    """
    notice_form = NoticeForm(request, request.POST)
    if notice_form.is_valid():
        data = notice_form.cleaned_data
# maybe unused add by yangzhi 2013.11.13
#        user_id = request.user.id
#        operater_id = data['operater_id']
#        if user_id != operater_id and get_user_role_name(request) != ROLE_ADMIN:
#            msg = "Sorry , you do not have this permissions"
#            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
        title = data['title']
        notice_uuid = data['uuid']
        try:
            notice = Notice.objects.get(uuid=notice_uuid)
            notice.title = title
            notice.content = data['content']
            notice.level = data['level']
            notice.release = data['release']
            notice.update_time = datetime.datetime.now(tz=utc)
            notice.save()
        except Notice.DoesNotExist:
            msg = 'Can not get notice (uuid=%s) information' % notice_uuid
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
        except Exception, e:
            LOG.error('Can not update notice uuid=%s,error is %s' % (
                notice_uuid, e.message))
            msg = 'update notice uuid=%s failed, please retry later.' % notice_uuid
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
        return HttpResponse(
            {"message": "Update notice Success", "statusCode": UI_RESPONSE_OK,
             "object_name": title}, status=UI_RESPONSE_OK)
Exemplo n.º 3
0
def edit_securitygrouprules(request, security_group_id):
    try:
        securitygroup = api.security_group_get(request, security_group_id)

        number_per_page = NUMBERS_PER_PAGE
        if request.GET.has_key("numPerPage"):
            number_per_page = request.GET['numPerPage']
        paginator = Paginator(securitygroup.rules, number_per_page)
        page = request.GET.get('pageNum', 1)
        try:
            page_obj = paginator.page(page)  #page obj
        except PageNotAnInteger:
            # If page is not an integer, deliver first page.
            page_obj = paginator.page(1)
        except EmptyPage:
            # If page is out of range (e.g. 9999), deliver last page of results.
            page_obj = paginator.page(paginator.num_pages)

        return shortcuts.render(request, 'securitygroup_manage/rules.html',
            {'page_obj': page_obj, 'security_group_id': security_group_id})
    except Unauthorized:
        raise
    except Exception, ex:
        msg = 'get security group rules info error.'
        LOG.error("the error is %s" % ex.message)
        return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
Exemplo n.º 4
0
def get_network_info(request, tenant_id, network_id):
    """
    :param request:request object, tenant_id, network_id
    :return:view<'virtual_network_manage/networkinfo.html'>::get a network info
    """
    try:
        switch_tenants(request, tenant_id)
        network = api.quantum.network_get(request, network_id)
        network.set_id_as_name_if_empty(length = NETWORK_NAME_EMPTY_LENGTH)

        ports = api.quantum.port_list(request, network_id = network_id)

        for p in ports:
            p.set_id_as_name_if_empty()

        subnets = api.quantum.subnet_list(request,
             network_id = network.id)

        for s in subnets:
            s.set_id_as_name_if_empty()

        tenant_choices = []
        tenants = api.tenant_list_not_filter(request, admin = True)
        for tenant in tenants:
            tenant_choices.append((tenant.id, tenant.name))

        return shortcuts.render(request, 'virtual_network_manage/networkinfo.html', {'network': network, 'subnets':subnets, "ports":ports, "tenants":tenant_choices})
    except Unauthorized:
        raise
    except Exception , exe:
        msg = 'get network info error.'
        LOG.error('get network info error,the error is %s' % exe.message)
        return HttpResponse(jsonutils.dumps(ui_response(message = msg)))
Exemplo n.º 5
0
def get_port_info(request, port_id):
    """
    :param request:request object, port_id
    :return:view<'virtual_network_manage/portinfo.html'>::get a port info
    """
    tenant_choices = []
    try:
        port = api.quantum.port_get(request, port_id)
        network = api.quantum.network_get(request, port.network_id)
        tenants = api.tenant_list_not_filter(request, admin=True)
        for tenant in tenants:
            tenant_choices.append((tenant.id, tenant.name))

        return shortcuts.render(request,
                                'virtual_network_manage/portinfo.html', {
                                    'network': network,
                                    'port': port,
                                    'tenants': tenant_choices
                                })
    except Unauthorized:
        raise
    except Exception, exe:
        msg = 'get port info error.'
        LOG.error('get port info error,the error is %s' % exe.message)
        return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
Exemplo n.º 6
0
def edit_subnet_action(request, subnet_id):
    """
    :param request:request object, subnet_id
    :return:view<'virtual_network_manage/networkprojectindex.html'>::action for edit subnet
    """
    form =  UpdateSubnet(request, subnet_id, request.POST)
    if form.is_valid():
        data = form.cleaned_data
        params = {}
        try:
            params['name'] = data['subnet_name']
            if data['no_gateway']:
                params['gateway_ip'] = None
            elif data['gateway_ip']:
                params['gateway_ip'] = data['gateway_ip']

            setup_subnet_parameters(params, data, is_create = False)

            api.quantum.subnet_modify(request, subnet_id, **params)
        except Unauthorized:
            raise
        except Exception as exe:
            msg = ('Failed to edit subnet: %s' % data['subnet_name'])
            LOG.error('Failed to edit subnet,the error is %s' % exe.message)
            return HttpResponse(jsonutils.dumps(ui_response(message = msg)))

        return HttpResponse({"message":"Edit subnet successfully!", "statusCode":UI_RESPONSE_DWZ_SUCCESS , "object_name":data['subnet_name']}, status = UI_RESPONSE_DWZ_SUCCESS)
    else:
        return HttpResponse({"form":form, "message":"", "statusCode":UI_RESPONSE_DWZ_ERROR}, status = UI_RESPONSE_ERROR)
Exemplo n.º 7
0
def create_port_action(request, network_id):
    """
    :param request:request object, network_id
    :return:view<'virtual_network_manage/networkprojectindex.html'>::action for create a port
    """
    form = CreatePort(request.POST)
    if form.is_valid():
        data = form.cleaned_data
        try:
            network = api.quantum.network_get(request, network_id)
            data['tenant_id'] = network.tenant_id
            data['admin_state_up'] = data['admin_state']
            del data['admin_state']

            api.quantum.port_create(request, **data)
        except Unauthorized:
            raise
        except Exception as exe:
            msg = get_text('Failed to create a port for network %s')\
                  % data['network_name']
            LOG.error('Failed to create port,the error is %s' % exe.message)
            return HttpResponse(jsonutils.dumps(ui_response(message = msg)))

        return HttpResponse({"message" : "Create port successfully!",
                             "statusCode" : UI_RESPONSE_DWZ_SUCCESS ,
                             "object_name" : data['name']}, status = UI_RESPONSE_DWZ_SUCCESS)
    else:
        return HttpResponse({"form":form,
                             "message":"",
                             "statusCode":UI_RESPONSE_DWZ_ERROR }, status = UI_RESPONSE_ERROR)
Exemplo n.º 8
0
def edit_port_action(request, port_id):
    """
    :param request:request object, port_id
    :return:view<'virtual_network_manage/networkprojectindex.html'>::action for edit a port
    """
    form = UpdatePort(request.POST)
    if form.is_valid():
        data = form.cleaned_data
        try:
            api.quantum.port_modify(request, port_id,
            name = data['name'],
            admin_state_up = data['admin_state'],
            device_id = data['device_id'],
            device_owner = data['device_owner'])
        except Unauthorized:
            raise
        except Exception as exe:
            msg = ('Failed to edit port %s' % data['name'])
            LOG.error('Failed to edit port,the error is %s' % exe.message)
            return HttpResponse(jsonutils.dumps(ui_response(message = msg)))

        return HttpResponse({"message":"Edit port successfully!",
                             "statusCode":UI_RESPONSE_DWZ_SUCCESS ,
                             "object_name":data['name']}, status = UI_RESPONSE_DWZ_SUCCESS)
    else:
        return HttpResponse({"form" : form,
                             "message" : "",
                             "statusCode" : UI_RESPONSE_DWZ_ERROR}, status = UI_RESPONSE_ERROR)
Exemplo n.º 9
0
def get_software_status(request, software_uuid):
    try:
        software = Software.objects.get(uuid=software_uuid)
    except Exception, e:
        LOG.error('Can not get software uuid=%s. %s' % (software_uuid, e))
        return HttpResponse(jsonutils.dumps(
            ui_response(message="this software not exited")))
Exemplo n.º 10
0
def update_user_password_action(request, user_id):
    """
    :param request: request object
    :param user_id: the user's id
    :return view<'get_user_list'>::update successfully
            view<'user_manage/update.html'>::failed
    """
    form = UpdateUserPasswordForm(request, user_id, request.POST)
    if form.is_valid():
        iRet, msg = handle_update_password(request, user_id, form.cleaned_data)
        if iRet:
            return HttpResponse(jsonutils.dumps(
                ui_response(form,
                            message="Update User Password Success",
                            object_name=form.cleaned_data['name'])))
        else:
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
    else:
        return HttpResponse(jsonutils.dumps(ui_response(form)))
Exemplo n.º 11
0
def create_gateway_action(request, router_id):

    try:
        myrouterproject = api.quantum.router_get(request, router_id)

    except Unauthorized:
        raise
    except Exception, exc:
        msg = get_text('Failed to retrieve the router.')
        LOG.error('Failed to retrieve the router %s' % exc.message)
        return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
Exemplo n.º 12
0
def create_routerprojectdetail(request, tenant_id, routerproject_id):

    try:
        switch_tenants(request, tenant_id)
        myrouterproject = api.quantum.router_get(request, routerproject_id)

    except Unauthorized:
        raise
    except Exception, exc:
        msg = get_text('Failed to retrieve the router.')
        LOG.error('Failed to retrieve the router:%s' % exc.message)
        return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
Exemplo n.º 13
0
def create_subnet_action(request, network_id):
    """
    :param request:request object, network_id
    :return:view<'virtual_network_manage/networkprojectindex.html'>::action for create subnet
    """

    form = CreateSubnet(request, network_id,request.POST)
    if form.is_valid():
        data = form.cleaned_data
        network = None
        try:
            network = api.quantum.network_get(request, network_id)
        except Unauthorized:
            raise
        except Exception as exe:
            LOG.error('Failed to get network,the error is %s' % exe.message)
        if network:
            network_id = network.id
        else:
            network_id = network_id
        try:
            params = {'network_id': network_id,
                      'name': data['subnet_name'],
                      'cidr': data['cidr'],
                      'ip_version': int(data['ip_version'])}
            if network.tenant_id:
                params['tenant_id'] = network.tenant_id
            if data['no_gateway']:
                params['gateway_ip'] = None
            elif data['gateway_ip']:
                params['gateway_ip'] = data['gateway_ip']

            setup_subnet_parameters(params, data)

            api.quantum.subnet_create(request, **params)
        except Unauthorized:
            raise
        except LicenseForbidden:
            raise
        except Exception as exe:
            if exe.message.find('overlaps with another subnet') != -1:
                msg = ('Failed! Overlaps with another subnet.')
            else:
                msg = ('Failed to create subnet')
            LOG.error('Failed to create subnet,the error is %s' % exe.message)
            return HttpResponse(jsonutils.dumps(ui_response(message = msg)))

        return HttpResponse({"message" : "Create subnet successfully!",
                             "statusCode" : UI_RESPONSE_DWZ_SUCCESS ,
                             "object_name" : data['subnet_name']}, status = UI_RESPONSE_DWZ_SUCCESS)
    else:
        return HttpResponse({"form" : form, "message" : "", "statusCode" : UI_RESPONSE_DWZ_ERROR }, status = UI_RESPONSE_ERROR)
Exemplo n.º 14
0
def update_notice_action(request):
    """
    :param request: request Object
    :return:
    """
    notice_form = NoticeForm(request, request.POST)
    if notice_form.is_valid():
        data = notice_form.cleaned_data
        # maybe unused add by yangzhi 2013.11.13
        #        user_id = request.user.id
        #        operater_id = data['operater_id']
        #        if user_id != operater_id and get_user_role_name(request) != ROLE_ADMIN:
        #            msg = "Sorry , you do not have this permissions"
        #            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
        title = data['title']
        notice_uuid = data['uuid']
        try:
            notice = Notice.objects.get(uuid=notice_uuid)
            notice.title = title
            notice.content = data['content']
            notice.level = data['level']
            notice.release = data['release']
            notice.update_time = datetime.datetime.now(tz=utc)
            notice.save()
        except Notice.DoesNotExist:
            msg = 'Can not get notice (uuid=%s) information' % notice_uuid
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
        except Exception, e:
            LOG.error('Can not update notice uuid=%s,error is %s' %
                      (notice_uuid, e.message))
            msg = 'update notice uuid=%s failed, please retry later.' % notice_uuid
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
        return HttpResponse(
            {
                "message": "Update notice Success",
                "statusCode": UI_RESPONSE_OK,
                "object_name": title
            },
            status=UI_RESPONSE_OK)
Exemplo n.º 15
0
def software_download(request, software_uuid):
    """
    Get binary file of Software with uuid
    :param request:
    :param software_uuid:
    :return:
    """
    try:
        software = Software.objects.get(uuid=software_uuid)
    except Exception, e:
        LOG.error('Can not get software uuid=%s. %s' % (software_uuid, e))
        return HttpResponse(jsonutils.dumps(
            ui_response(message="this software not exited")))
Exemplo n.º 16
0
def update_node_action(request, node_uuid):
    """
    :param request: request Object
    :param node_uuid: the uuid of node whichj will be updated
    :return:
    """
    node_form = NodeForm(request, node_uuid, request.POST)
    if node_form.is_valid():
        data = node_form.cleaned_data
        control_nodes = Node.objects.filter(type='control_node').exclude(
            uuid=node_uuid)
        if control_nodes.__len__() > 0 and data['type'] == 'control_node':
            msg = 'control node has already exist'
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))

        try:
            node = Node.objects.get(uuid=node_uuid)
            node.name = data['name']
            node.passwd = data['passwd']
            node.ip = data['ip']
            node.type = data['type']
            node.save()
        except Node.DoesNotExist:
            msg = 'Can not get node (uuid=%s) information' % node_uuid
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))

        except Exception, exp:
            err_msg = 'Can not update node uuid=%s,error is %s' % (node_uuid,
                                                                   exp)
            LOG.error(err_msg)
            msg = 'update node uuid=%s failed, please retry later.' % node_uuid
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))

        return HttpResponse(
            jsonutils.dumps(
                ui_response(node_form,
                            message="Update node Success",
                            object_name=node.name)))
Exemplo n.º 17
0
def update_node_action(request, node_uuid):
    """
    :param request: request Object
    :param node_uuid: the uuid of node whichj will be updated
    :return:
    """
    node_form = NodeForm(request, node_uuid, request.POST)
    if node_form.is_valid():
        data = node_form.cleaned_data
        control_nodes = Node.objects.filter(type='control_node').exclude(
            uuid=node_uuid)
        if control_nodes.__len__() > 0 and data['type'] == 'control_node':
            msg = 'control node has already exist'
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))

        try:
            node = Node.objects.get(uuid=node_uuid)
            node.name = data['name']
            node.passwd = data['passwd']
            node.ip = data['ip']
            node.type = data['type']
            node.save()
        except Node.DoesNotExist:
            msg = 'Can not get node (uuid=%s) information' % node_uuid
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))

        except Exception, exp:
            err_msg = 'Can not update node uuid=%s,error is %s' % (node_uuid,
                                                                   exp)
            LOG.error(err_msg)
            msg = 'update node uuid=%s failed, please retry later.' % node_uuid
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))

        return HttpResponse(jsonutils.dumps(
            ui_response(node_form, message="Update node Success",
                        object_name=node.name)))
Exemplo n.º 18
0
def delete_routerif_action(request, routerproject_id, interface_id):
    try:
        port = api.quantum.port_get(request, interface_id)
        if port['device_owner'] == 'network:router_gateway':
            api.quantum.router_remove_gateway(request, routerproject_id)
        else:
            api.quantum.router_remove_interface(request,
                                                routerproject_id,
                                                port_id=interface_id)
    except Unauthorized:
        raise
    except Exception, exc:
        msg = get_text('Failed to delete interface')
        LOG.error('Failed to delete interface :%s' % exc.message)
        return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
Exemplo n.º 19
0
def create_software_form(request):
    """
    :param request:
    :return:
    """
    softwares = []
    uploading_cnt = Software.objects.filter(Q(status=SOFTWARE_STATE_UPLOADING)
                                            | Q(status=SOFTWARE_STATE_CREATING)).count()
    if uploading_cnt >= settings.SOFTWARE_UPLOADING_MAX_NUM:
        return HttpResponse(jsonutils.dumps(
            ui_response(message="uploading count is beyond max limit.")))
    try:
        softwares_cnt = Software.objects.count()
        license_cnt = cache.get('CreeperQuotas').get('SoftwareMaxNum')
    except Exception, e:
        LOG.error('Can not get total of softwares. %s' % e)
Exemplo n.º 20
0
def get_subnet_info(request, subnet_id):
    """
    :param request:request object, network_id
    :return:view<'virtual_network_manage/subnetinfo.html'>::get a subnet info
    """
    try:
        subnet = api.quantum.subnet_get(request, subnet_id)
        network = api.quantum.network_get(request, subnet.network_id)

        return shortcuts.render(request, 'virtual_network_manage/subnetinfo.html', {'network': network, 'subnet':subnet})
    except Unauthorized:
        raise
    except Exception , exe:
        msg = 'get subnet info error.'
        LOG.error('get subnet and network info error,the error is %s' % exe.message)
        return HttpResponse(jsonutils.dumps(ui_response(message = msg)))
Exemplo n.º 21
0
def search_image_status(request, instance_id):
    """
     :param request: request object
     :return view<'image_template_manage/create.html'>: the view create image form
     """

    try:
        instance = api.server_get(request, instance_id)
        instance_id = getattr(instance, 'id', None)
        instance_name = getattr(instance, 'name', None)
        console = api.nova.server_spice_console(request, instance_id)

    except Unauthorized:
        raise
    except exceptions.NotFound, exc:
        msg = _('Can not retrieve spice url!')
        LOG.error('Can not retrieve spice url!error is %s.' % exc)
        return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
Exemplo n.º 22
0
def get_securitygroup_info(request, tenant_id, security_group_id):
    try:
        securitygroup = api.security_group_get(request, security_group_id)

        rules = [api.nova.SecurityGroupRule(frule) for
                 frule in securitygroup.rules]

        for rule in rules:
            setattr(rule, "ip_range", get_source(rule))

        return shortcuts.render(request,
            'securitygroup_manage/securitygroupinfo.html',
            {'securitygroup': securitygroup, 'rules': rules,
             "tenant_id": tenant_id})
    except Unauthorized:
        raise
    except Exception, ex:
        msg = 'get security group info error'
        LOG.error("the error is %s" % ex.message)
        return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
Exemplo n.º 23
0
def edit_subnet_action(request, subnet_id):
    """
    :param request:request object, subnet_id
    :return:view<'virtual_network_manage/networkprojectindex.html'>::action for edit subnet
    """
    form = UpdateSubnet(request, subnet_id, request.POST)
    if form.is_valid():
        data = form.cleaned_data
        params = {}
        try:
            params['name'] = data['subnet_name']
            if data['no_gateway']:
                params['gateway_ip'] = None
            elif data['gateway_ip']:
                params['gateway_ip'] = data['gateway_ip']

            setup_subnet_parameters(params, data, is_create=False)

            api.quantum.subnet_modify(request, subnet_id, **params)
        except Unauthorized:
            raise
        except Exception as exe:
            msg = ('Failed to edit subnet: %s' % data['subnet_name'])
            LOG.error('Failed to edit subnet,the error is %s' % exe.message)
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))

        return HttpResponse(
            {
                "message": "Edit subnet successfully!",
                "statusCode": UI_RESPONSE_DWZ_SUCCESS,
                "object_name": data['subnet_name']
            },
            status=UI_RESPONSE_DWZ_SUCCESS)
    else:
        return HttpResponse(
            {
                "form": form,
                "message": "",
                "statusCode": UI_RESPONSE_DWZ_ERROR
            },
            status=UI_RESPONSE_ERROR)
Exemplo n.º 24
0
def get_subnet_info(request, subnet_id):
    """
    :param request:request object, network_id
    :return:view<'virtual_network_manage/subnetinfo.html'>::get a subnet info
    """
    try:
        subnet = api.quantum.subnet_get(request, subnet_id)
        network = api.quantum.network_get(request, subnet.network_id)

        return shortcuts.render(request,
                                'virtual_network_manage/subnetinfo.html', {
                                    'network': network,
                                    'subnet': subnet
                                })
    except Unauthorized:
        raise
    except Exception, exe:
        msg = 'get subnet info error.'
        LOG.error('get subnet and network info error,the error is %s' %
                  exe.message)
        return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
Exemplo n.º 25
0
def get_port_info(request, port_id):
    """
    :param request:request object, port_id
    :return:view<'virtual_network_manage/portinfo.html'>::get a port info
    """
    tenant_choices = []
    try:
        port = api.quantum.port_get(request, port_id)
        network = api.quantum.network_get(request, port.network_id)
        tenants = api.tenant_list_not_filter(request, admin = True)
        for tenant in tenants:
            tenant_choices.append((tenant.id, tenant.name))

        return shortcuts.render(request, 'virtual_network_manage/portinfo.html', {'network': network,
                                                                                  'port' : port,
                                                                                  'tenants' : tenant_choices})
    except Unauthorized:
        raise
    except Exception, exe:
        msg = 'get port info error.'
        LOG.error('get port info error,the error is %s' % exe.message)
        return HttpResponse(jsonutils.dumps(ui_response(message = msg)))
Exemplo n.º 26
0
def get_network_info(request, tenant_id, network_id):
    """
    :param request:request object, tenant_id, network_id
    :return:view<'virtual_network_manage/networkinfo.html'>::get a network info
    """
    try:
        switch_tenants(request, tenant_id)
        network = api.quantum.network_get(request, network_id)
        network.set_id_as_name_if_empty(length=NETWORK_NAME_EMPTY_LENGTH)

        ports = api.quantum.port_list(request, network_id=network_id)

        for p in ports:
            p.set_id_as_name_if_empty()

        subnets = api.quantum.subnet_list(request, network_id=network.id)

        for s in subnets:
            s.set_id_as_name_if_empty()

        tenant_choices = []
        tenants = api.tenant_list_not_filter(request, admin=True)
        for tenant in tenants:
            tenant_choices.append((tenant.id, tenant.name))

        return shortcuts.render(
            request, 'virtual_network_manage/networkinfo.html', {
                'network': network,
                'subnets': subnets,
                "ports": ports,
                "tenants": tenant_choices
            })
    except Unauthorized:
        raise
    except Exception, exe:
        msg = 'get network info error.'
        LOG.error('get network info error,the error is %s' % exe.message)
        return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
Exemplo n.º 27
0
def create_port_action(request, network_id):
    """
    :param request:request object, network_id
    :return:view<'virtual_network_manage/networkprojectindex.html'>::action for create a port
    """
    form = CreatePort(request.POST)
    if form.is_valid():
        data = form.cleaned_data
        try:
            network = api.quantum.network_get(request, network_id)
            data['tenant_id'] = network.tenant_id
            data['admin_state_up'] = data['admin_state']
            del data['admin_state']

            api.quantum.port_create(request, **data)
        except Unauthorized:
            raise
        except Exception as exe:
            msg = get_text('Failed to create a port for network %s')\
                  % data['network_name']
            LOG.error('Failed to create port,the error is %s' % exe.message)
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))

        return HttpResponse(
            {
                "message": "Create port successfully!",
                "statusCode": UI_RESPONSE_DWZ_SUCCESS,
                "object_name": data['name']
            },
            status=UI_RESPONSE_DWZ_SUCCESS)
    else:
        return HttpResponse(
            {
                "form": form,
                "message": "",
                "statusCode": UI_RESPONSE_DWZ_ERROR
            },
            status=UI_RESPONSE_ERROR)
Exemplo n.º 28
0
def edit_port_action(request, port_id):
    """
    :param request:request object, port_id
    :return:view<'virtual_network_manage/networkprojectindex.html'>::action for edit a port
    """
    form = UpdatePort(request.POST)
    if form.is_valid():
        data = form.cleaned_data
        try:
            api.quantum.port_modify(request,
                                    port_id,
                                    name=data['name'],
                                    admin_state_up=data['admin_state'],
                                    device_id=data['device_id'],
                                    device_owner=data['device_owner'])
        except Unauthorized:
            raise
        except Exception as exe:
            msg = ('Failed to edit port %s' % data['name'])
            LOG.error('Failed to edit port,the error is %s' % exe.message)
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))

        return HttpResponse(
            {
                "message": "Edit port successfully!",
                "statusCode": UI_RESPONSE_DWZ_SUCCESS,
                "object_name": data['name']
            },
            status=UI_RESPONSE_DWZ_SUCCESS)
    else:
        return HttpResponse(
            {
                "form": form,
                "message": "",
                "statusCode": UI_RESPONSE_DWZ_ERROR
            },
            status=UI_RESPONSE_ERROR)
Exemplo n.º 29
0
            notice.release = data['release']
            notice.update_time = datetime.datetime.now(tz=utc)
            notice.save()
        except Notice.DoesNotExist:
            msg = 'Can not get notice (uuid=%s) information' % notice_uuid
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
        except Exception, e:
            LOG.error('Can not update notice uuid=%s,error is %s' % (
                notice_uuid, e.message))
            msg = 'update notice uuid=%s failed, please retry later.' % notice_uuid
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
        return HttpResponse(
            {"message": "Update notice Success", "statusCode": UI_RESPONSE_OK,
             "object_name": title}, status=UI_RESPONSE_OK)
    else:
        return HttpResponse(jsonutils.dumps(ui_response(notice_form)))


@check_permission('Delete Notice')
@require_GET
def delete_notice(request, notice_uuid):
    return shortcuts.render(request, 'notice_manage/delete.html',
        {'notice_uuid': notice_uuid})


@check_permission('Delete Notice')
@require_http_methods(['DELETE'])
@UIResponse('Notice Manage', 'get_notice_list')
def delete_notice_action(request, notice_uuid):
    try:
        notice = Notice.objects.get(uuid=notice_uuid)
Exemplo n.º 30
0
    username = request.user.username

    form = ChangePasswordForm(request, user_id, request.POST)
    if form.is_valid():
        old_password = request.POST.get('oldpassword', '')
        password = request.POST.get('password', '')
        try:
            api.user_update_own_password(request, old_password, password)
        except Unauthorized:
            return HttpResponse(jsonutils.dumps(
                ui_response(status_code=UI_RESPONSE_DWZ_ERROR,
                            message="The old password is wrong.")))
        except Exception, e:
            LOG.error('Change password error. %s' % e)
            return HttpResponse(jsonutils.dumps(
                ui_response(status_code=UI_RESPONSE_DWZ_ERROR,
                            message="change password error")))

        try:
            create_token(request, username, password)
        except Exception:
            pass

        return HttpResponse(jsonutils.dumps(
            ui_response(status_code=UI_RESPONSE_OK,
                        message="change password success.",
                        object_name=username)))
    else:
        return HttpResponse(jsonutils.dumps(ui_response(form)))
Exemplo n.º 31
0
    try:
        instance = api.server_get(request, instance_id)
        instance_id = getattr(instance, 'id', None)
        instance_name = getattr(instance, 'name', None)
        console = api.nova.server_spice_console(request, instance_id)

    except Unauthorized:
        raise
    except exceptions.NotFound, exc:
        msg = _('Can not retrieve spice url!')
        LOG.error('Can not retrieve spice url!error is %s.' % exc)
        return HttpResponse(jsonutils.dumps(ui_response(message=msg)))
    except Exception, exc:
        LOG.error('error is %s.' % exc)
        return HttpResponse(jsonutils.dumps(ui_response(message='error')))
    vnc_url = "%s&title=%s(%s)" % (console.url,
                                   instance_name,
                                   instance_id)
    return shortcuts.render(request,
                            'image_template_manage/create_and_instance.html',
                            {'vnc_url': vnc_url})


@require_GET
def instance_image_form(request, uuid):
    """
    :param request: request object
    :param uuid: the id of ImageStatus which will be detected
    :return: the status of instance
    """
Exemplo n.º 32
0
        response = HttpResponse(wrapper)
        response['Content-Length'] = os.path.getsize(download_path)
        response['Content-Type'] = 'application/octet-stream'
        response['Content-Encoding'] = 'utf-8'

        browser = request.META.get('HTTP_USER_AGENT', '')
        if browser.find("MSIE") != -1:
            filename = urllib.quote_plus(software.content_name.encode('utf-8'))
        else:
            filename = software.content_name.encode("utf-8")
        response['Content-Disposition'] = 'attachment; filename=%s' % filename

        return response
    else:
        return HttpResponse(jsonutils.dumps(
            ui_response(message='Binary file does not exist!')))


@check_permission('Delete Software')
@require_GET
def delete_software_form(request, software_uuid):
    return shortcuts.render(request,
                            'software_manage/delete.html',
                            {'software_uuid': software_uuid})


@require_http_methods(['DELETE'])
@UIResponse('Software Manage', 'get_software_list')
def delete_software_action(request, software_uuid):
    """
    :param request: request Object
Exemplo n.º 33
0
def create_subnet_action(request, network_id):
    """
    :param request:request object, network_id
    :return:view<'virtual_network_manage/networkprojectindex.html'>::action for create subnet
    """

    form = CreateSubnet(request, network_id, request.POST)
    if form.is_valid():
        data = form.cleaned_data
        network = None
        try:
            network = api.quantum.network_get(request, network_id)
        except Unauthorized:
            raise
        except Exception as exe:
            LOG.error('Failed to get network,the error is %s' % exe.message)
        if network:
            network_id = network.id
        else:
            network_id = network_id
        try:
            params = {
                'network_id': network_id,
                'name': data['subnet_name'],
                'cidr': data['cidr'],
                'ip_version': int(data['ip_version'])
            }
            if network.tenant_id:
                params['tenant_id'] = network.tenant_id
            if data['no_gateway']:
                params['gateway_ip'] = None
            elif data['gateway_ip']:
                params['gateway_ip'] = data['gateway_ip']

            setup_subnet_parameters(params, data)

            api.quantum.subnet_create(request, **params)
        except Unauthorized:
            raise
        except LicenseForbidden:
            raise
        except Exception as exe:
            if exe.message.find('overlaps with another subnet') != -1:
                msg = ('Failed! Overlaps with another subnet.')
            else:
                msg = ('Failed to create subnet')
            LOG.error('Failed to create subnet,the error is %s' % exe.message)
            return HttpResponse(jsonutils.dumps(ui_response(message=msg)))

        return HttpResponse(
            {
                "message": "Create subnet successfully!",
                "statusCode": UI_RESPONSE_DWZ_SUCCESS,
                "object_name": data['subnet_name']
            },
            status=UI_RESPONSE_DWZ_SUCCESS)
    else:
        return HttpResponse(
            {
                "form": form,
                "message": "",
                "statusCode": UI_RESPONSE_DWZ_ERROR
            },
            status=UI_RESPONSE_ERROR)
Exemplo n.º 34
0
        ports = api.quantum.port_list(request, device_id=router_project_id)

        for port in ports:
            port.set_id_as_name_if_empty()

        return shortcuts.render(
            request, 'virtual_router_manage/routerprojectinfo.html', {
                'routerproject': routerproject,
                'interfaces': ports,
                "tenant_id": tenant_id
            })
    except Exception, exc:

        msg = get_text('Port list can not be retrieved.')
        LOG.error('Port list can not be retrieved : %s.' % exc.message)
        return HttpResponse(jsonutils.dumps(ui_response(message=msg)))


@check_permission('Delete Router Interface')
@require_http_methods(['DELETE'])
@UIResponse('Virtual Routers Manage', 'get_routers_projects')
def delete_routerif_action(request, routerproject_id, interface_id):
    try:
        port = api.quantum.port_get(request, interface_id)
        if port['device_owner'] == 'network:router_gateway':
            api.quantum.router_remove_gateway(request, routerproject_id)
        else:
            api.quantum.router_remove_interface(request,
                                                routerproject_id,
                                                port_id=interface_id)
    except Unauthorized: