Yeah, the '--may-exist' could be removed, it is not useful.
-----Original Message-----
From: Michal Privoznik [mailto:mprivozn@redhat.com]
Sent: Thursday, July 03, 2014 8:39 PM
To: Lichunhe; libvir-list(a)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(a)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