[libvirt] [PATCH]util:ovs:Delete port if it is exist when add port

Lichunhe lichunhe at huawei.com
Fri Jul 4 00:53:34 UTC 2014


Resubmit the patch, remove '--may-exist' and I have tested, it work.

diff --git a/src/util/virnetdevopenvswitch.c b/src/util/virnetdevopenvswitch.c
index 9bcbfb1..2c414ad 100644
--- a/src/util/virnetdevopenvswitch.c
+++ b/src/util/virnetdevopenvswitch.c
@@ -84,8 +84,8 @@ int virNetDevOpenvswitchAddPort(const char *brname, const char *ifname,
 
     cmd = virCommandNew(OVSVSCTL);
 
-    virCommandAddArgList(cmd, "--timeout=5", "--", "--may-exist", "add-port",
-                        brname, ifname, NULL);
+    virCommandAddArgList(cmd, "--timeout=5", "--", "--if-exists", "del-port", 
+                        ifname, "--", "add-port", brname, ifname, NULL);
 
     if (virtVlan && virtVlan->nTags > 0) {


>-----Original Message-----
>From: libvir-list-bounces at redhat.com [mailto:libvir-list-bounces at redhat.com]
>On Behalf Of Lichunhe
>Sent: Thursday, July 03, 2014 9:21 PM
>To: Michal Privoznik; libvir-list at redhat.com
>Subject: Re: [libvirt] [PATCH]util:ovs:Delete port if it is exist when add port
>
>Yeah, the '--may-exist' could be removed, it is not useful.
>
>>-----Original Message-----
>>From: Michal Privoznik [mailto:mprivozn at redhat.com]
>>Sent: Thursday, July 03, 2014 8:39 PM
>>To: Lichunhe; libvir-list at redhat.com
>>Subject: Re: [libvirt] [PATCH]util:ovs:Delete port if it is exist when
>>add port
>>
>>On 03.07.2014 13:57, Lichunhe wrote:
>>> If the ovs service stop abnormal, or host cold reboot, vm is
>>> destroyed after ovs service stop. The ovs port which connect to
>>> interface of vm will not be clear. When the ovs service restart,
>>> recover configuration from db, but the interface is no exist, port
>>> recovery failed, and then vm restart on the same host, libvirt add
>>> port again, but the port configuration is same as before, ovs will
>>> not connect the interface, only store the configuration in db. Below
>>> will trigger this problem,
>>>
>>> virsh start vm
>>> service openvswitch-switch stop
>>> virsh destroy vm
>>> service openvswitch-switch start
>>> virsh start vm
>>>
>>>
>>> Signed-off-by: Chunhe Li <lichunhe at huawei.com>
>>> ---
>>>
>>> src/util/virnetdevopenvswitch.c | 3 ++-
>>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/src/util/virnetdevopenvswitch.c
>>> b/src/util/virnetdevopenvswitch.c index 9bcbfb1..dd601c0 100644
>>> --- a/src/util/virnetdevopenvswitch.c
>>> +++ b/src/util/virnetdevopenvswitch.c
>>> @@ -84,7 +84,8 @@ int virNetDevOpenvswitchAddPort(const char
>*brname,
>>> const char *ifname,
>>>
>>>       cmd = virCommandNew(OVSVSCTL);
>>>
>>> -    virCommandAddArgList(cmd, "--timeout=5", "--", "--may-exist",
>>"add-port",
>>> +    virCommandAddArgList(cmd, "--timeout=5", "--", "--if-exists",
>>"del-port",
>>> +                        ifname, "--", "--may-exist", "add-port",
>>>                           brname, ifname, NULL);
>>
>>So what's the meaning of '--may-exist' then? Does it do anything useful after
>all?
>>
>>Michal
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list