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)))
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)
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)))
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)))
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)))
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)
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)
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)
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")))
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)))
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)))
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)))
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)
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)
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")))
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)))
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)))
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)))
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)
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)))
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)))
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)))
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)
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)))
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)))
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)))
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)
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)
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)
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)))
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 """
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
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)
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: