This fix is critical for the release tomorrow (0.10.1 I believe), as without it, adding
ports to OVS bridges without a VLAN setup will fail.
Thanks,
Kyle
On Aug 30, 2012, at 1:53 PM, Kyle Mestery wrote:
The introduction of the new VLAN code, along with the fix
from 5e465df6be8bcb00f0b4bff831e91f4042fae272, caused the
addition of OVS ports to fail with the following message:
ovs-vsctl: 00002|vsctl|ERR|: missing column name
This fix takes into account the VLAN arguments are optional,
and correctly sets up the command line to run the "ovs-vsctl"
command to add ports to the OVS bridge.
Signed-off-by: Kyle Mestery <kmestery(a)cisco.com>
---
src/util/virnetdevopenvswitch.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/util/virnetdevopenvswitch.c b/src/util/virnetdevopenvswitch.c
index 00271a0..fcf6d91 100644
--- a/src/util/virnetdevopenvswitch.c
+++ b/src/util/virnetdevopenvswitch.c
@@ -104,9 +104,15 @@ int virNetDevOpenvswitchAddPort(const char *brname, const char
*ifname,
}
cmd = virCommandNew(OVSVSCTL);
+
+ virCommandAddArgList(cmd, "--", "--may-exist",
"add-port",
+ brname, ifname, NULL);
+
+ if (virBufferCurrentContent(&buf) != "")
+ virCommandAddArgList(cmd, virBufferCurrentContent(&buf), NULL);
+
if (ovsport->profileID[0] == '\0') {
- virCommandAddArgList(cmd, "--", "--may-exist",
"add-port",
- brname, ifname, virBufferCurrentContent(&buf),
+ virCommandAddArgList(cmd,
"--", "set", "Interface", ifname,
attachedmac_ex_id,
"--", "set", "Interface", ifname,
ifaceid_ex_id,
"--", "set", "Interface", ifname,
vmid_ex_id,
@@ -114,8 +120,7 @@ int virNetDevOpenvswitchAddPort(const char *brname, const char
*ifname,
"external-ids:iface-status=active",
NULL);
} else {
- virCommandAddArgList(cmd, "--", "--may-exist",
"add-port",
- brname, ifname, virBufferCurrentContent(&buf),
+ virCommandAddArgList(cmd,
"--", "set", "Interface", ifname,
attachedmac_ex_id,
"--", "set", "Interface", ifname,
ifaceid_ex_id,
"--", "set", "Interface", ifname,
vmid_ex_id,
--
1.7.11.4