@@ -1011,8 +1011,14 @@ def _generate_sub_commands(cls, schema, subresource_idx, update_cmd, ref_args_op
10111011 assert update_op is not None
10121012
10131013 # find arg
1014- arg_var = schema .arg
1015- arg , arg_idx = cls .find_arg_in_command_by_var (update_cmd , arg_var )
1014+ if schema .arg :
1015+ arg_var = schema .arg
1016+ arg , arg_idx = cls .find_arg_in_command_by_var (update_cmd , arg_var )
1017+ if not arg or not arg_idx :
1018+ raise exceptions .InvalidAPIUsage (f"Argument '{ arg_var } ' not exist in command" )
1019+ else :
1020+ # schema is flatten
1021+ arg = None
10161022
10171023 # build ref_args
10181024 ref_args = []
@@ -1030,9 +1036,6 @@ def _generate_sub_commands(cls, schema, subresource_idx, update_cmd, ref_args_op
10301036 a .options = sorted (a .options , key = lambda o : (len (o ), o ))[- 1 :] # use the longest argument
10311037 ref_args .append (a )
10321038
1033- if not arg or not arg_idx :
1034- raise exceptions .InvalidAPIUsage (f"Argument '{ arg_var } ' not exist in command" )
1035-
10361039 if isinstance (schema , CMDArraySchema ):
10371040 assert isinstance (arg , CMDArrayArg )
10381041 # list command
@@ -1096,12 +1099,13 @@ def _generate_sub_commands(cls, schema, subresource_idx, update_cmd, ref_args_op
10961099 return [list_command , create_command , update_command , delete_command , show_command ]
10971100
10981101 elif isinstance (schema , CMDObjectSchema ):
1099- assert isinstance (arg , CMDObjectArg )
11001102 if schema .props and schema .additional_props :
11011103 raise NotImplementedError ()
11021104
11031105 if schema .props :
1104- ref_args .extend (arg .args )
1106+ if arg :
1107+ assert isinstance (arg , CMDObjectArg )
1108+ ref_args .extend (arg .args )
11051109
11061110 # create command
11071111 create_command = cls ._build_subresource_create_command (
@@ -1133,6 +1137,7 @@ def _generate_sub_commands(cls, schema, subresource_idx, update_cmd, ref_args_op
11331137 )
11341138
11351139 elif schema .additional_props and schema .additional_props .item :
1140+ assert isinstance (arg , CMDObjectArg )
11361141 item_subresource_idx = [* subresource_idx , '{}' ]
11371142
11381143 item_arg = arg .additional_props .item
0 commit comments