예제 #1
0
def enable_host(request):
    """
    启用host
    project_id  项目ID
    host_id 地址ID
    :return:
    """
    project_id = request.POST.get('project_id')
    host_id = request.POST.get('host_id')
    if not project_id.isdecimal() or not host_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    obj = Project.objects.filter(id=project_id)
    if obj:
        obi = GlobalHost.objects.filter(id=host_id, project=project_id)
        if obi:
            obi.update(status=True)
            record = ProjectDynamic(project=Project.objects.get(id=project_id),
                                    type='启用',
                                    operationObject='HOST',
                                    user=User.objects.get(id=request.user.pk),
                                    description='启用HOST“%s”' % obi[0].name)
            record.save()
            return JsonResponse(code_msg=GlobalStatusCode.success())
        else:
            return JsonResponse(code_msg=GlobalStatusCode.host_not_exist())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
예제 #2
0
def update_host(request):
    """
    修改host
    project_id 项目id
    host_id 地址ID
    name 地址名称
    host 地址域名
    description 描述
    :return:
    """
    project_id = request.POST.get('project_id')
    host_id = request.POST.get('host_id')
    if not host_id.isdecimal() or not project_id.isdecimal():
        return JsonResponse(code_msg=GlobalStatusCode.parameter_wrong())
    name = request.POST.get('name')
    host = request.POST.get('host')
    desc = request.POST.get('description')
    obj = Project.objects.filter(id=project_id)
    if obj:
        obi = GlobalHost.objects.filter(id=host_id, project=project_id)
        if obi:
            obm = GlobalHost.objects.filter(name=name).exclude(id=host_id)
            if len(obm) == 0:
                obi.update(project=Project.objects.get(id=project_id),
                           name=name,
                           host=host,
                           description=desc)
                record = ProjectDynamic(
                    project=Project.objects.get(id=project_id),
                    type='修改',
                    operationObject='HOST',
                    user=User.objects.get(id=request.user.pk),
                    description='修改HOST“%s”' % name)
                record.save()
                return JsonResponse(code_msg=GlobalStatusCode.success())
            else:
                return JsonResponse(
                    code_msg=GlobalStatusCode.name_repetition())
        else:
            return JsonResponse(code_msg=GlobalStatusCode.host_not_exist())
    else:
        return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
    def post(self, request):
        """
        修改host域名
        :param request:
        :return:
        """
        data = JSONParser().parse(request)
        result = self.parameter_check(data)
        if result:
            return result
        try:
            Project.objects.get(id=data["project_id"])
        except ObjectDoesNotExist:
            return JsonResponse(code_msg=GlobalStatusCode.project_not_exist())
        try:
            obi = GlobalHost.objects.get(id=data["host_id"])
        except ObjectDoesNotExist:
            return JsonResponse(code_msg=GlobalStatusCode.host_not_exist())

        if GlobalHost.objects.filter(name=data["name"],
                                     project=data["project_id"]):
            return JsonResponse(code_msg=GlobalStatusCode.name_repetition())
        else:
            serializer = GlobalHostSerializer(data=data)
            with transaction.atomic():
                if serializer.is_valid():
                    # 外键project_id
                    serializer.update(instance=obi, validated_data=data)
                    # 记录动态
                    record_dynamic(project=data["project_id"],
                                   _type="修改",
                                   operationObject="域名",
                                   user=request.user.pk,
                                   data=data["name"])
                    return JsonResponse(code_msg=GlobalStatusCode.success())
                return JsonResponse(code_msg=GlobalStatusCode.fail())