github.com/xgoffin/jenkins-library@v1.154.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); 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  }