github.com/SAP/jenkins-library@v1.362.0/cmd/tmsExport.go (about)

     1  package cmd
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/SAP/jenkins-library/pkg/command"
     7  	"github.com/SAP/jenkins-library/pkg/log"
     8  	"github.com/SAP/jenkins-library/pkg/piperutils"
     9  	"github.com/SAP/jenkins-library/pkg/telemetry"
    10  	"github.com/SAP/jenkins-library/pkg/tms"
    11  )
    12  
    13  type tmsExportUtilsBundle struct {
    14  	*command.Command
    15  	*piperutils.Files
    16  }
    17  
    18  func tmsExport(exportConfig tmsExportOptions, telemetryData *telemetry.CustomData, influx *tmsExportInflux) {
    19  	utils := tms.NewTmsUtils()
    20  	config := convertExportOptions(exportConfig)
    21  	communicationInstance := tms.SetupCommunication(config)
    22  
    23  	err := runTmsExport(exportConfig, communicationInstance, utils)
    24  	if err != nil {
    25  		log.Entry().WithError(err).Fatal("Failed to run tmsExport")
    26  	}
    27  }
    28  
    29  func runTmsExport(exportConfig tmsExportOptions, communicationInstance tms.CommunicationInterface, utils tms.TmsUtils) error {
    30  	config := convertExportOptions(exportConfig)
    31  	fileInfo, errUploadFile := tms.UploadFile(config, communicationInstance, utils)
    32  	if errUploadFile != nil {
    33  		return errUploadFile
    34  	}
    35  
    36  	errUploadDescriptors := tms.UploadDescriptors(config, communicationInstance, utils)
    37  	if errUploadDescriptors != nil {
    38  		return errUploadDescriptors
    39  	}
    40  
    41  	_, errExportFileToNode := communicationInstance.ExportFileToNode(fileInfo, config.NodeName, config.CustomDescription, config.NamedUser)
    42  	if errExportFileToNode != nil {
    43  		log.SetErrorCategory(log.ErrorService)
    44  		return fmt.Errorf("failed to export file to node: %w", errExportFileToNode)
    45  	}
    46  
    47  	return nil
    48  }
    49  
    50  func convertExportOptions(exportConfig tmsExportOptions) tms.Options {
    51  	var config tms.Options
    52  	config.ServiceKey = exportConfig.ServiceKey
    53  	if exportConfig.ServiceKey == "" && exportConfig.TmsServiceKey != "" {
    54  		config.ServiceKey = exportConfig.TmsServiceKey
    55  		log.Entry().Warn("DEPRECATION WARNING: The tmsServiceKey parameter has been deprecated, please use the serviceKey parameter instead.")
    56  	}
    57  	config.CustomDescription = exportConfig.CustomDescription
    58  	if config.CustomDescription == "" {
    59  		config.CustomDescription = tms.DEFAULT_TR_DESCRIPTION
    60  	}
    61  	config.NamedUser = exportConfig.NamedUser
    62  	config.NodeName = exportConfig.NodeName
    63  	config.MtaPath = exportConfig.MtaPath
    64  	config.MtaVersion = exportConfig.MtaVersion
    65  	config.NodeExtDescriptorMapping = exportConfig.NodeExtDescriptorMapping
    66  	config.Proxy = exportConfig.Proxy
    67  	config.Verbose = GeneralConfig.Verbose
    68  	return config
    69  }