/
account_finalizer.go
35 lines (29 loc) · 1.02 KB
/
account_finalizer.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package account
import (
"context"
"github.com/go-logr/logr"
awsv1alpha1 "github.com/openshift/aws-account-operator/api/v1alpha1"
controllerutils "github.com/openshift/aws-account-operator/pkg/utils"
)
func (r *AccountReconciler) addFinalizer(reqLogger logr.Logger, account *awsv1alpha1.Account) error {
if !controllerutils.Contains(account.GetFinalizers(), awsv1alpha1.AccountFinalizer) {
reqLogger.Info("Adding Finalizer for the Account")
account.SetFinalizers(append(account.GetFinalizers(), awsv1alpha1.AccountFinalizer))
// Update CR
err := r.Client.Update(context.TODO(), account)
if err != nil {
reqLogger.Error(err, "Failed to update Account with finalizer")
return err
}
}
return nil
}
// Function to remove finalizer
func (r *AccountReconciler) removeFinalizer(account *awsv1alpha1.Account, finalizerName string) error {
account.SetFinalizers(controllerutils.Remove(account.GetFinalizers(), finalizerName))
err := r.Client.Update(context.TODO(), account)
if err != nil {
return err
}
return nil
}