fix: avoid purge storages

This commit is contained in:
Qu Xuan
2020-09-25 19:13:35 +08:00
parent 96ecfde984
commit a8996ec9d1
7 changed files with 64 additions and 16 deletions
+9 -2
View File
@@ -19,6 +19,7 @@ import (
"yunion.io/x/jsonutils"
"yunion.io/x/log"
"yunion.io/x/pkg/errors"
"yunion.io/x/pkg/utils"
api "yunion.io/x/onecloud/pkg/apis/compute"
@@ -202,14 +203,20 @@ func (self *SZone) getStorageByCategory(category string) (*SStorage, error) {
func (self *SZone) GetIStorages() ([]cloudprovider.ICloudStorage, error) {
if self.istorages == nil {
self.fetchStorages()
err := self.fetchStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchStorages")
}
}
return self.istorages, nil
}
func (self *SZone) GetIStorageById(id string) (cloudprovider.ICloudStorage, error) {
if self.istorages == nil {
self.fetchStorages()
err := self.fetchStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchStorages")
}
}
for i := 0; i < len(self.istorages); i += 1 {
if self.istorages[i].GetGlobalId() == id {
+10 -3
View File
@@ -19,6 +19,7 @@ import (
"yunion.io/x/jsonutils"
"yunion.io/x/log"
"yunion.io/x/pkg/errors"
api "yunion.io/x/onecloud/pkg/apis/compute"
"yunion.io/x/onecloud/pkg/cloudprovider"
@@ -145,21 +146,27 @@ func (self *SZone) GetIHostById(id string) (cloudprovider.ICloudHost, error) {
func (self *SZone) GetIStorages() ([]cloudprovider.ICloudStorage, error) {
if self.istorages == nil {
self.fetchStorages()
err := self.fetchStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchStorages")
}
}
return self.istorages, nil
}
func (self *SZone) GetIStorageById(id string) (cloudprovider.ICloudStorage, error) {
if self.istorages == nil {
self.fetchStorages()
err := self.fetchStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchStorages")
}
}
for i := 0; i < len(self.istorages); i += 1 {
if self.istorages[i].GetGlobalId() == id {
return self.istorages[i], nil
}
}
return nil, ErrorNotFound()
return nil, errors.Wrapf(cloudprovider.ErrNotFound, "not found %s", id)
}
func (self *SZone) getStorageByCategory(category string) (*SStorage, error) {
+10 -3
View File
@@ -19,6 +19,7 @@ import (
"yunion.io/x/jsonutils"
"yunion.io/x/log"
"yunion.io/x/pkg/errors"
"yunion.io/x/onecloud/pkg/cloudprovider"
)
@@ -117,16 +118,22 @@ func (self *SZone) fetchStorages() error {
func (self *SZone) GetIStorages() ([]cloudprovider.ICloudStorage, error) {
err := self.fetchStorages()
if err != nil {
return nil, err
return nil, errors.Wrapf(err, "fetchStorages")
}
err = self.fetchClassicStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchClassicStorages")
}
self.fetchClassicStorages()
istorages := append(self.istorages, self.iclassicStorages...)
return istorages, nil
}
func (self *SZone) GetIStorageById(id string) (cloudprovider.ICloudStorage, error) {
if self.istorages == nil {
self.fetchStorages()
err := self.fetchStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchStorages")
}
}
for i := 0; i < len(self.istorages); i += 1 {
if self.istorages[i].GetGlobalId() == id {
+9 -2
View File
@@ -18,6 +18,7 @@ import (
"fmt"
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/errors"
"yunion.io/x/onecloud/pkg/cloudprovider"
)
@@ -94,14 +95,20 @@ func (self *SZone) GetIHostById(id string) (cloudprovider.ICloudHost, error) {
func (self *SZone) GetIStorages() ([]cloudprovider.ICloudStorage, error) {
if self.istorages == nil {
self.fetchStorages()
err := self.fetchStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchStorages")
}
}
return self.istorages, nil
}
func (self *SZone) GetIStorageById(id string) (cloudprovider.ICloudStorage, error) {
if self.istorages == nil {
self.fetchStorages()
err := self.fetchStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchStorages")
}
}
for i := 0; i < len(self.istorages); i += 1 {
if self.istorages[i].GetGlobalId() == id {
+9 -2
View File
@@ -18,6 +18,7 @@ import (
"fmt"
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/errors"
api "yunion.io/x/onecloud/pkg/apis/compute"
"yunion.io/x/onecloud/pkg/cloudprovider"
@@ -125,14 +126,20 @@ func (self *SZone) GetIHostById(id string) (cloudprovider.ICloudHost, error) {
func (self *SZone) GetIStorages() ([]cloudprovider.ICloudStorage, error) {
if self.istorages == nil {
self.fetchStorages()
err := self.fetchStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchStorages")
}
}
return self.istorages, nil
}
func (self *SZone) GetIStorageById(id string) (cloudprovider.ICloudStorage, error) {
if self.istorages == nil {
self.fetchStorages()
err := self.fetchStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchStorages")
}
}
for i := 0; i < len(self.istorages); i += 1 {
if self.istorages[i].GetGlobalId() == id {
+8 -2
View File
@@ -170,7 +170,10 @@ func (self *SZone) fetchStorages() error {
func (self *SZone) GetIStorages() ([]cloudprovider.ICloudStorage, error) {
if self.istorages == nil {
self.fetchStorages()
err := self.fetchStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchStorages")
}
}
return self.istorages, nil
}
@@ -221,7 +224,10 @@ func (self *SZone) getStorageByCategory(category string) (*SStorage, error) {
func (self *SZone) GetIStorageById(id string) (cloudprovider.ICloudStorage, error) {
if self.istorages == nil {
self.fetchStorages()
err := self.fetchStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchStorages")
}
}
for i := 0; i < len(self.istorages); i += 1 {
if self.istorages[i].GetGlobalId() == id {
+9 -2
View File
@@ -18,6 +18,7 @@ import (
"fmt"
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/errors"
api "yunion.io/x/onecloud/pkg/apis/compute"
"yunion.io/x/onecloud/pkg/cloudprovider"
@@ -127,14 +128,20 @@ func (self *SZone) GetIHostById(id string) (cloudprovider.ICloudHost, error) {
func (self *SZone) GetIStorages() ([]cloudprovider.ICloudStorage, error) {
if self.istorages == nil {
self.fetchStorages()
err := self.fetchStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchStorages")
}
}
return self.istorages, nil
}
func (self *SZone) GetIStorageById(id string) (cloudprovider.ICloudStorage, error) {
if self.istorages == nil {
self.fetchStorages()
err := self.fetchStorages()
if err != nil {
return nil, errors.Wrapf(err, "fetchStorages")
}
}
for i := 0; i < len(self.istorages); i += 1 {
if self.istorages[i].GetGlobalId() == id {