You've already forked sap-jenkins-library
							
							
				mirror of
				https://github.com/SAP/jenkins-library.git
				synced 2025-10-30 23:57:50 +02:00 
			
		
		
		
	* docu updates * go generate * remove example as better explained in scenario docu * Update abapAddonAssemblyKitCheckCVs_generated.go * PV Step update * md lint * create TV * publish TV * lint * register * release * reserve * yaml lint * Update abapAddonAssemblyKitRegisterPackages_generated.go * Update resources/metadata/abapAddonAssemblyKitCreateTargetVector.yaml Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com> * Update resources/metadata/abapAddonAssemblyKitPublishTargetVector.yaml Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com> * refer Co-authored-by: Daniel Mieg <56156797+DanielMieg@users.noreply.github.com>
		
			
				
	
	
		
			218 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			218 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Code generated by piper's step-generator. DO NOT EDIT.
 | |
| 
 | |
| package cmd
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"os"
 | |
| 	"path/filepath"
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/SAP/jenkins-library/pkg/config"
 | |
| 	"github.com/SAP/jenkins-library/pkg/log"
 | |
| 	"github.com/SAP/jenkins-library/pkg/piperenv"
 | |
| 	"github.com/SAP/jenkins-library/pkg/splunk"
 | |
| 	"github.com/SAP/jenkins-library/pkg/telemetry"
 | |
| 	"github.com/spf13/cobra"
 | |
| )
 | |
| 
 | |
| type abapAddonAssemblyKitCreateTargetVectorOptions struct {
 | |
| 	AbapAddonAssemblyKitEndpoint string `json:"abapAddonAssemblyKitEndpoint,omitempty"`
 | |
| 	Username                     string `json:"username,omitempty"`
 | |
| 	Password                     string `json:"password,omitempty"`
 | |
| 	AddonDescriptor              string `json:"addonDescriptor,omitempty"`
 | |
| }
 | |
| 
 | |
| type abapAddonAssemblyKitCreateTargetVectorCommonPipelineEnvironment struct {
 | |
| 	abap struct {
 | |
| 		addonDescriptor string
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func (p *abapAddonAssemblyKitCreateTargetVectorCommonPipelineEnvironment) persist(path, resourceName string) {
 | |
| 	content := []struct {
 | |
| 		category string
 | |
| 		name     string
 | |
| 		value    interface{}
 | |
| 	}{
 | |
| 		{category: "abap", name: "addonDescriptor", value: p.abap.addonDescriptor},
 | |
| 	}
 | |
| 
 | |
| 	errCount := 0
 | |
| 	for _, param := range content {
 | |
| 		err := piperenv.SetResourceParameter(path, resourceName, filepath.Join(param.category, param.name), param.value)
 | |
| 		if err != nil {
 | |
| 			log.Entry().WithError(err).Error("Error persisting piper environment.")
 | |
| 			errCount++
 | |
| 		}
 | |
| 	}
 | |
| 	if errCount > 0 {
 | |
| 		log.Entry().Fatal("failed to persist Piper environment")
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // AbapAddonAssemblyKitCreateTargetVectorCommand This step creates a Target Vector for software lifecycle operations
 | |
| func AbapAddonAssemblyKitCreateTargetVectorCommand() *cobra.Command {
 | |
| 	const STEP_NAME = "abapAddonAssemblyKitCreateTargetVector"
 | |
| 
 | |
| 	metadata := abapAddonAssemblyKitCreateTargetVectorMetadata()
 | |
| 	var stepConfig abapAddonAssemblyKitCreateTargetVectorOptions
 | |
| 	var startTime time.Time
 | |
| 	var commonPipelineEnvironment abapAddonAssemblyKitCreateTargetVectorCommonPipelineEnvironment
 | |
| 	var logCollector *log.CollectorHook
 | |
| 
 | |
| 	var createAbapAddonAssemblyKitCreateTargetVectorCmd = &cobra.Command{
 | |
| 		Use:   STEP_NAME,
 | |
| 		Short: "This step creates a Target Vector for software lifecycle operations",
 | |
| 		Long: `This step takes the Product Version and the corresponding list of Software Component Versions from the addonDescriptor in the commonPipelineEnvironment.
 | |
| With these it creates a Target Vector, which is necessary for executing software lifecylce operations in ABAP Cloud Platform systems.
 | |
| The Target Vector describes the software state, which shall be reached in the managed ABAP Cloud Platform system.
 | |
| <br />
 | |
| For Terminology refer to the [Scenario Description](https://www.project-piper.io/scenarios/abapEnvironmentAddons/).`,
 | |
| 		PreRunE: func(cmd *cobra.Command, _ []string) error {
 | |
| 			startTime = time.Now()
 | |
| 			log.SetStepName(STEP_NAME)
 | |
| 			log.SetVerbose(GeneralConfig.Verbose)
 | |
| 
 | |
| 			path, _ := os.Getwd()
 | |
| 			fatalHook := &log.FatalHook{CorrelationID: GeneralConfig.CorrelationID, Path: path}
 | |
| 			log.RegisterHook(fatalHook)
 | |
| 
 | |
| 			err := PrepareConfig(cmd, &metadata, STEP_NAME, &stepConfig, config.OpenPiperFile)
 | |
| 			if err != nil {
 | |
| 				log.SetErrorCategory(log.ErrorConfiguration)
 | |
| 				return err
 | |
| 			}
 | |
| 			log.RegisterSecret(stepConfig.Username)
 | |
| 			log.RegisterSecret(stepConfig.Password)
 | |
| 
 | |
| 			if len(GeneralConfig.HookConfig.SentryConfig.Dsn) > 0 {
 | |
| 				sentryHook := log.NewSentryHook(GeneralConfig.HookConfig.SentryConfig.Dsn, GeneralConfig.CorrelationID)
 | |
| 				log.RegisterHook(&sentryHook)
 | |
| 			}
 | |
| 
 | |
| 			if len(GeneralConfig.HookConfig.SplunkConfig.Dsn) > 0 {
 | |
| 				logCollector = &log.CollectorHook{CorrelationID: GeneralConfig.CorrelationID}
 | |
| 				log.RegisterHook(logCollector)
 | |
| 			}
 | |
| 
 | |
| 			return nil
 | |
| 		},
 | |
| 		Run: func(_ *cobra.Command, _ []string) {
 | |
| 			telemetryData := telemetry.CustomData{}
 | |
| 			telemetryData.ErrorCode = "1"
 | |
| 			handler := func() {
 | |
| 				config.RemoveVaultSecretFiles()
 | |
| 				commonPipelineEnvironment.persist(GeneralConfig.EnvRootPath, "commonPipelineEnvironment")
 | |
| 				telemetryData.Duration = fmt.Sprintf("%v", time.Since(startTime).Milliseconds())
 | |
| 				telemetryData.ErrorCategory = log.GetErrorCategory().String()
 | |
| 				telemetry.Send(&telemetryData)
 | |
| 				if len(GeneralConfig.HookConfig.SplunkConfig.Dsn) > 0 {
 | |
| 					splunk.Send(&telemetryData, logCollector)
 | |
| 				}
 | |
| 			}
 | |
| 			log.DeferExitHandler(handler)
 | |
| 			defer handler()
 | |
| 			telemetry.Initialize(GeneralConfig.NoTelemetry, STEP_NAME)
 | |
| 			if len(GeneralConfig.HookConfig.SplunkConfig.Dsn) > 0 {
 | |
| 				splunk.Initialize(GeneralConfig.CorrelationID,
 | |
| 					GeneralConfig.HookConfig.SplunkConfig.Dsn,
 | |
| 					GeneralConfig.HookConfig.SplunkConfig.Token,
 | |
| 					GeneralConfig.HookConfig.SplunkConfig.Index,
 | |
| 					GeneralConfig.HookConfig.SplunkConfig.SendLogs)
 | |
| 			}
 | |
| 			abapAddonAssemblyKitCreateTargetVector(stepConfig, &telemetryData, &commonPipelineEnvironment)
 | |
| 			telemetryData.ErrorCode = "0"
 | |
| 			log.Entry().Info("SUCCESS")
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	addAbapAddonAssemblyKitCreateTargetVectorFlags(createAbapAddonAssemblyKitCreateTargetVectorCmd, &stepConfig)
 | |
| 	return createAbapAddonAssemblyKitCreateTargetVectorCmd
 | |
| }
 | |
| 
 | |
| func addAbapAddonAssemblyKitCreateTargetVectorFlags(cmd *cobra.Command, stepConfig *abapAddonAssemblyKitCreateTargetVectorOptions) {
 | |
| 	cmd.Flags().StringVar(&stepConfig.AbapAddonAssemblyKitEndpoint, "abapAddonAssemblyKitEndpoint", `https://apps.support.sap.com`, "Base URL to the Addon Assembly Kit as a Service (AAKaaS) system")
 | |
| 	cmd.Flags().StringVar(&stepConfig.Username, "username", os.Getenv("PIPER_username"), "User for the Addon Assembly Kit as a Service (AAKaaS) system")
 | |
| 	cmd.Flags().StringVar(&stepConfig.Password, "password", os.Getenv("PIPER_password"), "Password for the Addon Assembly Kit as a Service (AAKaaS) system")
 | |
| 	cmd.Flags().StringVar(&stepConfig.AddonDescriptor, "addonDescriptor", os.Getenv("PIPER_addonDescriptor"), "Structure in the commonPipelineEnvironment containing information about the Product Version and corresponding Software Component Versions")
 | |
| 
 | |
| 	cmd.MarkFlagRequired("abapAddonAssemblyKitEndpoint")
 | |
| 	cmd.MarkFlagRequired("username")
 | |
| 	cmd.MarkFlagRequired("password")
 | |
| 	cmd.MarkFlagRequired("addonDescriptor")
 | |
| }
 | |
| 
 | |
| // retrieve step metadata
 | |
| func abapAddonAssemblyKitCreateTargetVectorMetadata() config.StepData {
 | |
| 	var theMetaData = config.StepData{
 | |
| 		Metadata: config.StepMetadata{
 | |
| 			Name:        "abapAddonAssemblyKitCreateTargetVector",
 | |
| 			Aliases:     []config.Alias{},
 | |
| 			Description: "This step creates a Target Vector for software lifecycle operations",
 | |
| 		},
 | |
| 		Spec: config.StepSpec{
 | |
| 			Inputs: config.StepInputs{
 | |
| 				Secrets: []config.StepSecrets{
 | |
| 					{Name: "abapAddonAssemblyKitCredentialsId", Description: "Credential stored in Jenkins for the Addon Assembly Kit as a Service (AAKaaS) system", Type: "jenkins"},
 | |
| 				},
 | |
| 				Parameters: []config.StepParameters{
 | |
| 					{
 | |
| 						Name:        "abapAddonAssemblyKitEndpoint",
 | |
| 						ResourceRef: []config.ResourceReference{},
 | |
| 						Scope:       []string{"PARAMETERS", "STAGES", "STEPS", "GENERAL"},
 | |
| 						Type:        "string",
 | |
| 						Mandatory:   true,
 | |
| 						Aliases:     []config.Alias{},
 | |
| 						Default:     `https://apps.support.sap.com`,
 | |
| 					},
 | |
| 					{
 | |
| 						Name:        "username",
 | |
| 						ResourceRef: []config.ResourceReference{},
 | |
| 						Scope:       []string{"PARAMETERS", "STAGES", "STEPS"},
 | |
| 						Type:        "string",
 | |
| 						Mandatory:   true,
 | |
| 						Aliases:     []config.Alias{},
 | |
| 						Default:     os.Getenv("PIPER_username"),
 | |
| 					},
 | |
| 					{
 | |
| 						Name:        "password",
 | |
| 						ResourceRef: []config.ResourceReference{},
 | |
| 						Scope:       []string{"PARAMETERS"},
 | |
| 						Type:        "string",
 | |
| 						Mandatory:   true,
 | |
| 						Aliases:     []config.Alias{},
 | |
| 						Default:     os.Getenv("PIPER_password"),
 | |
| 					},
 | |
| 					{
 | |
| 						Name: "addonDescriptor",
 | |
| 						ResourceRef: []config.ResourceReference{
 | |
| 							{
 | |
| 								Name:  "commonPipelineEnvironment",
 | |
| 								Param: "abap/addonDescriptor",
 | |
| 							},
 | |
| 						},
 | |
| 						Scope:     []string{"PARAMETERS", "STAGES", "STEPS"},
 | |
| 						Type:      "string",
 | |
| 						Mandatory: true,
 | |
| 						Aliases:   []config.Alias{},
 | |
| 						Default:   os.Getenv("PIPER_addonDescriptor"),
 | |
| 					},
 | |
| 				},
 | |
| 			},
 | |
| 			Outputs: config.StepOutputs{
 | |
| 				Resources: []config.StepResources{
 | |
| 					{
 | |
| 						Name: "commonPipelineEnvironment",
 | |
| 						Type: "piperEnvironment",
 | |
| 						Parameters: []map[string]interface{}{
 | |
| 							{"Name": "abap/addonDescriptor"},
 | |
| 						},
 | |
| 					},
 | |
| 				},
 | |
| 			},
 | |
| 		},
 | |
| 	}
 | |
| 	return theMetaData
 | |
| }
 |