/
resources_adapter.go
47 lines (41 loc) · 1.41 KB
/
resources_adapter.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
36
37
38
39
40
41
42
43
44
45
46
47
package utils
import (
"context"
"fmt"
. "github.com/onsi/ginkgo/v2"
"k8s.io/apimachinery/pkg/api/errors"
"sigs.k8s.io/controller-runtime/pkg/client"
)
func CreateResource(k8sClient client.Client, obj client.Object) bool {
copyObject := obj.DeepCopyObject().(client.Object)
err := k8sClient.Create(context.Background(), copyObject)
return err == nil
}
func UpdateResource(k8sClient client.Client, obj client.Object) error {
err := k8sClient.Update(context.Background(), obj)
return err
}
// DoesResourceExist checks if a given Kubernetes object exists in the cluster.
func DoesResourceExist(k8sClient client.Client, obj client.Object) bool {
copyObject := obj.DeepCopyObject().(client.Object)
key := client.ObjectKeyFromObject(copyObject)
err := k8sClient.Get(context.Background(), key, copyObject)
if errors.IsNotFound(err) {
return false
} else if err != nil {
Fail(fmt.Sprintf("The function failed with error: \n %s", err.Error()))
}
return true
}
// GetResourceUid returns a given Kubernetes object UID.
func GetResourceUid(k8sClient client.Client, obj client.Object) string {
copyObject := obj.DeepCopyObject().(client.Object)
key := client.ObjectKeyFromObject(copyObject)
err := k8sClient.Get(context.Background(), key, copyObject)
if errors.IsNotFound(err) {
return ""
} else if err != nil {
Fail(fmt.Sprintf("The function failed with error: \n %s", err.Error()))
}
return string(copyObject.GetUID())
}