From cb9fea22867825a89b5ef93bfbc47f7bf12e94ee Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Tue, 12 Mar 2019 18:24:12 +0800 Subject: [PATCH] fix: filter cached images by storage status --- pkg/compute/models/cachedimages.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkg/compute/models/cachedimages.go b/pkg/compute/models/cachedimages.go index 7efebcc156..631b3e1080 100644 --- a/pkg/compute/models/cachedimages.go +++ b/pkg/compute/models/cachedimages.go @@ -336,14 +336,16 @@ func (self *SCachedimage) ChooseSourceStoragecacheInRange(hostType string, exclu scimgs := make([]SStoragecachedimage, 0) q := storageCachedImage.Query(). - Join(storage, sqlchemy.AND(sqlchemy.Equals(storage.Field("storagecache_id"), storageCachedImage.Field("storagecache_id")))). - Join(hostStorage, sqlchemy.AND(sqlchemy.Equals(hostStorage.Field("storage_id"), storage.Field("id")))). - Join(host, sqlchemy.AND(sqlchemy.Equals(hostStorage.Field("host_id"), host.Field("id")))). + Join(storage, sqlchemy.Equals(storage.Field("storagecache_id"), storageCachedImage.Field("storagecache_id"))). + Join(hostStorage, sqlchemy.Equals(hostStorage.Field("storage_id"), storage.Field("id"))). + Join(host, sqlchemy.Equals(hostStorage.Field("host_id"), host.Field("id"))). Filter(sqlchemy.Equals(storageCachedImage.Field("cachedimage_id"), self.Id)). Filter(sqlchemy.Equals(storageCachedImage.Field("status"), CACHED_IMAGE_STATUS_READY)). Filter(sqlchemy.Equals(host.Field("status"), HOST_STATUS_RUNNING)). Filter(sqlchemy.IsTrue(host.Field("enabled"))). - Filter(sqlchemy.Equals(host.Field("host_status"), HOST_ONLINE)) + Filter(sqlchemy.Equals(host.Field("host_status"), HOST_ONLINE)). + Filter(sqlchemy.IsTrue(storage.Field("enabled"))). + Filter(sqlchemy.In(storage.Field("status"), []string{STORAGE_ENABLED, STORAGE_ONLINE})) if len(excludes) > 0 { q = q.Filter(sqlchemy.NotIn(host.Field("id"), excludes))