...
1 package couchctl
2
3 import (
4 "context"
5
6 "edge-infra.dev/pkg/k8s/runtime/inventory"
7 "edge-infra.dev/pkg/k8s/runtime/sap"
8 "edge-infra.dev/pkg/k8s/unstructured"
9
10 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
11 "sigs.k8s.io/controller-runtime/pkg/client"
12 )
13
14
15 func pruneInventory(ctx context.Context, r *sap.ResourceManager, obj client.Object) error {
16 un, err := unstructured.FromRuntime(obj)
17 if err != nil {
18 return err
19 }
20 inv, err := inventory.GetUnstructuredInventory(un)
21 if err != nil {
22 return err
23 }
24 if len(inv.Entries) > 0 {
25 objs, err := inv.ListObjects()
26 if err != nil {
27 return err
28 }
29 _, err = r.DeleteAll(ctx, objs, sap.DeleteOptions{
30 PropagationPolicy: metav1.DeletePropagationBackground,
31 })
32 return err
33 }
34 return nil
35 }
36
View as plain text