From 48d2dfdf6cbbbc37d795fd95156cfd772e3d3a17 Mon Sep 17 00:00:00 2001 From: tangdeyi Date: Fri, 12 Dec 2025 15:43:05 +0800 Subject: [PATCH] feat(clustermgr): update disk lastupdate when disk status changes with #1000518879 Signed-off-by: tangdeyi --- .../clustermgr/persistence/normaldb/blobnodedisktbl_test.go | 5 +++++ blobstore/clustermgr/persistence/normaldb/nodedisktbl.go | 2 ++ 2 files changed, 7 insertions(+) diff --git a/blobstore/clustermgr/persistence/normaldb/blobnodedisktbl_test.go b/blobstore/clustermgr/persistence/normaldb/blobnodedisktbl_test.go index 660a1e89d..46c7c2f44 100644 --- a/blobstore/clustermgr/persistence/normaldb/blobnodedisktbl_test.go +++ b/blobstore/clustermgr/persistence/normaldb/blobnodedisktbl_test.go @@ -156,6 +156,7 @@ func TestBlobNodeDiskTbl(t *testing.T) { diskInfo, err = nodeDiskTbl.GetDisk(dr1.DiskID) require.NoError(t, err) require.Equal(t, proto.DiskStatusRepairing, diskInfo.Status) + require.Less(t, dr1.LastUpdateAt, diskInfo.LastUpdateAt) } // list disk @@ -260,6 +261,10 @@ func TestBlobNodeDiskDropTbl(t *testing.T) { err = nodeDiskTbl.DroppedDisk(diskID1) require.NoError(t, err) + diskInfo, err := nodeDiskTbl.GetDisk(dr1.DiskID) + require.NoError(t, err) + require.Less(t, dr1.LastUpdateAt, diskInfo.LastUpdateAt) + exist, err = nodeDiskTbl.IsDroppingDisk(diskID1) require.NoError(t, err) require.Equal(t, false, exist) diff --git a/blobstore/clustermgr/persistence/normaldb/nodedisktbl.go b/blobstore/clustermgr/persistence/normaldb/nodedisktbl.go index a039df65b..fbcd9a1c9 100644 --- a/blobstore/clustermgr/persistence/normaldb/nodedisktbl.go +++ b/blobstore/clustermgr/persistence/normaldb/nodedisktbl.go @@ -295,6 +295,7 @@ func (d *nodeDiskTable) UpdateDiskStatus(diskID proto.DiskID, status proto.DiskS batch.PutCF(d.indexes[diskStatusIndex].tbl.GetCf(), []byte(newIndexKey), key) diskInfo.Status = status + diskInfo.LastUpdateAt = time.Now() value, err = d.rd.marshalDiskRecord(info) if err != nil { return errors.Info(err, "encode disk failed").Detail(err) @@ -432,6 +433,7 @@ func (d *nodeDiskTable) DroppedDisk(diskID proto.DiskID) error { batch.PutCF(d.indexes[diskStatusIndex].tbl.GetCf(), []byte(newIndexKey), key) diskInfo.Status = status + diskInfo.LastUpdateAt = time.Now() value, err = d.rd.marshalDiskRecord(info) if err != nil { return errors.Info(err, "encode disk failed").Detail(err)