github.com/xgoffin/jenkins-library@v1.154.0/cmd/cloudFoundryDeleteSpace.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 6 "github.com/SAP/jenkins-library/pkg/cloudfoundry" 7 "github.com/SAP/jenkins-library/pkg/command" 8 "github.com/SAP/jenkins-library/pkg/log" 9 "github.com/SAP/jenkins-library/pkg/telemetry" 10 ) 11 12 func cloudFoundryDeleteSpace(config cloudFoundryDeleteSpaceOptions, telemetryData *telemetry.CustomData) { 13 14 c := command.Command{} 15 16 // reroute command output to logging framework 17 c.Stdout(log.Writer()) 18 c.Stderr(log.Writer()) 19 20 cf := cloudfoundry.CFUtils{ 21 Exec: &c, 22 } 23 24 err := runCloudFoundryDeleteSpace(&config, telemetryData, cf, &c) 25 26 if err != nil { 27 log.Entry().WithError(err).Fatal("step execution failed") 28 } 29 } 30 31 func runCloudFoundryDeleteSpace(config *cloudFoundryDeleteSpaceOptions, telemetryData *telemetry.CustomData, cf cloudfoundry.CFUtils, s command.ShellRunner) (err error) { 32 var c = cf.Exec 33 34 cfLoginError := s.RunShell("/bin/sh", fmt.Sprintf("yes '' | cf login -a %s -u %s -p %s", config.CfAPIEndpoint, config.Username, config.Password)) 35 36 if cfLoginError != nil { 37 return fmt.Errorf("Error while logging in occured: %w", cfLoginError) 38 } 39 40 defer func() { 41 logoutErr := cf.Logout() 42 if logoutErr != nil { 43 err = fmt.Errorf("Error while logging out occured: %w", logoutErr) 44 } 45 }() 46 47 log.Entry().Infof("Deleting Cloud Foundry Space: '%s'", config.CfSpace) 48 49 cfDeleteSpaceScript := []string{"delete-space", config.CfSpace, "-o", config.CfOrg, "-f"} 50 51 err = c.RunExecutable("cf", cfDeleteSpaceScript...) 52 53 if err != nil { 54 return fmt.Errorf("Deletion of cf space has failed: %w", err) 55 } 56 57 log.Entry().Info("Cloud foundry space has been deleted successfully") 58 59 return err 60 }