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()))
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)
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
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)
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)
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)
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()))
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)
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)
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)
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)
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)
def post(self, request, *args, **kwargs): payload = Payload( request=request, action='DescribeInstance', ) resp = describe_instances_with_sample(payload.dumps()) return Response(resp)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)