Merge pull request #11832 from ioito/hotfix/qx-openstack-storage-sync

fix(region): sync openstack multi zone storages
This commit is contained in:
Zexi Li
2021-08-07 14:29:51 +08:00
committed by GitHub
2 changed files with 10 additions and 2 deletions
+4
View File
@@ -108,3 +108,7 @@ func (storage *SNovaStorage) GetMountPoint() string {
func (storage *SNovaStorage) IsSysDiskStore() bool {
return true
}
func (self *SNovaStorage) DisableSync() bool {
return true
}
+6 -2
View File
@@ -15,6 +15,7 @@
package openstack
import (
"fmt"
"net/url"
"strings"
"time"
@@ -54,7 +55,7 @@ func (storage *SStorage) GetName() string {
}
func (storage *SStorage) GetGlobalId() string {
return storage.ID
return fmt.Sprintf("%s-%s", storage.zone.GetGlobalId(), storage.ID)
}
func (storage *SStorage) IsEmulated() bool {
@@ -72,7 +73,7 @@ func (storage *SStorage) GetIDisks() ([]cloudprovider.ICloudDisk, error) {
}
idisks := []cloudprovider.ICloudDisk{}
for i := 0; i < len(disks); i++ {
if disks[i].VolumeType == storage.Name || strings.HasSuffix(disks[i].Host, "#"+storage.ExtraSpecs.VolumeBackendName) {
if disks[i].AvailabilityZone == storage.zone.ZoneName && (disks[i].VolumeType == storage.Name || strings.HasSuffix(disks[i].Host, "#"+storage.ExtraSpecs.VolumeBackendName)) {
disks[i].storage = storage
idisks = append(idisks, &disks[i])
}
@@ -143,6 +144,9 @@ func (storage *SStorage) GetIDiskById(idStr string) (cloudprovider.ICloudDisk, e
if err != nil {
return nil, err
}
if disk.AvailabilityZone != storage.zone.ZoneName {
return nil, errors.Wrapf(cloudprovider.ErrNotFound, "disk %s not in zone %s", storage.zone.ZoneName)
}
disk.storage = storage
return disk, nil
}