Skip to content

Commit 707062f

Browse files
committed
fix
1 parent e38627b commit 707062f

File tree

3 files changed

+23
-29
lines changed

3 files changed

+23
-29
lines changed

src/aaz_dev/command/model/configuration/_command.py

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -324,41 +324,34 @@ def _build_output_type_by_subresource_selector(subresource_selector):
324324

325325

326326
def handle_duplicated_options(arguments, has_subresource, operation_id):
327-
def _replace_arg(arg1, arg2):
328-
left_arg1 = True
329-
# check whether you need to replace argument
330-
if _can_replace_argument(arg2, arg1, has_subresource):
331-
arg1.ref_schema.arg = arg2.var
332-
dropped_args.add(arg1.var)
333-
left_arg1 = False
334-
elif _can_replace_argument(arg1, arg2, has_subresource):
335-
arg2.ref_schema.arg = arg1.var
336-
dropped_args.add(arg2.var)
337-
left_arg1 = True
338-
else:
339-
# warning developer handle duplicated options
340-
logger.warning(
341-
f"Duplicated Option Value: {set(arg1.options).intersection(arg2.options)} : "
342-
f"{arg1.var} with {arg2.var} : {operation_id}"
343-
)
344-
345-
return left_arg1
346-
347327
# check argument with duplicated option names
348328
dropped_args = set()
349329
used_args = set()
350330
for arg in arguments.values():
351331
used_args.add(arg.var)
352332
if arg.var in dropped_args or not arg.options:
353333
continue
354-
334+
r_arg = None
355335
for v in arguments.values():
356336
if v.var in used_args or v.var in dropped_args or arg.var == v.var or not v.options:
357337
continue
358338
if not set(arg.options).isdisjoint(v.options):
359-
left_arg = _replace_arg(arg, v)
360-
if not left_arg:
361-
break
339+
r_arg = v
340+
break
341+
if r_arg:
342+
# check whether you need to replace argument
343+
if _can_replace_argument(r_arg, arg, has_subresource):
344+
arg.ref_schema.arg = r_arg.var
345+
dropped_args.add(arg.var)
346+
elif _can_replace_argument(arg, r_arg, has_subresource):
347+
r_arg.ref_schema.arg = arg.var
348+
dropped_args.add(r_arg.var)
349+
else:
350+
# warning developer handle duplicated options
351+
logger.warning(
352+
f"Duplicated Option Value: {set(arg.options).intersection(r_arg.options)} : "
353+
f"{arg.var} with {r_arg.var} : {operation_id}"
354+
)
362355

363356
return [arg for var, arg in arguments.items() if var not in dropped_args]
364357

src/aaz_dev/swagger/controller/_example_builder.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,6 @@ def __init__(self, command=None, operation=None, cmd_operation=None):
7878
self.cmd_operation = cmd_operation
7979

8080
def mapping(self, example_dict):
81-
if not self.operation.parameters:
82-
return self.example_items
83-
8481
for param in self.operation.parameters:
8582
if param.name not in example_dict:
8683
continue

src/aaz_dev/swagger/model/schema/cmd_builder.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -407,8 +407,12 @@ def build_cmd_string_format(schema):
407407
fmt = CMDStringFormat()
408408

409409
if schema.pattern is not None:
410-
fmt.pattern = schema.pattern
411-
fmt_assigned = True
410+
try:
411+
_ = re.compile(schema.pattern) # verify schema pattern
412+
fmt.pattern = schema.pattern
413+
fmt_assigned = True
414+
except Exception as err:
415+
logger.warning('Invalid regex expression: traces: {}, pattern: {}'.format(str([schema.traces]), schema.pattern))
412416
if schema.max_length is not None:
413417
fmt.max_length = schema.max_length
414418
fmt_assigned = True

0 commit comments

Comments
 (0)