From c5f0dcedb5bfe73575c73454f510f27e44758c7f Mon Sep 17 00:00:00 2001 From: wanyaoqi <18528551+wanyaoqi@users.noreply.github.com> Date: Thu, 27 Jun 2024 20:39:11 +0800 Subject: [PATCH] fix(region): convert to kvm overwirte networks (#20667) --- pkg/compute/models/guest_convert.go | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/pkg/compute/models/guest_convert.go b/pkg/compute/models/guest_convert.go index 839ee99692..0d34ef9288 100644 --- a/pkg/compute/models/guest_convert.go +++ b/pkg/compute/models/guest_convert.go @@ -21,6 +21,7 @@ import ( "yunion.io/x/jsonutils" "yunion.io/x/pkg/errors" "yunion.io/x/pkg/util/netutils" + "yunion.io/x/pkg/utils" "yunion.io/x/sqlchemy" api "yunion.io/x/onecloud/pkg/apis/compute" @@ -134,12 +135,8 @@ func (self *SGuest) ConvertEsxiToKvm(ctx context.Context, userCred mcclient.Toke createInput.Networks[i].Network = "" createInput.Networks[i].Wire = "" if data.Networks != nil { - if data.Networks[i].Network != "" { - createInput.Networks[i].Network = data.Networks[i].Network - } - if data.Networks[i].Address != "" { - createInput.Networks[i].Address = data.Networks[i].Address - } + createInput.Networks[i].Network = data.Networks[i].Network + createInput.Networks[i].Address = data.Networks[i].Address if data.Networks[i].Schedtags != nil { createInput.Networks[i].Schedtags = data.Networks[i].Schedtags } @@ -207,8 +204,8 @@ func (self *SGuest) createConvertedServer(ctx context.Context, userCred mcclient if self.Hypervisor == api.HYPERVISOR_ESXI { // change drivers so as to bootable in KVM for i := range createInput.Disks { - if createInput.Disks[i].Driver != "ide" { - createInput.Disks[i].Driver = "ide" + if !utils.IsInStringArray(createInput.Disks[i].Driver, []string{api.DISK_DRIVER_VIRTIO, api.DISK_DRIVER_PVSCSI, api.DISK_DRIVER_IDE}) { + createInput.Disks[i].Driver = api.DISK_DRIVER_IDE } createInput.Disks[i].Format = "" createInput.Disks[i].Backend = "" @@ -240,15 +237,11 @@ func (self *SGuest) createConvertedServer(ctx context.Context, userCred mcclient createInput.Networks[i].Network = "" createInput.Networks[i].Wire = "" if data.Networks != nil { - if data.Networks[i].Network != "" { - createInput.Networks[i].Network = data.Networks[i].Network - } - if data.Networks[i].Address != "" { - createInput.Networks[i].Address = data.Networks[i].Address - } if data.Networks[i].Schedtags != nil { createInput.Networks[i].Schedtags = data.Networks[i].Schedtags } + createInput.Networks[i].Address = data.Networks[i].Address + createInput.Networks[i].Network = data.Networks[i].Network } }