github.com/SAP/jenkins-library@v1.362.0/cmd/abapAddonAssemblyKitPublishTargetVector.go (about) 1 package cmd 2 3 import ( 4 "time" 5 6 "github.com/SAP/jenkins-library/pkg/abap/aakaas" 7 abapbuild "github.com/SAP/jenkins-library/pkg/abap/build" 8 "github.com/SAP/jenkins-library/pkg/abaputils" 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 abapAddonAssemblyKitPublishTargetVector(config abapAddonAssemblyKitPublishTargetVectorOptions, telemetryData *telemetry.CustomData) { 15 utils := aakaas.NewAakBundleWithTime(time.Duration(config.MaxRuntimeInMinutes), time.Duration(config.PollingIntervalInSeconds)) 16 17 // error situations should stop execution through log.Entry().Fatal() call which leads to an os.Exit(1) in the end 18 if err := runAbapAddonAssemblyKitPublishTargetVector(&config, telemetryData, &utils); err != nil { 19 log.Entry().WithError(err).Fatal("step execution failed") 20 } 21 } 22 23 func runAbapAddonAssemblyKitPublishTargetVector(config *abapAddonAssemblyKitPublishTargetVectorOptions, telemetryData *telemetry.CustomData, utils *aakaas.AakUtils) error { 24 25 conn := new(abapbuild.Connector) 26 if err := conn.InitAAKaaS(config.AbapAddonAssemblyKitEndpoint, config.Username, config.Password, *utils, config.AbapAddonAssemblyKitOriginHash, config.AbapAddonAssemblyKitCertificateFile, config.AbapAddonAssemblyKitCertificatePass); err != nil { 27 return err 28 } 29 conn.MaxRuntime = (*utils).GetMaxRuntime() 30 conn.PollingInterval = (*utils).GetPollingInterval() 31 32 addonDescriptor := new(abaputils.AddonDescriptor) 33 if err := addonDescriptor.InitFromJSONstring(config.AddonDescriptor); err != nil { 34 return errors.Wrap(err, "Reading AddonDescriptor failed [Make sure abapAddonAssemblyKit...CheckCVs|CheckPV steps have been run before]") 35 } 36 37 if addonDescriptor.TargetVectorID == "" { 38 return errors.New("Parameter missing. Please provide the target vector id (e.g. by running step abapAddonAssemblyKitCreateTargetVector beforehand") 39 } 40 targetVector := new(aakaas.TargetVector) 41 targetVector.InitExisting(addonDescriptor.TargetVectorID) 42 43 switch config.TargetVectorScope { 44 case string(aakaas.TargetVectorStatusTest): 45 log.Entry().Infof("Publish target vector %s for test use", addonDescriptor.TargetVectorID) 46 case string(aakaas.TargetVectorStatusProductive): 47 log.Entry().Infof("Publish target vector %s for productive use", addonDescriptor.TargetVectorID) 48 default: 49 return errors.New("Invalid Value of configuration Parameter TargetVectorScope: " + config.TargetVectorScope) 50 } 51 52 if err := targetVector.PublishTargetVector(conn, aakaas.TargetVectorStatus(config.TargetVectorScope)); err != nil { 53 return err 54 } 55 56 log.Entry().Info("Waiting for target vector publishing to finish") 57 if err := targetVector.PollForStatus(conn, aakaas.TargetVectorStatus(config.TargetVectorScope)); err != nil { 58 return err 59 } 60 61 log.Entry().Info("Success: Publishing finished") 62 return nil 63 }