Move the progress messages to activities (#10552)
Run the E2E test on kind / setup-test-matrix (push) Failing after 3s
Scorecard supply-chain security / Scorecard analysis (push) Skipped
e2e-test-kind.yaml / extract (push) Failing after 8s
Run the E2E test on kind / get-go-version (push) Failing after 10s
Run the E2E test on kind / build (push) Skipped
Run the E2E test on kind / run-e2e-test (push) Skipped
push.yml / extract (push) Failing after 6s
Main CI / get-go-version (push) Failing after 7s
Main CI / Build (push) Skipped

* move the progress messages to activities

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>

* update doc for activities in data mover CR

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>

---------

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
This commit is contained in:
lyndon-li
2026-09-22 14:24:05 +08:00
committed by GitHub
parent 3793d9ab4a
commit 0a2f5278b2
13 changed files with 76 additions and 25 deletions
+2 -3
View File
@@ -621,9 +621,8 @@ func (r *DataDownloadReconciler) OnDataDownloadProgress(ctx context.Context, nam
}
if progress.Message != "" {
message := progress.Message + ";"
if !strings.HasSuffix(dd.Status.Message, message) {
dd.Status.Message += message
if len(dd.Status.Activities) == 0 || dd.Status.Activities[len(dd.Status.Activities)-1] != progress.Message {
dd.Status.Activities = append(dd.Status.Activities, progress.Message)
}
}
@@ -829,7 +829,7 @@ func TestOnDataDownloadProgress(t *testing.T) {
// Call the OnDataDownloadProgress function
r.OnDataDownloadProgress(ctx, namespace, duName, progress)
if len(test.needErrs) != 0 && !test.needErrs[0] {
if len(test.needErrs) == 0 {
// Get the updated DataDownload object from the fake client
updatedDd := &velerov2alpha1api.DataDownload{}
require.NoError(t, r.client.Get(ctx, types.NamespacedName{Name: duName, Namespace: namespace}, updatedDd))
@@ -845,7 +845,12 @@ func TestOnDataDownloadProgress(t *testing.T) {
assert.Equal(t, int64(0), updatedDd.Status.Progress.BytesDone) // assuming default or original value
}
if progress.Message != "" {
assert.Contains(t, updatedDd.Status.Message, progress.Message)
assert.Contains(t, updatedDd.Status.Activities, progress.Message)
// Call with the same message again to verify deduplication
r.OnDataDownloadProgress(ctx, namespace, duName, progress)
require.NoError(t, r.client.Get(ctx, types.NamespacedName{Name: duName, Namespace: namespace}, updatedDd))
assert.Equal(t, []string{progress.Message}, updatedDd.Status.Activities)
}
}
})
+2 -3
View File
@@ -648,9 +648,8 @@ func (r *DataUploadReconciler) OnDataUploadProgress(ctx context.Context, namespa
}
if progress.Message != "" {
message := progress.Message + ";"
if !strings.HasSuffix(du.Status.Message, message) {
du.Status.Message += message
if len(du.Status.Activities) == 0 || du.Status.Activities[len(du.Status.Activities)-1] != progress.Message {
du.Status.Activities = append(du.Status.Activities, progress.Message)
}
}
@@ -851,7 +851,7 @@ func TestOnDataUploadProgress(t *testing.T) {
// Call the OnDataUploadProgress function
r.OnDataUploadProgress(ctx, namespace, duName, progress)
if len(test.needErrs) != 0 && !test.needErrs[0] {
if len(test.needErrs) == 0 {
// Get the updated DataUpload object from the fake client
updatedDu := &velerov2alpha1api.DataUpload{}
require.NoError(t, r.client.Get(ctx, types.NamespacedName{Name: duName, Namespace: namespace}, updatedDu))
@@ -867,7 +867,12 @@ func TestOnDataUploadProgress(t *testing.T) {
assert.Equal(t, int64(0), updatedDu.Status.Progress.BytesDone) // assuming default or original value
}
if progress.Message != "" {
assert.Contains(t, updatedDu.Status.Message, progress.Message)
assert.Contains(t, updatedDu.Status.Activities, progress.Message)
// Call with the same message again to verify deduplication
r.OnDataUploadProgress(ctx, namespace, duName, progress)
require.NoError(t, r.client.Get(ctx, types.NamespacedName{Name: duName, Namespace: namespace}, updatedDu))
assert.Equal(t, []string{progress.Message}, updatedDu.Status.Activities)
}
}
})
@@ -641,9 +641,8 @@ func (r *PodVolumeBackupReconciler) OnDataPathProgress(ctx context.Context, name
}
if progress.Message != "" {
message := progress.Message + ";"
if !strings.HasSuffix(pvb.Status.Message, message) {
pvb.Status.Message += message
if len(pvb.Status.Activities) == 0 || pvb.Status.Activities[len(pvb.Status.Activities)-1] != progress.Message {
pvb.Status.Activities = append(pvb.Status.Activities, progress.Message)
}
}
@@ -666,7 +666,7 @@ func TestOnPVBProgress(t *testing.T) {
progress := &test.progress
r.OnDataPathProgress(ctx, namespace, pvbName, progress)
if len(test.needErrs) != 0 && !test.needErrs[0] {
if len(test.needErrs) == 0 {
updatedPvb := &velerov1api.PodVolumeBackup{}
require.NoError(t, r.client.Get(ctx, types.NamespacedName{Name: pvbName, Namespace: namespace}, updatedPvb))
if progress.TotalBytes != -1 {
@@ -680,7 +680,12 @@ func TestOnPVBProgress(t *testing.T) {
assert.Equal(t, int64(0), updatedPvb.Status.Progress.BytesDone) // assuming default or original value
}
if progress.Message != "" {
assert.Contains(t, updatedPvb.Status.Message, progress.Message)
assert.Contains(t, updatedPvb.Status.Activities, progress.Message)
// Call with the same message again to verify deduplication
r.OnDataPathProgress(ctx, namespace, pvbName, progress)
require.NoError(t, r.client.Get(ctx, types.NamespacedName{Name: pvbName, Namespace: namespace}, updatedPvb))
assert.Equal(t, []string{progress.Message}, updatedPvb.Status.Activities)
}
}
})
@@ -917,9 +917,8 @@ func (r *PodVolumeRestoreReconciler) OnDataPathProgress(ctx context.Context, nam
}
if progress.Message != "" {
message := progress.Message + ";"
if !strings.HasSuffix(pvr.Status.Message, message) {
pvr.Status.Message += message
if len(pvr.Status.Activities) == 0 || pvr.Status.Activities[len(pvr.Status.Activities)-1] != progress.Message {
pvr.Status.Activities = append(pvr.Status.Activities, progress.Message)
}
}
@@ -1512,7 +1512,7 @@ func TestOnPodVolumeRestoreProgress(t *testing.T) {
progress := &test.progress
r.OnDataPathProgress(ctx, namespace, pvrName, progress)
if len(test.needErrs) != 0 && !test.needErrs[0] {
if len(test.needErrs) == 0 {
updatedPVR := &velerov1api.PodVolumeRestore{}
require.NoError(t, r.client.Get(ctx, types.NamespacedName{Name: pvrName, Namespace: namespace}, updatedPVR))
if progress.TotalBytes != -1 {
@@ -1526,7 +1526,12 @@ func TestOnPodVolumeRestoreProgress(t *testing.T) {
assert.Equal(t, int64(0), updatedPVR.Status.Progress.BytesDone) // assuming default or original value
}
if progress.Message != "" {
assert.Contains(t, updatedPVR.Status.Message, progress.Message)
assert.Contains(t, updatedPVR.Status.Activities, progress.Message)
// Call with the same message again to verify deduplication
r.OnDataPathProgress(ctx, namespace, pvrName, progress)
require.NoError(t, r.client.Get(ctx, types.NamespacedName{Name: pvrName, Namespace: namespace}, updatedPVR))
assert.Equal(t, []string{progress.Message}, updatedPVR.Status.Activities)
}
}
})