On 5/16/24 17:41, jm...@redhat.com wrote: > From: Jakob Meng <c...@jakobmeng.de> > > With the '--pretty' option, appctl.py will now print JSON output in a > more readable fashion, i.e. with additional line breaks, spaces and > sorted dictionary keys. The pretty-printed output from appctl.py is not > strictly the same as with ovs-appctl because of both use different > pretty-printing implementations. > > Signed-off-by: Jakob Meng <c...@jakobmeng.de> > --- > tests/appctl.py | 13 ++++++++++--- > tests/unixctl-py.at | 5 +++++ > 2 files changed, 15 insertions(+), 3 deletions(-)
Not sure if this patch is necessary, but it's OK to have it just for the parity with ovs-appctl, I suppose. Bets regards, Ilya Maximets. > > diff --git a/tests/appctl.py b/tests/appctl.py > index cf3ea3642..b08bf9033 100644 > --- a/tests/appctl.py > +++ b/tests/appctl.py > @@ -37,7 +37,7 @@ def connect_to_target(target): > return client > > > -def reply_to_string(reply, fmt=ovs.util.OutputFormat.TEXT): > +def reply_to_string(reply, fmt=ovs.util.OutputFormat.TEXT, fmt_flags={}): > if fmt == ovs.util.OutputFormat.TEXT: > body = str(reply) > > @@ -46,7 +46,7 @@ def reply_to_string(reply, fmt=ovs.util.OutputFormat.TEXT): > > return body > else: > - return ovs.json.to_string(reply) > + return ovs.json.to_string(reply, **fmt_flags) > > > def main(): > @@ -65,13 +65,20 @@ def main(): > help="Output format.", default="text", > choices=[fmt.name.lower() > for fmt in ovs.util.OutputFormat]) > + parser.add_argument("--pretty", action="store_true", > + help="Format the output in a more readable fashion." > + " Requires: --format json.") > args = parser.parse_args() > > + if args.format != ovs.util.OutputFormat.JSON.name.lower() and > args.pretty: > + ovs.util.ovs_fatal(0, "--pretty is supported with --format json > only") > + > signal_alarm(int(args.timeout) if args.timeout else None) > > ovs.vlog.Vlog.init() > target = args.target > format = ovs.util.OutputFormat[args.format.upper()] > + format_flags = dict(pretty=True) if args.pretty else {} > client = connect_to_target(target) > > if format != ovs.util.OutputFormat.TEXT: > @@ -96,7 +103,7 @@ def main(): > sys.exit(2) > else: > assert result is not None > - sys.stdout.write(reply_to_string(result, format)) > + sys.stdout.write(reply_to_string(result, format, format_flags)) > > > if __name__ == '__main__': > diff --git a/tests/unixctl-py.at b/tests/unixctl-py.at > index 92f557b67..dffe40d2b 100644 > --- a/tests/unixctl-py.at > +++ b/tests/unixctl-py.at > @@ -115,6 +115,11 @@ AT_CHECK([APPCTL -t test-unixctl.py version], [0], > [expout]) > AT_CHECK([PYAPPCTL_PY -t test-unixctl.py version], [0], [expout]) > AT_CHECK_UNQUOTED([PYAPPCTL_PY -t test-unixctl.py --format json version], > [0], [dnl > {"reply":"$(cat expout)","reply-format":"plain"}]) > +AT_CHECK_UNQUOTED([PYAPPCTL_PY -t test-unixctl.py --format json --pretty > version], [0], [dnl > +{ > + "reply":"$(cat expout)", > + "reply-format":"plain" > +}]) > > AT_CHECK([APPCTL -t test-unixctl.py echo robot ninja], [0], [stdout]) > AT_CHECK([cat stdout | sed -e "s/u'/'/g"], [0], [dnl _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev