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

     1  package common
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"time"
     7  
     8  	toolchainv1alpha1 "github.com/codeready-toolchain/api/api/v1alpha1"
     9  	"github.com/redhat-appstudio/e2e-tests/pkg/utils"
    10  	"github.com/redhat-appstudio/e2e-tests/pkg/utils/common"
    11  
    12  	k8sErrors "k8s.io/apimachinery/pkg/api/errors"
    13  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    14  	"k8s.io/apimachinery/pkg/types"
    15  )
    16  
    17  // CreateProxyPlugin creates an object of ProxyPlugin for the OpenShift route target
    18  func (s *SuiteController) CreateProxyPlugin(proxyPluginName, proxyPluginNamespace, routeName, routeNamespace string) (*toolchainv1alpha1.ProxyPlugin, error) {
    19  	// Create the ProxyPlugin object
    20  	proxyPlugin := common.NewProxyPlugin(proxyPluginName, proxyPluginNamespace, routeName, routeNamespace)
    21  
    22  	if err := s.KubeRest().Create(context.Background(), proxyPlugin); err != nil {
    23  		return nil, fmt.Errorf("unable to create proxy plugin due to %v", err)
    24  	}
    25  	return proxyPlugin, nil
    26  }
    27  
    28  // DeleteProxyPlugin deletes the ProxyPlugin object
    29  func (s *SuiteController) DeleteProxyPlugin(proxyPluginName, proxyPluginNamespace string) (bool, error) {
    30  	proxyPlugin := &toolchainv1alpha1.ProxyPlugin{
    31  		ObjectMeta: metav1.ObjectMeta{
    32  			Name:      proxyPluginName,
    33  			Namespace: proxyPluginNamespace,
    34  		},
    35  	}
    36  
    37  	if err := s.KubeRest().Delete(context.Background(), proxyPlugin); err != nil {
    38  		return false, err
    39  	}
    40  	err := utils.WaitUntil(func() (done bool, err error) {
    41  		err = s.KubeRest().Get(context.Background(), types.NamespacedName{
    42  			Namespace: proxyPluginNamespace,
    43  			Name:      proxyPluginName,
    44  		}, proxyPlugin)
    45  
    46  		if err != nil {
    47  			if k8sErrors.IsNotFound(err) {
    48  				return true, nil
    49  			}
    50  			return false, fmt.Errorf("deletion of proxy plugin has been timedout:: %v", err)
    51  		}
    52  		return false, nil
    53  	}, 5*time.Minute)
    54  
    55  	if err != nil {
    56  		return false, err
    57  	}
    58  
    59  	return true, nil
    60  }