What I did
Fix KeyError exception for show acl table
root@sonic:/home/admin# config acl add table test CTRLPLANE
root@sonic:/home/admin# show acl table
Traceback (most recent call last):
File "/usr/local/bin/acl-loader", line 8, in
sys.exit(cli())
File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 764, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/acl_loader/main.py", line 967, in table
acl_loader.show_table(table_name)
File "/usr/local/lib/python3.9/dist-packages/acl_loader/main.py", line 798, in show_table
services = natsorted(val["services"])
KeyError: 'services'
root@sonic:/home/admin#
How I did it
Check if value is empty
How to verify it
Run test
Previous command output (if the output of a command-line utility has changed)
root@sonic:/home/admin# show acl table
Traceback (most recent call last):
File "/usr/local/bin/acl-loader", line 8, in
sys.exit(cli())
File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 764, in call
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 717, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.9/dist-packages/click/core.py", line 555, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/click/decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "/usr/local/lib/python3.9/dist-packages/acl_loader/main.py", line 967, in table
acl_loader.show_table(table_name)
File "/usr/local/lib/python3.9/dist-packages/acl_loader/main.py", line 798, in show_table
services = natsorted(val["services"])
KeyError: 'services'
New command output (if the output of a command-line utility has changed)

@qiluo-msft could you please review, thanks.
@qiluo-msft @prsunny could you please review, thanks.
@qiluo-msft @bingwang-ms please review again, thanks
@qiluo-msft @bingwang-ms could you please review and merge, thanks.