On 19 Mar 2024, at 11:24, Jakob Meng wrote:

> On 15.03.24 11:16, Eelco Chaudron wrote:
>> Hi Jakob,
>>
>> See some comments below.
>>
>> //Eelco
>
> Thanks and comments below again 😄
>
> Cheers,
> Jakob
>
>>> ...
>>> --- a/tests/appctl.py
>>> +++ b/tests/appctl.py
>>> @@ -49,13 +49,30 @@ def main():
>>>                          help="Arguments to the command.")
>>>      parser.add_argument("-T", "--timeout", metavar="SECS",
>>>                          help="wait at most SECS seconds for a response")
>>> +    parser.add_argument("-f", "--format", metavar="FMT",
>>> +                        help="Output format.", default="text",
>>> +                        choices=[fmt.name.lower()
>>> +                                 for fmt in ovs.util.OutputFormat])
>>>      args = parser.parse_args()
>>>
>>>      signal_alarm(int(args.timeout) if args.timeout else None)
>>>
>>>      ovs.vlog.Vlog.init()
>>>      target = args.target
>>> +    format = ovs.util.OutputFormat[args.format.upper()]
>>>      client = connect_to_target(target)
>>> +
>>> +    if format != ovs.util.OutputFormat.TEXT:
>>> +        err_no, error, _ = client.transact(
>>> +            "set-options", ["--format", args.format])
>>> +
>>> +        if err_no:
>>> +            ovs.util.ovs_fatal(err_no, "%s: transaction error" % target)
>>> +        elif error is not None:
>> I see this is a copy from below, but is the 'elif' ok here? Meaning can we 
>> not
>> get both errors at the same time? The C code catches both.
>>
>> Also 'if err_no' we will still try the second transaction for the command.
>> I think we should exit even in this case.
>
> When we hit a transaction error ('if err_no'), the ovs.util.ovs_fatal() call 
> will sys.exit(1), so the elif branch will not be executed nor the second 
> command transaction?!
>
> What did I miss?🙈

You missed nothing :) It was me missign the fatal part :(

Acked-by: Eelco Chaudron <echau...@redhat.com>

>>> +            sys.stderr.write(error)
>>> +            ovs.util.ovs_error(0, "%s: server returned an error" % target)
>>> +            sys.exit(2)
>>> +
>>>      err_no, error, result = client.transact(args.command, args.argv)
>>>      client.close()
>>>

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to