github.com/olli-ai/jx/v2@v2.0.400-0.20210921045218-14731b4dd448/pkg/environments/devenv.go (about) 1 package environments 2 3 import ( 4 "fmt" 5 6 v1 "github.com/jenkins-x/jx-api/pkg/apis/jenkins.io/v1" 7 "github.com/jenkins-x/jx-api/pkg/client/clientset/versioned" 8 "github.com/olli-ai/jx/v2/pkg/kube" 9 "github.com/pkg/errors" 10 ) 11 12 // ModifyDevEnvironment performs some mutation on the Development environment to modify team settings 13 func ModifyDevEnvironmentWithNs(jxClient versioned.Interface, ns string, 14 fn func(env *v1.Environment) error) error { 15 env, err := kube.EnsureDevEnvironmentSetup(jxClient, ns) 16 if err != nil { 17 return errors.Wrapf(err, "failed to ensure that dev environment is setup for namespace '%s'", ns) 18 } 19 if env == nil { 20 return fmt.Errorf("No Development environment found in namespace %s", ns) 21 } 22 err = fn(env) 23 if err != nil { 24 return errors.Wrap(err, "failed to call the callback function for dev environment") 25 } 26 _, err = jxClient.JenkinsV1().Environments(ns).PatchUpdate(env) 27 if err != nil { 28 return fmt.Errorf("Failed to update Development environment in namespace %s: %s", ns, err) 29 } 30 return nil 31 }