...

Source file src/edge-infra.dev/pkg/edge/datasync/controllers/couchctl/finalizer.go

Documentation: edge-infra.dev/pkg/edge/datasync/controllers/couchctl

     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  // pruneInventory delete resources from inventory.
    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