v2/pkg/genruntime/conditions/ready_condition_builder.go (69 lines of code) (raw):

/* Copyright (c) Microsoft Corporation. Licensed under the MIT license. */ package conditions import ( "github.com/Azure/azure-service-operator/v2/pkg/genruntime/retry" ) type Reason struct { Name string RetryClassification retry.Classification } // Auth reasons var ReasonSubscriptionMismatch = Reason{Name: "SubscriptionMismatch", RetryClassification: retry.Fast} // Precondition reasons var ( ReasonSecretNotFound = Reason{Name: "SecretNotFound", RetryClassification: retry.Fast} ReasonConfigMapNotFound = Reason{Name: "ConfigMapNotFound", RetryClassification: retry.Fast} ReasonReferenceNotFound = Reason{Name: "ReferenceNotFound", RetryClassification: retry.Fast} ReasonWaitingForOwner = Reason{Name: "WaitingForOwner", RetryClassification: retry.Fast} ) // Post-ARM PUT reasons var ( ReasonAzureResourceNotFound = Reason{Name: "AzureResourceNotFound", RetryClassification: retry.Slow} ReasonAdditionalKubernetesObjWriteFailure = Reason{Name: "FailedWritingAdditionalKubernetesObjects", RetryClassification: retry.Slow} ) // Other reasons var ( ReasonReconciling = Reason{Name: "Reconciling", RetryClassification: retry.Fast} ReasonDeleting = Reason{Name: "Deleting", RetryClassification: retry.Fast} ReasonReconciliationFailedPermanently = Reason{Name: "ReconciliationFailedPermanently", RetryClassification: retry.None} ReasonReconcileBlocked = Reason{Name: "ReconciliationBlocked", RetryClassification: retry.Slow} ReasonReconcilePostponed = Reason{Name: "ReconciliationPostponed", RetryClassification: retry.Slow} ReasonPostReconcileFailure = Reason{Name: "PostReconciliationFailure", RetryClassification: retry.Slow} ) // ReasonFailed is a catch-all error code for when we don't have a more specific error classification var ReasonFailed = Reason{Name: "Failed", RetryClassification: retry.Slow} func MakeReason(reason string, retryClassification retry.Classification) Reason { if retryClassification == "" || retryClassification == retry.None { // Unset and none default to slow retryClassification = retry.Slow } return Reason{Name: reason, RetryClassification: retryClassification} } func NewReadyConditionBuilder(builder PositiveConditionBuilderInterface) *ReadyConditionBuilder { return &ReadyConditionBuilder{ builder: builder, } } type ReadyConditionBuilder struct { builder PositiveConditionBuilderInterface } func (b *ReadyConditionBuilder) ReadyCondition(severity ConditionSeverity, observedGeneration int64, reason string, message string) Condition { return b.builder.MakeFalseCondition( ConditionTypeReady, severity, observedGeneration, reason, message) } func (b *ReadyConditionBuilder) Reconciling(observedGeneration int64) Condition { return b.builder.MakeFalseCondition( ConditionTypeReady, ConditionSeverityInfo, observedGeneration, ReasonReconciling.Name, "The resource is in the process of being reconciled by the operator") } func (b *ReadyConditionBuilder) Deleting(observedGeneration int64) Condition { return b.builder.MakeFalseCondition( ConditionTypeReady, ConditionSeverityInfo, observedGeneration, ReasonDeleting.Name, "The resource is being deleted") } func (b *ReadyConditionBuilder) Succeeded(observedGeneration int64) Condition { return b.builder.MakeTrueCondition(ConditionTypeReady, observedGeneration) }