github.com/redhat-appstudio/e2e-tests@v0.0.0-20240520140907-9709f6f59323/pkg/clients/spi/access_checks.go (about)

     1  package spi
     2  
     3  import (
     4  	"context"
     5  	"time"
     6  
     7  	spi "github.com/redhat-appstudio/service-provider-integration-operator/api/v1beta1"
     8  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
     9  	"k8s.io/apimachinery/pkg/types"
    10  	"sigs.k8s.io/controller-runtime/pkg/client"
    11  )
    12  
    13  // CreateSPIAccessCheck creates a SPIAccessCheck object
    14  func (s *SPIController) CreateSPIAccessCheck(name, namespace, repoURL string) (*spi.SPIAccessCheck, error) {
    15  	spiAccessCheck := spi.SPIAccessCheck{
    16  		ObjectMeta: metav1.ObjectMeta{
    17  			GenerateName: name,
    18  			Namespace:    namespace,
    19  		},
    20  		Spec: spi.SPIAccessCheckSpec{RepoUrl: repoURL},
    21  	}
    22  	ctx, cancel := context.WithTimeout(context.Background(), time.Minute*1)
    23  	defer cancel()
    24  	err := s.KubeRest().Create(ctx, &spiAccessCheck)
    25  	if err != nil {
    26  		return nil, err
    27  	}
    28  	return &spiAccessCheck, nil
    29  }
    30  
    31  // GetSPIAccessCheck returns the requested SPIAccessCheck object
    32  func (s *SPIController) GetSPIAccessCheck(name, namespace string) (*spi.SPIAccessCheck, error) {
    33  	namespacedName := types.NamespacedName{
    34  		Name:      name,
    35  		Namespace: namespace,
    36  	}
    37  
    38  	spiAccessCheck := spi.SPIAccessCheck{
    39  		Spec: spi.SPIAccessCheckSpec{},
    40  	}
    41  	err := s.KubeRest().Get(context.Background(), namespacedName, &spiAccessCheck)
    42  	if err != nil {
    43  		return nil, err
    44  	}
    45  	return &spiAccessCheck, nil
    46  }
    47  
    48  // DeleteAllSPIAccessChecksInASpecificNamespace deletes all SPIAccessCheck from a given namespace
    49  func (s *SPIController) DeleteAllAccessChecksInASpecificNamespace(namespace string) error {
    50  	return s.KubeRest().DeleteAllOf(context.Background(), &spi.SPIAccessCheck{}, client.InNamespace(namespace))
    51  }