From c53b87cc5c5dbb23e93bad13958caf983317af3e Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Tue, 3 Aug 2021 17:54:28 +0800 Subject: [PATCH] fix: server migrate network to a vlan network --- pkg/hostman/guestman/qemu-kvm.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkg/hostman/guestman/qemu-kvm.go b/pkg/hostman/guestman/qemu-kvm.go index 6389d80e67..9045452234 100644 --- a/pkg/hostman/guestman/qemu-kvm.go +++ b/pkg/hostman/guestman/qemu-kvm.go @@ -1161,14 +1161,19 @@ func onNicChange(oldNic, newNic jsonutils.JSONObject) error { oldifname, _ := oldNic.GetString("ifname") newbr := getNicBridge(newNic) newifname, _ := newNic.GetString("ifname") + newvlan, _ := newNic.Int("vlan") if oldbr != newbr { // bridge changed if oldifname == newifname { - output, err := procutils.NewRemoteCommandAsFarAsPossible("ovs-vsctl", + args := []string{ "--", "del-port", oldbr, oldifname, "--", "add-port", newbr, newifname, - ).Output() - log.Infof("ovs-vsctl del-port %s %s add-port %s %s: %s", oldbr, oldifname, newbr, newifname, output) + } + if newvlan > 1 { + args = append(args, fmt.Sprintf("tag=%d", newvlan)) + } + output, err := procutils.NewRemoteCommandAsFarAsPossible("ovs-vsctl", args...).Output() + log.Infof("ovs-vsctl %v: %s", args, output) if err != nil { return errors.Wrap(err, "NewRemoteCommandAsFarAsPossible") }