github.com/SAP/jenkins-library@v1.362.0/cmd/abapAddonAssemblyKitCreateTargetVector.go (about) 1 package cmd 2 3 import ( 4 "github.com/SAP/jenkins-library/pkg/abap/aakaas" 5 abapbuild "github.com/SAP/jenkins-library/pkg/abap/build" 6 "github.com/SAP/jenkins-library/pkg/abaputils" 7 "github.com/SAP/jenkins-library/pkg/command" 8 piperhttp "github.com/SAP/jenkins-library/pkg/http" 9 "github.com/SAP/jenkins-library/pkg/log" 10 "github.com/SAP/jenkins-library/pkg/telemetry" 11 "github.com/pkg/errors" 12 ) 13 14 func abapAddonAssemblyKitCreateTargetVector(config abapAddonAssemblyKitCreateTargetVectorOptions, telemetryData *telemetry.CustomData, cpe *abapAddonAssemblyKitCreateTargetVectorCommonPipelineEnvironment) { 15 // for command execution use Command 16 c := command.Command{} 17 // reroute command output to logging framework 18 c.Stdout(log.Writer()) 19 c.Stderr(log.Writer()) 20 21 client := piperhttp.Client{} 22 23 // error situations should stop execution through log.Entry().Fatal() call which leads to an os.Exit(1) in the end 24 err := runAbapAddonAssemblyKitCreateTargetVector(&config, telemetryData, &client, cpe) 25 if err != nil { 26 log.Entry().WithError(err).Fatal("step execution failed") 27 } 28 } 29 30 func runAbapAddonAssemblyKitCreateTargetVector(config *abapAddonAssemblyKitCreateTargetVectorOptions, telemetryData *telemetry.CustomData, client piperhttp.Sender, cpe *abapAddonAssemblyKitCreateTargetVectorCommonPipelineEnvironment) error { 31 conn := new(abapbuild.Connector) 32 if err := conn.InitAAKaaS(config.AbapAddonAssemblyKitEndpoint, config.Username, config.Password, client, config.AbapAddonAssemblyKitOriginHash, config.AbapAddonAssemblyKitCertificateFile, config.AbapAddonAssemblyKitCertificatePass); err != nil { 33 return err 34 } 35 36 addonDescriptor := new(abaputils.AddonDescriptor) 37 if err := addonDescriptor.InitFromJSONstring(config.AddonDescriptor); err != nil { 38 return errors.Wrap(err, "Reading AddonDescriptor failed [Make sure abapAddonAssemblyKit...CheckCVs|CheckPV steps have been run before]") 39 } 40 41 var tv aakaas.TargetVector 42 if err := tv.InitNew(addonDescriptor); err != nil { 43 return err 44 } 45 46 log.Entry().Infof("Create target vector for product %s version %s", addonDescriptor.AddonProduct, addonDescriptor.AddonVersionYAML) 47 if err := tv.CreateTargetVector(conn); err != nil { 48 return err 49 } 50 51 log.Entry().Infof("Created target vector %s", tv.ID) 52 addonDescriptor.TargetVectorID = tv.ID 53 54 log.Entry().Info("Write target vector to CommonPipelineEnvironment") 55 cpe.abap.addonDescriptor = addonDescriptor.AsJSONstring() 56 return nil 57 }