Commit 89f3c258fe (ovs-vsctl: Improve error message for "ovs-vsctl del-port
<bridge>".) changed the behavior of
ovs-vsctl --if-exists del-port <bridge>
from a silent no-op to a hard failure. This commit fixes this regression.
This caused problems on XenServer, for which the Open vSwitch integration
runs commands like:
/usr/bin/ovs-vsctl --timeout=20 \
-- --with-iface --if-exists del-port xapi103 \
-- --if-exists del-br xapi103
Bug #18276.
Reported-by: Michael Hu <[email protected]>
Signed-off-by: Ben Pfaff <[email protected]>
---
tests/ovs-vsctl.at | 2 ++
utilities/ovs-vsctl.c | 9 ++++++---
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/tests/ovs-vsctl.at b/tests/ovs-vsctl.at
index fa2c3ff..4449f7a 100644
--- a/tests/ovs-vsctl.at
+++ b/tests/ovs-vsctl.at
@@ -327,6 +327,8 @@ AT_CHECK([RUN_OVS_VSCTL([del-port a])], [1], [],
[ovs-vsctl: cannot delete port a because it is the local port for bridge a
(deleting this port requires deleting the entire bridge)
],
[OVS_VSCTL_CLEANUP])
+AT_CHECK([RUN_OVS_VSCTL([--if-exists del-port a])], [0], [], [],
+ [OVS_VSCTL_CLEANUP])
AT_CHECK([RUN_OVS_VSCTL([--may-exist add-port a b1])], [1], [],
[ovs-vsctl: "--may-exist add-port a b1" but b1 is actually attached to
bridge b
],
diff --git a/utilities/ovs-vsctl.c b/utilities/ovs-vsctl.c
index 2d8c7c7..e679e0d 100644
--- a/utilities/ovs-vsctl.c
+++ b/utilities/ovs-vsctl.c
@@ -2021,9 +2021,12 @@ cmd_del_port(struct vsctl_context *ctx)
vsctl_context_populate_cache(ctx);
if (find_bridge(ctx, target, false)) {
- vsctl_fatal("cannot delete port %s because it is the local port "
- "for bridge %s (deleting this port requires deleting "
- "the entire bridge)", target, target);
+ if (must_exist) {
+ vsctl_fatal("cannot delete port %s because it is the local port "
+ "for bridge %s (deleting this port requires deleting "
+ "the entire bridge)", target, target);
+ }
+ port = NULL;
} else if (!with_iface) {
port = find_port(ctx, target, must_exist);
} else {
--
1.7.2.5
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev