PatchOpsStatusWithOpsDeepCopy patches OpsRequest.status with the deepCopy opsRequest.
(ctx context.Context, cli client.Client, opsRes *OpsResource, opsRequestDeepCopy *opsv1alpha1.OpsRequest, phase opsv1alpha1.OpsPhase, condition ...*metav1.Condition)
| 66 | |
| 67 | // PatchOpsStatusWithOpsDeepCopy patches OpsRequest.status with the deepCopy opsRequest. |
| 68 | func PatchOpsStatusWithOpsDeepCopy(ctx context.Context, |
| 69 | cli client.Client, |
| 70 | opsRes *OpsResource, |
| 71 | opsRequestDeepCopy *opsv1alpha1.OpsRequest, |
| 72 | phase opsv1alpha1.OpsPhase, |
| 73 | condition ...*metav1.Condition) error { |
| 74 | |
| 75 | opsRequest := opsRes.OpsRequest |
| 76 | patch := client.MergeFrom(opsRequestDeepCopy) |
| 77 | for _, v := range condition { |
| 78 | if v == nil { |
| 79 | continue |
| 80 | } |
| 81 | opsRequest.SetStatusCondition(*v) |
| 82 | // emit an event |
| 83 | eventType := corev1.EventTypeNormal |
| 84 | if phase == opsv1alpha1.OpsFailedPhase { |
| 85 | eventType = corev1.EventTypeWarning |
| 86 | } |
| 87 | opsRes.Recorder.Event(opsRequest, eventType, v.Reason, v.Message) |
| 88 | } |
| 89 | opsRequest.Status.Phase = phase |
| 90 | if opsRequest.IsComplete(phase) { |
| 91 | opsRequest.Status.CompletionTimestamp = metav1.Time{Time: time.Now()} |
| 92 | // when OpsRequest is completed, remove it from annotation |
| 93 | if err := DequeueOpsRequestInClusterAnnotation(ctx, cli, opsRes); err != nil { |
| 94 | return err |
| 95 | } |
| 96 | } |
| 97 | if phase == opsv1alpha1.OpsCreatingPhase && opsRequest.Status.StartTimestamp.IsZero() { |
| 98 | opsRequest.Status.StartTimestamp = metav1.Time{Time: time.Now()} |
| 99 | } |
| 100 | return cli.Status().Patch(ctx, opsRequest, patch) |
| 101 | } |
| 102 | |
| 103 | // PatchOpsStatus patches OpsRequest.status |
| 104 | func PatchOpsStatus(ctx context.Context, |
no test coverage detected
searching dependent graphs…