mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-08-30 17:13:08 +08:00
fix: disk backup filter by server_id (#25346)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
This commit is contained in:
@@ -106,6 +106,8 @@ type DiskBackupListInput struct {
|
||||
IsInstanceBackup *bool `json:"is_instance_backup"`
|
||||
// 按硬盘名称排序
|
||||
OrderByDiskName string `json:"order_by_disk_name"`
|
||||
// description: 主机ID
|
||||
ServerId string `json:"server_id"`
|
||||
}
|
||||
|
||||
type DiskBackupDetails struct {
|
||||
|
||||
@@ -139,6 +139,17 @@ func (dm *SDiskBackupManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQ
|
||||
q = q.Join(insjsq, sqlchemy.Equals(q.Field("id"), insjsq.Field("disk_backup_id")))
|
||||
}
|
||||
}
|
||||
if len(input.ServerId) > 0 {
|
||||
iG, err := GuestManager.FetchByIdOrName(ctx, userCred, input.ServerId)
|
||||
if err != nil && err == sql.ErrNoRows {
|
||||
return nil, httperrors.NewNotFoundError("guest %s not found", input.ServerId)
|
||||
} else if err != nil {
|
||||
return nil, errors.Wrap(err, "fetch guest")
|
||||
}
|
||||
guest := iG.(*SGuest)
|
||||
gdq := GuestdiskManager.Query("disk_id").Equals("guest_id", guest.Id).SubQuery()
|
||||
q = q.In("disk_id", gdq)
|
||||
}
|
||||
return q, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user