Skip to content

Commit 0930142

Browse files
authored
Revert "Disable flattening of objects within the request body for the generate-all command"
1 parent 9aa11c5 commit 0930142

File tree

6 files changed

+10
-25
lines changed

6 files changed

+10
-25
lines changed

src/aaz_dev/command/api/_cmds.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ def generate_command_models_from_swagger(swagger_tag, workspace_path=None):
160160
sys.exit(1)
161161

162162

163-
@bp.cli.command("generate-all", short_help="Fully generate metadata from the specification, mainly for use in https://github.com/magodo/az-rs, and additionally to validate compatibility.")
163+
@bp.cli.command("generate-all", short_help="Fully generate data model from OpenAPI specification, mainly for use in https://github.com/magodo/az-rs.")
164164
@click.option(
165165
"--swagger-path", '-s',
166166
type=click.Path(file_okay=False, dir_okay=True, readable=True, resolve_path=True),
@@ -230,10 +230,6 @@ def to_aaz(module_name):
230230
aaz_manager=AAZSpecsManager(),
231231
source=SourceTypeEnum.OpenAPI,
232232
)
233-
for resource in resources:
234-
resource["options"] = {
235-
"non_flatten": True
236-
}
237233
ws.add_new_resources_by_swagger(mod_names=module_name, version=version, resources=resources)
238234

239235
# provide default short summary

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,6 @@ def _build_arg(self):
110110

111111
def _need_flatten(self):
112112
if isinstance(self.schema, CMDObjectSchema):
113-
if self.schema.non_flatten:
114-
return False
115113
if self.get_cls():
116114
# not support to flatten object which is a cls.
117115
return False

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -890,8 +890,6 @@ class CMDObjectSchemaBase(CMDSchemaBase):
890890
discriminators = ListType(CMDObjectSchemaDiscriminatorField())
891891
additional_props = CMDObjectSchemaAdditionalPropertiesField()
892892

893-
non_flatten = None
894-
895893
# define a schema cls which can be used by others,
896894
# cls definition will not include properties in CMDSchema only, such as following properties:
897895
# - name

src/aaz_dev/swagger/controller/command_generator.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,6 @@ def create_draft_command_group(self, resource,
445445
command_group.commands = []
446446
path_item = self.get_path_item(resource)
447447
parameterized_host = self.get_parameterized_host(resource)
448-
non_flatten = kwargs.get("non_flatten", None)
449448

450449
if path_item.get is not None and 'get' in methods:
451450
cmd_builder = CMDBuilder(path=resource.path, method='get', mutability=MutabilityEnum.Read,
@@ -464,14 +463,14 @@ def create_draft_command_group(self, resource,
464463

465464
if path_item.put is not None and 'put' in methods:
466465
cmd_builder = CMDBuilder(path=resource.path, method='put', mutability=MutabilityEnum.Create,
467-
parameterized_host=parameterized_host, non_flatten=non_flatten)
466+
parameterized_host=parameterized_host)
468467
op = self.generate_operation(cmd_builder, path_item, instance_var)
469468
create_command = self.generate_command(path_item, resource, instance_var, cmd_builder, op)
470469
command_group.commands.append(create_command)
471470

472471
if path_item.post is not None and 'post' in methods:
473472
cmd_builder = CMDBuilder(path=resource.path, method='post', mutability=MutabilityEnum.Create,
474-
parameterized_host=parameterized_host, non_flatten=non_flatten)
473+
parameterized_host=parameterized_host)
475474
op = self.generate_operation(cmd_builder, path_item, instance_var)
476475
action_command = self.generate_command(path_item, resource, instance_var, cmd_builder, op)
477476
command_group.commands.append(action_command)
@@ -489,12 +488,12 @@ def create_draft_command_group(self, resource,
489488
update_by_generic_command = None
490489
if path_item.patch is not None and 'patch' in methods:
491490
cmd_builder = CMDBuilder(path=resource.path, method='patch', mutability=MutabilityEnum.Update,
492-
parameterized_host=parameterized_host, non_flatten=non_flatten)
491+
parameterized_host=parameterized_host)
493492
op = self.generate_operation(cmd_builder, path_item, instance_var)
494493
update_by_patch_command = self.generate_command(path_item, resource, instance_var, cmd_builder, op)
495494
if path_item.get is not None and path_item.put is not None and 'get' in methods and 'put' in methods:
496495
cmd_builder = CMDBuilder(path=resource.path,
497-
parameterized_host=parameterized_host, non_flatten=non_flatten)
496+
parameterized_host=parameterized_host)
498497
get_op = self.generate_operation(
499498
cmd_builder, path_item, instance_var, method='get', mutability=MutabilityEnum.Read)
500499
put_op = self.generate_operation(
@@ -512,7 +511,7 @@ def create_draft_command_group(self, resource,
512511
if 'get' not in methods or 'put' not in methods:
513512
raise exceptions.InvalidAPIUsage(f"Invalid update_by resource: '{resource}': 'get' or 'put' not in methods: '{methods}'")
514513
cmd_builder = CMDBuilder(path=resource.path,
515-
parameterized_host=parameterized_host, non_flatten=non_flatten)
514+
parameterized_host=parameterized_host)
516515
get_op = self.generate_operation(
517516
cmd_builder, path_item, instance_var, method='get', mutability=MutabilityEnum.Read)
518517
put_op = self.generate_operation(
@@ -530,7 +529,7 @@ def create_draft_command_group(self, resource,
530529
raise exceptions.InvalidAPIUsage(f"Invalid update_by resource: '{resource}': 'patch' not in methods: '{methods}'")
531530

532531
if kwargs.get('is_identity', False) is True:
533-
cmd_builder = CMDBuilder(path=resource.path, parameterized_host=parameterized_host, non_flatten=non_flatten)
532+
cmd_builder = CMDBuilder(path=resource.path, parameterized_host=parameterized_host)
534533
get_op = self.generate_operation(cmd_builder, path_item, instance_var, method='get', mutability=MutabilityEnum.Read)
535534
patch_op = self.generate_operation(cmd_builder, path_item, instance_var, method='patch', mutability=MutabilityEnum.Update)
536535
specific_update_command = self.generate_specific_update_command(path_item, resource, instance_var, cmd_builder, get_op, patch_op)
@@ -542,7 +541,7 @@ def create_draft_command_group(self, resource,
542541

543542
else:
544543
cmd_builder = CMDBuilder(path=resource.path, method='patch', mutability=MutabilityEnum.Update,
545-
parameterized_host=parameterized_host, non_flatten=non_flatten)
544+
parameterized_host=parameterized_host)
546545
op = self.generate_operation(cmd_builder, path_item, instance_var)
547546
patch_update_command = self.generate_command(path_item, resource, instance_var, cmd_builder, op)
548547
command_group.commands.append(patch_update_command)

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

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242

4343
class CMDBuilder:
4444

45-
def __init__(self, path, method=None, mutability=None, in_base=False, frozen=False, parent_ids=None, cls_definitions=None, parameterized_host=None, non_flatten=None):
45+
def __init__(self, path, method=None, mutability=None, in_base=False, frozen=False, parent_ids=None, cls_definitions=None, parameterized_host=None):
4646
self.path = path
4747
self.method = method
4848
self.mutability = mutability
@@ -53,7 +53,6 @@ def __init__(self, path, method=None, mutability=None, in_base=False, frozen=Fal
5353
self.parent_ids = parent_ids or []
5454
self.cls_definitions = {} if cls_definitions is None else cls_definitions
5555
self.parameterized_host = parameterized_host
56-
self.non_flatten=non_flatten
5756

5857
def __call__(self, schema, **kwargs):
5958
sub_builder = CMDBuilder(
@@ -64,8 +63,7 @@ def __call__(self, schema, **kwargs):
6463
frozen=kwargs.pop('frozen', self.frozen),
6564
parent_ids=[*self.parent_ids, self.id],
6665
cls_definitions=kwargs.pop('cls_definitions', self.cls_definitions),
67-
parameterized_host=kwargs.pop('parameterized_host', self.parameterized_host),
68-
non_flatten=kwargs.pop('non_flatten', self.non_flatten)
66+
parameterized_host=kwargs.pop('parameterized_host', self.parameterized_host)
6967
)
7068
if getattr(schema, 'read_only', None):
7169
sub_builder.read_only = True
@@ -86,7 +84,6 @@ def __call__(self, schema, **kwargs):
8684
key=sub_builder.id,
8785
value=sub_builder.parent_ids.index(sub_builder.id),
8886
)
89-
9087
return schema.to_cmd(sub_builder, **kwargs)
9188

9289
def find_traces(self, traces):
@@ -235,8 +232,6 @@ def build_schema(self, schema):
235232
raise exceptions.InvalidSwaggerValueError(
236233
f"type is not supported", key=getattr(schema, "traces", None), value=[schema_type])
237234

238-
if isinstance(model, CMDObjectSchemaBase):
239-
model.non_flatten = self.non_flatten
240235
model.read_only = self.read_only
241236
model.frozen = self.frozen
242237
return model

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,6 @@ def to_cmd(self, builder, **kwargs):
219219
if isinstance(v, CMDObjectSchema):
220220
# flatten body parameter
221221
v.client_flatten = True
222-
v.non_flatten = None
223222
else:
224223
raise exceptions.InvalidSwaggerValueError(
225224
msg="Invalid Request type",

0 commit comments

Comments
 (0)