tools: ynl-gen: fill in missing empty attr lists

The C codegen refers to op attribute lists all over the place,
without checking if they are present, even tho attribute list
is technically an optional property. Add them automatically
at init if missing so that we don't have to make specs longer.

Reviewed-by: Donald Hunter <donald.hunter@gmail.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Link: https://patch.msgid.link/20250429154704.2613851-4-kuba@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Jakub Kicinski 2025-04-29 08:46:55 -07:00 committed by Paolo Abeni
parent 2286905f1b
commit d12a7be025

View File

@ -938,6 +938,14 @@ class AttrSet(SpecAttrSet):
class Operation(SpecOperation):
def __init__(self, family, yaml, req_value, rsp_value):
# Fill in missing operation properties (for fixed hdr-only msgs)
for mode in ['do', 'dump', 'event']:
for direction in ['request', 'reply']:
try:
yaml[mode][direction].setdefault('attributes', [])
except KeyError:
pass
super().__init__(family, yaml, req_value, rsp_value)
self.render_name = c_lower(family.ident_name + '_' + self.name)