避免过滤cloudprovider失效

This commit is contained in:
屈轩
2019-02-25 11:37:16 +08:00
parent fd7f91f5c6
commit 7420fddad5
2 changed files with 10 additions and 10 deletions
+1 -1
View File
@@ -37,7 +37,7 @@ func (self *SKVMHostDriver) CheckAndSetCacheImage(ctx context.Context, host *mod
return err
}
cacheImage := obj.(*models.SCachedimage)
srcHostCacheImage, err := cacheImage.ChooseSourceStoragecacheInRange(models.HOST_TYPE_HYPERVISOR, []string{host.Id}, []*models.SZone{host.GetZone()})
srcHostCacheImage, err := cacheImage.ChooseSourceStoragecacheInRange(models.HOST_TYPE_HYPERVISOR, []string{host.Id}, []interface{}{host.GetZone()})
if err != nil {
return err
}
+9 -9
View File
@@ -258,7 +258,7 @@ func (self *SCachedimage) addRefCount() {
}
}
func (self *SCachedimage) ChooseSourceStoragecacheInRange(hostType string, excludes []string, rangeObjs interface{}) (*SStoragecachedimage, error) {
func (self *SCachedimage) ChooseSourceStoragecacheInRange(hostType string, excludes []string, rangeObjs []interface{}) (*SStoragecachedimage, error) {
storageCachedImage := StoragecachedimageManager.Query().SubQuery()
storage := StorageManager.Query().SubQuery()
hostStorage := HoststorageManager.Query().SubQuery()
@@ -282,16 +282,16 @@ func (self *SCachedimage) ChooseSourceStoragecacheInRange(hostType string, exclu
q = q.Filter(sqlchemy.Equals(host.Field("host_type"), hostType))
}
switch v := rangeObjs.(type) {
case []*SZone:
for _, obj := range v {
q = q.Filter(sqlchemy.Equals(host.Field("zone_id"), obj.Id))
}
case []*SVCenter:
for _, obj := range v {
q = q.Filter(sqlchemy.Equals(host.Field("manager_id"), obj.Id))
for _, rangeObj := range rangeObjs {
switch v := rangeObj.(type) {
case *SZone:
q = q.Filter(sqlchemy.Equals(host.Field("zone_id"), v.Id))
case *SCloudprovider:
q = q.Filter(sqlchemy.Equals(host.Field("manager_id"), v.Id))
}
}
q.DebugQuery()
err := db.FetchModelObjects(StoragecachedimageManager, q, &scimgs)
if err != nil {
return nil, err