def r_update(uuids): ret = dict() ret['state'] = ji.Common.exchange_state(20000) ret['data'] = list() args_rules = [ Rules.UUIDS.value ] if 'remark' in request.json: args_rules.append( Rules.REMARK.value ) if 'iops' in request.json: args_rules.append( Rules.IOPS.value ) if 'iops_rd' in request.json: args_rules.append( Rules.IOPS_RD.value ) if 'iops_wr' in request.json: args_rules.append( Rules.IOPS_WR.value ) if 'iops_max' in request.json: args_rules.append( Rules.IOPS_MAX.value ) if 'iops_max_length' in request.json: args_rules.append( Rules.IOPS_MAX_LENGTH.value ) if 'bps' in request.json: args_rules.append( Rules.BPS.value ) if 'bps_rd' in request.json: args_rules.append( Rules.BPS_RD.value ) if 'bps_wr' in request.json: args_rules.append( Rules.BPS_WR.value ) if 'bps_max' in request.json: args_rules.append( Rules.BPS_MAX.value ) if 'bps_max_length' in request.json: args_rules.append( Rules.BPS_MAX_LENGTH.value ) if args_rules.__len__() < 2: return ret request.json['uuids'] = uuids need_update_quota = False need_update_quota_parameters = ['iops', 'iops_rd', 'iops_wr', 'iops_max', 'iops_max_length', 'bps', 'bps_rd', 'bps_wr', 'bps_max', 'bps_max_length'] if filter(lambda p: p in request.json, need_update_quota_parameters).__len__() > 0: need_update_quota = True try: ji.Check.previewing(args_rules, request.json) disk = Disk() # 检测所指定的 UUDIs 磁盘都存在 for uuid in uuids.split(','): disk.uuid = uuid disk.get_by('uuid') for uuid in uuids.split(','): disk.uuid = uuid disk.get_by('uuid') disk.remark = request.json.get('remark', disk.remark) disk.iops = request.json.get('iops', disk.iops) disk.iops_rd = request.json.get('iops_rd', disk.iops_rd) disk.iops_wr = request.json.get('iops_wr', disk.iops_wr) disk.iops_max = request.json.get('iops_max', disk.iops_max) disk.iops_max_length = request.json.get('iops_max_length', disk.iops_max_length) disk.bps = request.json.get('bps', disk.bps) disk.bps_rd = request.json.get('bps_rd', disk.bps_rd) disk.bps_wr = request.json.get('bps_wr', disk.bps_wr) disk.bps_max = request.json.get('bps_max', disk.bps_max) disk.bps_max_length = request.json.get('bps_max_length', disk.bps_max_length) disk.update() disk.get() if disk.sequence >= 0 and need_update_quota: message = { '_object': 'disk', 'action': 'quota', 'uuid': disk.uuid, 'guest_uuid': disk.guest_uuid, 'node_id': disk.node_id, 'disks': [disk.__dict__] } Utils.emit_instruction(message=json.dumps(message)) ret['data'].append(disk.__dict__) return ret except ji.PreviewingError, e: return json.loads(e.message)