X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2common%2Fviews%2Fview.py;h=57294e2fd7ac3174c9c78cfbaff98aebfe39495c;hb=7e21b8d5ceabc857812194f7a865066e4f13ad85;hp=558384a1bbf8926e40be0cb174aec2d5b1a75ca7;hpb=51b371f14f46196e0cfea60264361364e3cc9f57;p=pti%2Fo2.git diff --git a/o2common/views/view.py b/o2common/views/view.py index 558384a..57294e2 100644 --- a/o2common/views/view.py +++ b/o2common/views/view.py @@ -56,24 +56,22 @@ def check_filter(obj: ColumnElement, filter_str: str): def check_filter_attribute(obj: ColumnElement, filter_str: str): - # filter_without_space = filter_str.replace(" ", "") - filter_without_space = filter_str.strip(' ()') + filter_without_space = filter_str.strip() logger.debug( f"filter_str: {filter_str}, stripped: {filter_without_space}") items = filter_without_space.split(';') for i in items: - # if '(' in i: - # i = i.replace("(", "") - # if ')' in i: - # i = i.replace(")", "") - filter_expr = i.split(',') + item = i.strip(' ()') + filter_expr = item.split(',') if len(filter_expr) < 3: raise BadRequestException( - 'ignore invalid filter {}'.format(i)) - continue + 'invalid filter {}'.format(i)) filter_op = filter_expr[0].strip() filter_key = filter_expr[1].strip() + if filter_key == 'objectType': + logger.debug('ignore objectType while checking formatter') + continue filter_vals = filter_expr[2:] if filter_op in ["eq", "neq", "gt", "lt", "gte", "lte"]: if len(filter_vals) != 1: @@ -89,6 +87,7 @@ def check_filter_attribute(obj: ColumnElement, filter_str: str): else: pass filter_key = transfer_filter_attr_name_in_special(obj, filter_key) - if not hasattr(obj, filter_key): + if not hasattr(obj, filter_key) or \ + filter_key in ['hash', 'updatetime', 'createtime', 'events']: raise BadRequestException( 'Filter attrName {} is invalid'.format(filter_key))