MCPcopy
hub / github.com/apecloud/kubeblocks / PatchOpsStatusWithOpsDeepCopy

Function PatchOpsStatusWithOpsDeepCopy

pkg/operations/ops_util.go:68–101  ·  view source on GitHub ↗

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)

Source from the content-addressed store, hash-verified

66
67// PatchOpsStatusWithOpsDeepCopy patches OpsRequest.status with the deepCopy opsRequest.
68func 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
104func PatchOpsStatus(ctx context.Context,

Callers 4

handleCancelSignalMethod · 0.92
PatchOpsStatusFunction · 0.85
syncReconfigureForOpsFunction · 0.85

Calls 7

SetStatusConditionMethod · 0.80
IsCompleteMethod · 0.80
MergeFromMethod · 0.65
PatchMethod · 0.65
StatusMethod · 0.65
EventMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…