From 73cc14ed0837b1b3f371ba7da35f4511a300356b Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Tue, 13 Aug 2019 22:58:14 +0800 Subject: [PATCH] fix: qcloud storagecache bucket name too long --- pkg/cloudprovider/objectstore.go | 4 ++-- pkg/compute/hostdrivers/managedvirtual.go | 3 ++- pkg/multicloud/qcloud/storagecache.go | 5 ++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/cloudprovider/objectstore.go b/pkg/cloudprovider/objectstore.go index 221b44b08b..d8f5f729b5 100644 --- a/pkg/cloudprovider/objectstore.go +++ b/pkg/cloudprovider/objectstore.go @@ -28,8 +28,8 @@ import ( type TBucketACLType string const ( - // 100 MB - MAX_PUT_OBJECT_SIZEBYTES = int64(1000 * 1000 * 100) + // 50 MB + MAX_PUT_OBJECT_SIZEBYTES = int64(1000 * 1000 * 50) // ACLDefault = TBucketACLType("default") diff --git a/pkg/compute/hostdrivers/managedvirtual.go b/pkg/compute/hostdrivers/managedvirtual.go index 4c8e3c5d2f..c497787bdf 100644 --- a/pkg/compute/hostdrivers/managedvirtual.go +++ b/pkg/compute/hostdrivers/managedvirtual.go @@ -336,7 +336,8 @@ func (self *SManagedVirtualizationHostDriver) RequestRebuildDiskOnStorage(ctx co func (driver *SManagedVirtualizationHostDriver) IsReachStoragecacheCapacityLimit(host *models.SHost, cachedImages []models.SCachedimage) bool { quota := host.GetHostDriver().GetStoragecacheQuota(host) - if quota > 0 && len(cachedImages) >= quota { + log.Debugf("Cached image total: %d quota: %d", len(cachedImages), quota) + if quota > 0 && len(cachedImages)+1 >= quota { return true } return false diff --git a/pkg/multicloud/qcloud/storagecache.go b/pkg/multicloud/qcloud/storagecache.go index bc0852329e..fd745f53aa 100644 --- a/pkg/multicloud/qcloud/storagecache.go +++ b/pkg/multicloud/qcloud/storagecache.go @@ -167,7 +167,10 @@ func (self *SStoragecache) uploadImage(ctx context.Context, userCred mcclient.To return "", err } - bucketName := strings.ToLower(fmt.Sprintf("imgcache-%s-%s", self.region.GetId(), image.ImageId)) + bucketName := strings.ReplaceAll(strings.ToLower(self.region.GetId()+image.ImageId), "-", "") + if len(bucketName) > 40 { + bucketName = bucketName[:40] + } exists, _ := self.region.IBucketExist(bucketName) if !exists { log.Debugf("Bucket %s not exists, to create ...", bucketName)