Skip to content

Commit ffadec3

Browse files
authored
SLO deletion, ignore 404 error in finalizer (#1854)
* SLO deletion, ignore 404 error in finalizer * Return actual status instead of 200
1 parent 8c1ba7f commit ffadec3

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

internal/controller/datadogslo/controller.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -286,11 +286,14 @@ func (r *Reconciler) deleteResource(logger logr.Logger, instance *v1alpha1.Datad
286286
return func(ctx context.Context, k8sObj client.Object, datadogID string) error {
287287
if datadogID != "" {
288288
kind := k8sObj.GetObjectKind().GroupVersionKind().Kind
289-
if err := deleteSLO(r.datadogAuth, r.datadogClient, datadogID); err != nil {
290-
logger.Error(err, "error deleting SLO", "kind", kind, "ID", datadogID)
289+
httpErrorCode, err := deleteSLO(r.datadogAuth, r.datadogClient, datadogID)
290+
if err != nil && httpErrorCode != 404 {
291291
return err
292+
} else if httpErrorCode == 404 {
293+
logger.Info("Object not found, nothing to delete", "kind", kind, "ID", datadogID)
294+
} else {
295+
logger.Info("Successfully deleted object", "kind", kind, "ID", datadogID)
292296
}
293-
logger.Info("Successfully deleted object", "kind", kind, "ID", datadogID)
294297
}
295298
r.recordEvent(instance, buildEventInfo(k8sObj.GetName(), k8sObj.GetNamespace(), datadog.DeletionEvent))
296299
return nil

internal/controller/datadogslo/slo.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,16 @@ func updateSLO(auth context.Context, client *datadogV1.ServiceLevelObjectivesApi
115115
return sloListResponse, nil
116116
}
117117

118-
func deleteSLO(auth context.Context, client *datadogV1.ServiceLevelObjectivesApi, sloID string) error {
118+
func deleteSLO(auth context.Context, client *datadogV1.ServiceLevelObjectivesApi, sloID string) (int, error) {
119119
force := "false"
120120
optionalParams := datadogV1.DeleteSLOOptionalParameters{
121121
Force: &force,
122122
}
123-
if _, _, err := client.DeleteSLO(auth, sloID, optionalParams); err != nil {
124-
return translateClientError(err, "error deleting SLO")
123+
_, localVarHTTPResponse, err := client.DeleteSLO(auth, sloID, optionalParams)
124+
if err != nil {
125+
return localVarHTTPResponse.StatusCode, translateClientError(err, "error deleting SLO")
125126
}
126-
return nil
127+
return localVarHTTPResponse.StatusCode, nil
127128
}
128129

129130
func translateClientError(err error, msg string) error {

0 commit comments

Comments
 (0)