From 5c209fe3dcf2ca2714ca52ed050a873704297a9b Mon Sep 17 00:00:00 2001 From: rainzm Date: Wed, 9 Sep 2020 21:33:16 +0800 Subject: [PATCH] fix(esxi): fetch templatevm from datacenter before clone vm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 这里应该和image_cache那里保持一直,对template的获取应该从datacenter 中获取,而不是host。 --- pkg/multicloud/esxi/host.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/multicloud/esxi/host.go b/pkg/multicloud/esxi/host.go index 901e4a8ff6..6fb41abdfd 100644 --- a/pkg/multicloud/esxi/host.go +++ b/pkg/multicloud/esxi/host.go @@ -708,9 +708,13 @@ func (self *SHost) CreateVM2(ctx context.Context, ds *SDatastore, params SCreate if err != nil { return nil, errors.Wrap(err, "SEsxiClient.FindHostByIp") } - temvm, err := imgHost.GetTemplateVMById(imageInfo.ImageExternalId) + dc, err := imgHost.GetDatacenter() if err != nil { - return nil, errors.Wrap(err, "SHost.GetTemplateVMById") + return nil, errors.Wrap(err, "host.GetDatacenter") + } + temvm, err := dc.FetchTemplateVMById(imageInfo.ImageExternalId) + if err != nil { + return nil, errors.Wrapf(err, "datacenter.TemplateVMById for image %q and datacenter %q", imageInfo.ImageExternalId, dc.GetId()) } return self.CloneVM(ctx, temvm, ds, params) }