BIA/RIAv2 -- distinguish between New and InProgress operations

Signed-off-by: Scott Seago <sseago@redhat.com>
This commit is contained in:
Scott Seago
2023-03-21 18:55:59 -04:00
parent 29b5894be6
commit 433d2d5e57
9 changed files with 40 additions and 19 deletions
+11 -3
View File
@@ -286,7 +286,8 @@ func getBackupItemOperationProgress(
var completedCount, failedCount int
for _, operation := range operationsList {
if operation.Status.Phase == itemoperation.OperationPhaseInProgress {
if operation.Status.Phase == itemoperation.OperationPhaseNew ||
operation.Status.Phase == itemoperation.OperationPhaseInProgress {
bia, err := pluginManager.GetBackupItemActionV2(operation.Spec.BackupItemAction)
if err != nil {
operation.Status.Phase = itemoperation.OperationPhaseFailed
@@ -322,12 +323,14 @@ func getBackupItemOperationProgress(
changes = true
}
started := metav1.NewTime(operationProgress.Started)
if operation.Status.Started == nil || *(operation.Status.Started) != started {
if operation.Status.Started == nil && !operationProgress.Started.IsZero() ||
operation.Status.Started != nil && *(operation.Status.Started) != started {
operation.Status.Started = &started
changes = true
}
updated := metav1.NewTime(operationProgress.Updated)
if operation.Status.Updated == nil || *(operation.Status.Updated) != updated {
if operation.Status.Updated == nil && !operationProgress.Updated.IsZero() ||
operation.Status.Updated != nil && *(operation.Status.Updated) != updated {
operation.Status.Updated = &updated
changes = true
}
@@ -356,6 +359,11 @@ func getBackupItemOperationProgress(
failedCount++
continue
}
if operation.Status.Phase == itemoperation.OperationPhaseNew &&
operation.Status.Started != nil {
operation.Status.Phase = itemoperation.OperationPhaseInProgress
changes = true
}
// if we reach this point, the operation is still running
inProgressOperations = true
} else if operation.Status.Phase == itemoperation.OperationPhaseCompleted {
@@ -106,7 +106,7 @@ func TestBackupOperationsReconcile(t *testing.T) {
OperationID: "operation-11",
},
Status: itemoperation.OperationStatus{
Phase: itemoperation.OperationPhaseInProgress,
Phase: itemoperation.OperationPhaseNew,
Created: &metav1Now,
},
},
@@ -136,7 +136,7 @@ func TestBackupOperationsReconcile(t *testing.T) {
OperationID: "operation-12",
},
Status: itemoperation.OperationStatus{
Phase: itemoperation.OperationPhaseInProgress,
Phase: itemoperation.OperationPhaseNew,
Created: &metav1Now,
},
},
@@ -167,7 +167,7 @@ func TestBackupOperationsReconcile(t *testing.T) {
OperationID: "operation-13",
},
Status: itemoperation.OperationStatus{
Phase: itemoperation.OperationPhaseInProgress,
Phase: itemoperation.OperationPhaseNew,
Created: &metav1Now,
},
},
@@ -197,7 +197,7 @@ func TestBackupOperationsReconcile(t *testing.T) {
OperationID: "operation-14",
},
Status: itemoperation.OperationStatus{
Phase: itemoperation.OperationPhaseInProgress,
Phase: itemoperation.OperationPhaseNew,
Created: &metav1Now,
},
},
@@ -227,7 +227,7 @@ func TestBackupOperationsReconcile(t *testing.T) {
OperationID: "operation-15",
},
Status: itemoperation.OperationStatus{
Phase: itemoperation.OperationPhaseInProgress,
Phase: itemoperation.OperationPhaseNew,
Created: &metav1Now,
},
},
@@ -258,7 +258,7 @@ func TestBackupOperationsReconcile(t *testing.T) {
OperationID: "operation-16",
},
Status: itemoperation.OperationStatus{
Phase: itemoperation.OperationPhaseInProgress,
Phase: itemoperation.OperationPhaseNew,
Created: &metav1Now,
},
},
@@ -270,7 +270,8 @@ func getRestoreItemOperationProgress(
var completedCount, failedCount int
for _, operation := range operationsList {
if operation.Status.Phase == itemoperation.OperationPhaseInProgress {
if operation.Status.Phase == itemoperation.OperationPhaseNew ||
operation.Status.Phase == itemoperation.OperationPhaseInProgress {
ria, err := pluginManager.GetRestoreItemActionV2(operation.Spec.RestoreItemAction)
if err != nil {
operation.Status.Phase = itemoperation.OperationPhaseFailed
@@ -306,12 +307,14 @@ func getRestoreItemOperationProgress(
changes = true
}
started := metav1.NewTime(operationProgress.Started)
if operation.Status.Started == nil || *(operation.Status.Started) != started {
if operation.Status.Started == nil && !operationProgress.Started.IsZero() ||
operation.Status.Started != nil && *(operation.Status.Started) != started {
operation.Status.Started = &started
changes = true
}
updated := metav1.NewTime(operationProgress.Updated)
if operation.Status.Updated == nil || *(operation.Status.Updated) != updated {
if operation.Status.Updated == nil && !operationProgress.Updated.IsZero() ||
operation.Status.Updated != nil && *(operation.Status.Updated) != updated {
operation.Status.Updated = &updated
changes = true
}
@@ -340,6 +343,11 @@ func getRestoreItemOperationProgress(
failedCount++
continue
}
if operation.Status.Phase == itemoperation.OperationPhaseNew &&
operation.Status.Started != nil {
operation.Status.Phase = itemoperation.OperationPhaseInProgress
changes = true
}
// if we reach this point, the operation is still running
inProgressOperations = true
} else if operation.Status.Phase == itemoperation.OperationPhaseCompleted {