github.com/redhat-appstudio/e2e-tests@v0.0.0-20240520140907-9709f6f59323/pkg/clients/gitops/deploymenttargets.go (about) 1 package gitops 2 3 import ( 4 "context" 5 "fmt" 6 7 appservice "github.com/redhat-appstudio/application-api/api/v1alpha1" 8 "github.com/redhat-appstudio/e2e-tests/pkg/logs" 9 k8sErrors "k8s.io/apimachinery/pkg/api/errors" 10 "sigs.k8s.io/controller-runtime/pkg/client" 11 ) 12 13 // List all deploymentTargets in a given namespace from the kubernetes cluster. 14 func (g *GitopsController) GetDeploymentTargetsList(namespace string) (*appservice.DeploymentTargetList, error) { 15 deploymentTargetList := &appservice.DeploymentTargetList{} 16 17 opts := []client.ListOption{ 18 client.InNamespace(namespace), 19 } 20 21 err := g.KubeRest().List(context.Background(), deploymentTargetList, opts...) 22 if err != nil && !k8sErrors.IsNotFound(err) { 23 return nil, fmt.Errorf("error occurred while trying to list deploymentTargets in %s namespace: %w", namespace, err) 24 } 25 26 return deploymentTargetList, nil 27 } 28 29 // StoreDeploymentTarget stores a given DeploymentTarget as an artifact. 30 func (g *GitopsController) StoreDeploymentTarget(deploymentTarget *appservice.DeploymentTarget) error { 31 return logs.StoreResourceYaml(deploymentTarget, "deploymentTarget-"+deploymentTarget.Name) 32 } 33 34 // StoreAllDeploymentTargets stores all DeploymentTargets in a given namespace. 35 func (g *GitopsController) StoreAllDeploymentTargets(namespace string) error { 36 deploymentTargetList, err := g.GetDeploymentTargetsList(namespace) 37 if err != nil { 38 return err 39 } 40 41 for _, deploymentTarget := range deploymentTargetList.Items { 42 if err := g.StoreDeploymentTarget(&deploymentTarget); err != nil { 43 return err 44 } 45 } 46 return nil 47 }