Automatic merge from release/2.1.0 -> release/2.2.0

* commit '8939e971b6cbcfce69bcbbcfadc2ebab33fc00b5':
  support filter attached disk
This commit is contained in:
邱剑
2018-09-11 21:51:59 +08:00
+7 -2
View File
@@ -108,11 +108,16 @@ func (manager *SDiskManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
if !ok {
return nil, fmt.Errorf("Invalid querystring formst: %v", query)
}
if jsonutils.QueryBoolean(query, "unused", false) {
if query.Contains("unused") {
guestdisks := GuestdiskManager.Query().SubQuery()
sq := guestdisks.Query(guestdisks.Field("disk_id"))
q = q.Filter(sqlchemy.NotIn(q.Field("id"), sq))
if jsonutils.QueryBoolean(query, "unused", false) {
q = q.Filter(sqlchemy.NotIn(q.Field("id"), sq))
} else {
q = q.Filter(sqlchemy.In(q.Field("id"), sq))
}
}
storages := StorageManager.Query().SubQuery()
if jsonutils.QueryBoolean(query, "share", false) {
sq := storages.Query(storages.Field("id")).Filter(sqlchemy.NotIn(storages.Field("storage_type"), STORAGE_LOCAL_TYPES))