Esempio n. 1
0
    def post(self, request, *args, **kwargs):
        form = DescribeScreenPMVirtualizationRateValidator(data=request.data['data'])
        if not form.is_valid():
            return Response(console_response(
                CommonErrorCode.PARAMETER_ERROR,
                form.errors
            ))

        urlparams = ['owner', 'poolname']
        data = form.validated_data
        num = data.get('num')
        if num == None:
            num = 3
        poolname = data.get('poolname') or 'all'

        vr_payload = Payload(
            request=request,
            action='MonitorFinancialServerVirtualizationRate',
            owner=request.owner,
            poolname=poolname,
            num=num
        )

        resp = describe_screen_pmvr_rate(vr_payload.dumps(), urlparams)
        return Response(console_response(total_count=len(resp), ret_set=resp, timestamp=now_to_timestamp()))
Esempio n. 2
0
    def post(self, request, *args, **kwargs):
        form = DeleteTrashDiskValidator(data=request.data)
        if not form.is_valid():
            return Response(console_response(90001, form.errors))

        val_data = form.validated_data
        trash_ids = val_data.get("trash_ids")

        trashs = DisksTrash.objects.filter(id__in=val_data.get('trash_ids'))

        disk_ids = DisksTrashService.get_disk_ids(trash_ids)
        payload = Payload(
            request=request,
            action='DeleteDisk',
            disk_id=disk_ids
        )
        disk_obj_list = DisksModel.objects.filter(
            disk_id__in=disk_ids, deleted=True)
        if disk_obj_list.count() > 0:
            disk_obj = disk_obj_list[0]
            if disk_obj.disk_type == DiskType.POWERVM_HMC:
                helper = HMCDiskHelper()
                resp = helper.delete(payload.dumps())
                if resp['ret_code'] != 0:
                    return Response(resp)
            else:
                resp = delete_disk(payload.dumps())
        else:
            return Response(console_response(1, u'找不到trash_id关联的disk_id'))
        trashs = DisksTrash.objects.filter(id__in=trash_ids)
        DisksTrashService.delete(trashs)
        return Response(resp)
Esempio n. 3
0
    def get_used_subnets(self, request):
        pub_net = 0
        pri_net = 0
        payload = Payload(
            request=request,
            action='DescribeNets',
            simple=1,
        )
        resp = api.get(payload=payload.dumps())
        code = resp["code"]
        msg = resp.get("msg", '')
        api_code = resp.get("ret_code", -1)
        api_status = resp['api_status']
        if code != 0:
            logger.error(
                "ResourceInfo DescribeNets error: api_ret_code (%d), api_status (%d), msg (%s)" % (api_code, api_status,
                                                                                                   msg))
            return pub_net, pri_net
        net_set = resp["data"].get("ret_set", [])
        logger.debug("ResourceInfo DescribeNets: %s" % net_set)
        if net_set:
            net_set = net_set[0].get('subnets', [])

        for item in net_set:
            if item.get("gateway_ip"):
                pub_net += 1
            else:
                pri_net += 1
        logger.info("ResourceInfo pub_net:%s pri_net:%s" % (pub_net, pri_net))
        return pub_net, pri_net
Esempio n. 4
0
    def post(self, request, *args, **kwargs):
        form = AllocateIpsSerializer(data=request.data)
        if not form.is_valid():
            code, msg = console_code(form)
            return Response(console_response(code=code, msg=msg))

        data = form.validated_data
        count = data.pop("count")
        payload = Payload(request=request,
                          action='AllocateIP',
                          bandwidth=data.get("bandwidth"),
                          billing_mode=data.get("billing_mode", "bandwidth"),
                          ip_name=data.get("ip_name"),
                          charge_mode=data.get("charge_mode"),
                          package_size=data.get("package_size"),
                          count=count)

        if data.get("ip"):
            payload = Payload(request=request,
                              action='AllocateIP',
                              bandwidth=data.get("bandwidth"),
                              billing_mode=data.get("billing_mode",
                                                    "bandwidth"),
                              ip_name=data.get("ip_name"),
                              floatingip=data.get("ip_address"),
                              charge_mode=data.get("charge_mode"),
                              package_size=data.get("package_size"),
                              count=count)

        resp = allocate_ips(payload=payload.dumps())
        return Response(resp)
Esempio n. 5
0
    def post(self, request, *args, **kwargs):
        form = ResizeInstanceSerializer(data=request.data)
        if not form.is_valid():
            return Response(
                console_response(CommonErrorCode.PARAMETER_ERROR, form.errors))
        payload = Payload(
            request=request,
            action='ResizeInstance',
            instance_id=form.validated_data['instance_id'],
            instance_type_id=form.validated_data['instance_type_id'],
            with_confirm=form.validated_data['with_confirm'])
        resp = resize_instance(payload.dumps())

        instance_id = form.validated_data['instance_id']
        old_instance_type_id = InstancesModel.get_instance_by_id(
            instance_id=instance_id).instance_type.instance_type_id
        new_instance_type_id = form.validated_data['instance_type_id']

        logger.info('Old Instance Type Id: %s', old_instance_type_id)
        logger.info('New Instance Type Id: %s', new_instance_type_id)
        old_instance_type = InstanceTypeModel.get_instance_type_by_id(
            old_instance_type_id)
        new_instance_type = InstanceTypeModel.get_instance_type_by_id(
            new_instance_type_id)

        logger.info('Old Instance Type: %s', old_instance_type)
        logger.info('New Instance Type: %s', new_instance_type)
        resp["action_record"] = self.get_old_new_quotas(
            instance_id, old_instance_type, new_instance_type)

        return Response(resp)
Esempio n. 6
0
 def post(self, request, *args, **kwargs):
     data = request.data.get('data')
     form = CreateCmdbItemValidator(data=data)
     if not form.is_valid():
         return Response(console_response(
             CommonErrorCode.PARAMETER_ERROR,
             form.errors
         ))
     cfg_type = data.get('type')
     owner = request.data.get('owner')
     ticket_id = data.get('ticket_id')
     cfg_model = get_cfg_model_by_type(cfg_type)
     if cfg_model:
         Validator = get_validator_by_model(cfg_model)
         form = Validator(data=data)
     else:
         return Response(console_response(
             CommonErrorCode.PARAMETER_ERROR,
             form.errors
         ))
     if not form.is_valid():
         return Response(console_response(
             CommonErrorCode.PARAMETER_ERROR,
             form.errors
         ))
     payload = Payload(
         request=request,
         owner=owner,
         ticket_id=ticket_id,
         action=self.action,
         cfg_type=cfg_type,
         data=form.validated_data
     )
     resp = create_cmdb_item(payload.dumps())
     return Response(console_response(ret_set=resp), status=status.HTTP_200_OK)
Esempio n. 7
0
    def post(self, request, *args, **kwargs):
        format = 'real_time'
        poolname = 'all'

        urlparams = ['owner', 'itemname', 'format', 'poolname']

        cpu_util_itemname = 'cpu_util'
        mem_util_itemname = 'mem_util'
        disk_total_and_usage_itemname = 'disk_total_and_usage'
        logger.debug("aaa %s", request.data)

        payload = Payload(
            request=request,
            action='MonitorFinancialServer',
            owner=request.owner,
            format=format,
            num=request.data.get("data").get("num", None),
            poolname=poolname,
        )

        resp = describe_dashboard_cabinet_loads(payload.dumps(), urlparams,
                                                cpu_util_itemname,
                                                mem_util_itemname,
                                                disk_total_and_usage_itemname)

        return Response(
            console_response(total_count=len(resp),
                             ret_set=resp,
                             timestamp=now_to_timestamp()))
Esempio n. 8
0
 def post(self, request, *args, **kwargs):
     form = UpdateCmdbValidator(data=request.data.get('data'))
     if not form.is_valid():
         return Response(console_response(
             CommonErrorCode.PARAMETER_ERROR,
             form.errors
         ))
     data = form.validated_data
     cfg_type = data.get('type')
     cfg_items = data.get('cfg_items')
     cfg_model = get_cfg_model_by_type(cfg_type)
     if cfg_model:
         Validator = get_validator_by_model(cfg_model)
         form = Validator(data=cfg_items, many=True)
     else:
         return Response(console_response(
             CommonErrorCode.PARAMETER_ERROR
         ))
     if not form.is_valid():
         field, msgs = form.errors.pop().popitem()
         return Response(console_response(
             CommonErrorCode.PARAMETER_ERROR,
             str().join(msgs)
         ))
     payload = Payload(
         request=request,
         action=self.action,
         type=cfg_type,
         items=cfg_items,
     )
     resp = get_update_diff(payload.dumps())
     return Response(resp, status=status.HTTP_200_OK)
Esempio n. 9
0
    def post(self, request, *args, **kwargs):
        form = CreateBackupsValidator(data=request.data)

        if not form.is_valid():
            return Response(console_response(90001, form.errors))

        backup_type = get_type_from_resource_id(
            form.validated_data['resource_id']
        )

        action = 'CreateDiskBackup' if backup_type == 'disk' else 'SnapshotInstance'

        payload = Payload(
            request=request,
            action=action,
            resource_id=form.validated_data['resource_id'],  # 关联的资源ID,作为后端的disk索引
            backup_name=form.validated_data['backup_name'],
            backup_type=backup_type,
            charge_mode=form.validated_data['charge_mode'],
            package_size=form.validated_data['package_size'],
            instance_to_image=form.validated_data.get('instance_to_image'),
        )

        resp = create_backup(payload.dumps())
        return Response(resp)
Esempio n. 10
0
 def post(self, request, *args, **kwargs):
     form = ApprovalCmdbTicketValidator(data=request.data.get('data'))
     if not form.is_valid():
         return Response(console_response(
             CommonErrorCode.PARAMETER_ERROR,
             form.errors
         ))
     data = form.validated_data
     # zone = request.zone
     cfg_type = data.get('type')
     ticket_id = data.get('ticket_id')
     applicant = data.get('applicant')
     approve = data.get('approve')
     cfg_diffs = data.get('cfg_diffs')
     payload = Payload(
         request=request,
         action=self.action,
         cfg_type=cfg_type,
         ticket_id=ticket_id,
         applicant=applicant,
         approve=approve,
         cfg_diffs=cfg_diffs
     )
     resp = approve_cmdb_ticket(payload.dumps())
     return Response(resp)
Esempio n. 11
0
 def post(self, request, *args, **kwargs):
     data = validate_request_data(request.data, CreateRdsValidator)
     if isinstance(data, Response):
         return data
     payload = Payload(request=request, action=self.action).dumps()
     payload.update(dict(data))
     resp = create_rds(payload)
     return Response(resp, status=status.HTTP_200_OK)
Esempio n. 12
0
 def post(self, request, *args, **kwargs):
     payload = Payload(
         request=request,
         action=self.action,
         username=request.data.get('owner'),
     )
     resp = list_top_four_msg(payload.dumps())
     return Response(resp)
Esempio n. 13
0
    def post(self, request, *args, **kwargs):
        payload = Payload(
            request=request,
            action='DescribeInstance',
        )

        resp = describe_instances_with_sample(payload.dumps())
        return Response(resp)
Esempio n. 14
0
 def post(self, request, *args, **kwargs):
     data = request.data.get('data')
     payload = Payload(request=request,
                       action='',
                       quota_type=data.get('quota_type', ''),
                       change_amount=data.get('change_amount', 0))
     resp = add_ticket_bpm(payload.dumps())
     return Response(resp)
Esempio n. 15
0
 def post(self, request, *args, **kwargs):
     form = ReleaseIpsSerializer(data=request.data)
     if not form.is_valid():
         code, msg = console_code(form)
         return Response(console_response(code=code, msg=msg))
     ips = form.validated_data.get("ips")
     payload = Payload(request=request, action='UnBindIP', ips=ips)
     resp = release_ip(payload.dumps())
     return Response(resp)
Esempio n. 16
0
 def post(self, request, *args, **kwargs):
     file_obj = request.FILES['file']
     payload = Payload(
         request=request,
         action=self.action,
         type=request.data.get('type'),
         file_obj=file_obj
     )
     resp = handle_upload_file(payload.dumps(), request)
     return Response(resp, status=status.HTTP_200_OK)
Esempio n. 17
0
 def post(self, request, *args, **kwargs):
     form = UnbindInstanceIpSerializer(data=request.data)
     if not form.is_valid():
         return Response(
             console_response(CommonErrorCode.PARAMETER_ERROR, form.errors))
     data = form.validated_data
     payload = Payload(request=request,
                       action='UnBindIP',
                       ip_id=data.get("ip_id"))
     resp = unbind_ip(payload.dumps())
     return Response(resp)
Esempio n. 18
0
 def post(self, request, *args, **kwargs):
     form = DeleteNotifyGroupValidator(data=request.data)
     if not form.is_valid():
         return Response(
             console_response(CommonErrorCode.PARAMETER_ERROR, form.errors))
     data = form.validated_data
     payload = Payload(request=request,
                       action='alarmDelUgroup',
                       group_ids=data.get("group_ids"))
     resp = delete_notify_group(payload=payload.dumps())
     return Response(resp)
Esempio n. 19
0
 def post(self, request, *args, **kwargs):
     data = validate_request_data(request.data,
                                  ChangeRdsAccountPasswordValidator,
                                  with_request=True,
                                  request=request)
     if isinstance(data, Response):
         return data
     payload = Payload(request=request, action=self.action).dumps()
     payload.update(dict(data))
     resp = change_rds_account_password(payload)
     return Response(resp, status=status.HTTP_200_OK)
Esempio n. 20
0
 def post(self, request, *args, **kwargs):
     data = validate_request_data(request.data,
                                  DeleteRdsDatabaseValidator,
                                  with_request=True,
                                  request=request)
     if isinstance(data, Response):
         return data
     payload = Payload(request=request, action=self.action).dumps()
     payload.update(dict(data))
     resp = delete_rds_database(payload)
     return Response(resp, status=status.HTTP_200_OK)
Esempio n. 21
0
 def post(self, request, *args, **kwargs):
     form = DescribeQuotaValidator(data=request.data)
     if not form.is_valid():
         return Response(
             console_response(CommonErrorCode.REQUEST_API_ERROR,
                              form.errors))
     payload = Payload(request=request,
                       action='',
                       quota_type=form.validated_data["quota_type"])
     resp = get_quota(payload.dumps())
     return Response(resp)
Esempio n. 22
0
 def post(self, request, *args, **kwargs):
     data = request.data
     validator = DeleteRoutersSerializer(data=data)
     if not validator.is_valid():
         code, msg = console_code(validator)
         return Response(console_response(code=code, msg=msg),
                         status=status.HTTP_200_OK)
     routers = validator.validated_data.get("routers")
     payload = Payload(request=request, action=self.action, routers=routers)
     resp = delete_routers(payload.dumps())
     return Response(resp, status=status.HTTP_200_OK)
Esempio n. 23
0
    def post(self, request, *args, **kwargs):
        form = CreateNetValidator(data=request.data)
        if not form.is_valid():
            logger.error(form.errors)
            code, msg = console_code(form)
            return Response(console_response(code=code, msg=msg))
        data = form.validated_data
        zone = request.zone
        owner = request.owner
        type = data.get("net_type")
        cidr = data.get("cidr")
        gateway_ip = data.get("gateway_ip")

        # valid gateway_ip: public - need gateway_ip; private - donot need
        code, msg = net_gateway_ip_validator(gateway_ip, type)
        if code:
            return Response(console_response(code=code, msg=msg))

        # valid net type cidr
        code, msg = net_type_cidr_validator(cidr, type)
        if code:
            return Response(console_response(code=code, msg=msg))

        # first according to net_type get the network_uuid, if get none do create networks action
        networks = NetworksModel.get_networks_by_zone_owner_and_type(
            zone, owner, type)
        net_type = self.network_type.get(type, "vxlan")
        if not networks:
            action = "CreateNetwork"
            network_uuid, err = create_network(payload=Payload(
                request=request, action=action, type=net_type).dumps())
            if not network_uuid:
                logger.error("CreateNetwork error, %s" % str(err))
                return Response(
                    console_response(code=ErrorCode.net.GET_NETWORK_FAILED,
                                     msg=err))
        else:
            network_uuid = networks.uuid
        # do action
        payload = Payload(
            request=request,
            action=self.action,
            network_uuid=network_uuid,
            cidr=data.get("cidr"),
            net_name=data.get("net_name"),
            gateway_ip=data.get("gateway_ip"),
            net_type=net_type,
            ip_version=data.get("ip_version"),
            allocation_pools_start=data.get("allocation_pools_start"),
            allocation_pools_end=data.get("allocation_pools_end"),
            enable_dhcp=data.get("enable_dhcp"))

        resp = create_net(payload=payload.dumps())
        return Response(resp)
Esempio n. 24
0
 def post(self, request, *args, **kwargs):
     data = validate_request_data(request.data,
                                  ModifyRdsAccountAuthorityValidator,
                                  with_request=True,
                                  request=request)
     if isinstance(data, Response):
         return data
     payload = Payload(request=request, action=self.action).dumps()
     payload.update(dict(data))
     resp = modify_rds_account_authority(payload)
     return Response(resp, status=status.HTTP_200_OK)
Esempio n. 25
0
 def post(self, request, *args, **kwargs):
     form = ResizeDisksSerializer(data=request.data)
     if not form.is_valid():
         return Response(console_response(90001, form.errors))
     disk_id = form.validated_data.get("disk_id")
     payload = Payload(request=request,
                       action='ResizeDisk',
                       new_size=form.validated_data["new_size"],
                       disk_id=disk_id)
     resp = resize_disk(payload.dumps())
     return Response(resp)
Esempio n. 26
0
    def post(self, request, *args, **kwargs):
        form = DeleteNoticeByIdsValidator(data=request.data.get("data"))
        if not form.is_valid():
            return Response(console_response(code=1, msg=form.error_messages))

        payload = Payload(request=request,
                          action=self.action,
                          username=request.data.get('owner'),
                          msgids=form.validated_data.get('msgids'))
        resp = delete_notice_by_ids(payload.dumps())
        return Response(resp)
Esempio n. 27
0
 def post(self, request, *args, **kwargs):
     form = DeleteAlarmNotifyMethodValidator(data=request.data)
     if not form.is_valid():
         return Response(
             console_response(CommonErrorCode.PARAMETER_ERROR, form.errors))
     data = form.validated_data
     payload = Payload(request=request,
                       action='alarmDelAction',
                       method_id=data["method_id"])
     resp = delete_alarm_notify_method(payload.dumps())
     return Response(resp)
Esempio n. 28
0
 def post(self, request, *args, **kwargs):
     form = DescribeNoticeInfoValidator(data=request.data.get('data'))
     if not form.is_valid():
         return Response(
             console_response(CommonErrorCode.PARAMETER_ERROR, form.errors))
     data = form.validated_data
     payload = Payload(request=request,
                       action=self.action,
                       msgid=data.get('msgid'))
     resp = list_msg_info(payload.dumps())
     return Response(resp)
Esempio n. 29
0
 def post(self, request, *args, **kwargs):
     form = ModifyIpsNameSerializer(data=request.data)
     if not form.is_valid():
         code, msg = console_code(form)
         return Response(console_response(code=code, msg=msg))
     ip_id = form.validated_data.get("ip_id")
     payload = Payload(request=request,
                       action="ModifyIpsName",
                       ip_name=form.validated_data.get("ip_name"),
                       ip_id=ip_id)
     resp = modify_ip_name(payload.dumps())
     return Response(resp)
Esempio n. 30
0
 def post(self, request, *args, **kwargs):
     form = OperatorInstancesValidator(data=request.data)
     if not form.is_valid():
         return Response(
             console_response(CommonErrorCode.PARAMETER_ERROR, form.errors))
     instances = form.validated_data["instances"]
     payload = Payload(request=request,
                       action=self.action,
                       instances=instances,
                       vm_type=request.data.get('vm_type', None))
     resp = instance_multi_op(payload.dumps())
     return Response(resp)