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 }