mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-21 14:19:49 +08:00
Merge pull request #11832 from ioito/hotfix/qx-openstack-storage-sync
fix(region): sync openstack multi zone storages
This commit is contained in:
@@ -108,3 +108,7 @@ func (storage *SNovaStorage) GetMountPoint() string {
|
||||
func (storage *SNovaStorage) IsSysDiskStore() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (self *SNovaStorage) DisableSync() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user