From 892e43ac0b8f473da703e6652d3a8eb27bbefc2f Mon Sep 17 00:00:00 2001 From: Luis Tomas Bolivar Date: Mon, 22 Nov 2021 18:23:03 +0100 Subject: [PATCH] Ensure ovs-ofctl command works with different flow formats Depending on the ovs version, different OpenFlow formats are needed This commit does not add a specific format, and only if it fails with ProcessExecutionError it tries with OpenFlow13 Change-Id: I1a5028ff3b91603c0ac1739c248797d367bc40c7 --- ovn_bgp_agent/privileged/ovs_vsctl.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ovn_bgp_agent/privileged/ovs_vsctl.py b/ovn_bgp_agent/privileged/ovs_vsctl.py index fc20c68e..19ca0916 100644 --- a/ovn_bgp_agent/privileged/ovs_vsctl.py +++ b/ovn_bgp_agent/privileged/ovs_vsctl.py @@ -23,13 +23,19 @@ LOG = logging.getLogger(__name__) @ovn_bgp_agent.privileged.ovs_vsctl_cmd.entrypoint def ovs_cmd(command, args, timeout=None): full_args = [command] - if command == 'ovs-ofctl': - full_args += ['-O', 'OpenFlow13'] if timeout is not None: full_args += ['--timeout=%s' % timeout] full_args += args try: return processutils.execute(*full_args) + except processutils.ProcessExecutionError: + full_args += ['-O', 'OpenFlow13'] + try: + return processutils.execute(*full_args) + except Exception as e: + LOG.exception("Unable to execute %s %s. Exception: %s", + command, full_args, e) + raise except Exception as e: LOG.exception("Unable to execute %s %s. Exception: %s", command, full_args, e)