2021-02-04 11:50:15 +02:00
// 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"
2021-05-17 12:14:04 +02:00
"github.com/SAP/jenkins-library/pkg/splunk"
2021-02-04 11:50:15 +02:00
"github.com/SAP/jenkins-library/pkg/telemetry"
"github.com/spf13/cobra"
)
type integrationArtifactGetMplStatusOptions struct {
2021-06-28 10:50:33 +02:00
APIServiceKey string ` json:"apiServiceKey,omitempty" `
IntegrationFlowID string ` json:"integrationFlowId,omitempty" `
2021-02-04 11:50:15 +02:00
}
type integrationArtifactGetMplStatusCommonPipelineEnvironment struct {
custom struct {
2021-08-04 16:42:25 +02:00
integrationFlowMplStatus string
integrationFlowMplError string
2021-02-04 11:50:15 +02:00
}
}
func ( p * integrationArtifactGetMplStatusCommonPipelineEnvironment ) persist ( path , resourceName string ) {
content := [ ] struct {
category string
name string
value interface { }
} {
2021-08-04 16:42:25 +02:00
{ category : "custom" , name : "integrationFlowMplStatus" , value : p . custom . integrationFlowMplStatus } ,
{ category : "custom" , name : "integrationFlowMplError" , value : p . custom . integrationFlowMplError } ,
2021-02-04 11:50:15 +02:00
}
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" )
}
}
// IntegrationArtifactGetMplStatusCommand Get the MPL status of an integration flow
func IntegrationArtifactGetMplStatusCommand ( ) * cobra . Command {
const STEP_NAME = "integrationArtifactGetMplStatus"
metadata := integrationArtifactGetMplStatusMetadata ( )
var stepConfig integrationArtifactGetMplStatusOptions
var startTime time . Time
var commonPipelineEnvironment integrationArtifactGetMplStatusCommonPipelineEnvironment
2021-05-17 12:14:04 +02:00
var logCollector * log . CollectorHook
2021-02-04 11:50:15 +02:00
var createIntegrationArtifactGetMplStatusCmd = & cobra . Command {
Use : STEP_NAME ,
Short : "Get the MPL status of an integration flow" ,
2021-05-04 16:14:40 +02:00
Long : ` With this step you can obtain information about the Message Processing Log (MPL) status of integration flow using OData API. Learn more about the SAP Cloud Integration remote API for getting MPL status messages processed of an deployed integration artifact [here](https://help.sap.com/viewer/368c481cd6954bdfa5d0435479fd4eaf/Cloud/en-US/d1679a80543f46509a7329243b595bdb.html). ` ,
2021-02-04 11:50:15 +02:00
PreRunE : func ( cmd * cobra . Command , _ [ ] string ) error {
startTime = time . Now ( )
log . SetStepName ( STEP_NAME )
log . SetVerbose ( GeneralConfig . Verbose )
2021-07-08 15:26:07 +02:00
GeneralConfig . GitHubAccessTokens = ResolveAccessTokens ( GeneralConfig . GitHubTokens )
2021-02-04 11:50:15 +02:00
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
}
2021-06-28 10:50:33 +02:00
log . RegisterSecret ( stepConfig . APIServiceKey )
2021-02-04 11:50:15 +02:00
if len ( GeneralConfig . HookConfig . SentryConfig . Dsn ) > 0 {
sentryHook := log . NewSentryHook ( GeneralConfig . HookConfig . SentryConfig . Dsn , GeneralConfig . CorrelationID )
log . RegisterHook ( & sentryHook )
}
2021-05-17 12:14:04 +02:00
if len ( GeneralConfig . HookConfig . SplunkConfig . Dsn ) > 0 {
logCollector = & log . CollectorHook { CorrelationID : GeneralConfig . CorrelationID }
log . RegisterHook ( logCollector )
}
2021-02-04 11:50:15 +02:00
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 )
2021-05-17 12:14:04 +02:00
if len ( GeneralConfig . HookConfig . SplunkConfig . Dsn ) > 0 {
splunk . Send ( & telemetryData , logCollector )
}
2021-02-04 11:50:15 +02:00
}
log . DeferExitHandler ( handler )
defer handler ( )
telemetry . Initialize ( GeneralConfig . NoTelemetry , STEP_NAME )
2021-05-17 12:14:04 +02:00
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 )
}
2021-02-04 11:50:15 +02:00
integrationArtifactGetMplStatus ( stepConfig , & telemetryData , & commonPipelineEnvironment )
telemetryData . ErrorCode = "0"
log . Entry ( ) . Info ( "SUCCESS" )
} ,
}
addIntegrationArtifactGetMplStatusFlags ( createIntegrationArtifactGetMplStatusCmd , & stepConfig )
return createIntegrationArtifactGetMplStatusCmd
}
func addIntegrationArtifactGetMplStatusFlags ( cmd * cobra . Command , stepConfig * integrationArtifactGetMplStatusOptions ) {
2021-07-01 10:07:57 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . APIServiceKey , "apiServiceKey" , os . Getenv ( "PIPER_apiServiceKey" ) , "Service key JSON string to access the Process Integration Runtime service instance of plan 'api'" )
2021-02-04 11:50:15 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . IntegrationFlowID , "integrationFlowId" , os . Getenv ( "PIPER_integrationFlowId" ) , "Specifies the ID of the Integration Flow artifact" )
2021-06-28 10:50:33 +02:00
cmd . MarkFlagRequired ( "apiServiceKey" )
2021-02-04 11:50:15 +02:00
cmd . MarkFlagRequired ( "integrationFlowId" )
}
// retrieve step metadata
func integrationArtifactGetMplStatusMetadata ( ) config . StepData {
var theMetaData = config . StepData {
Metadata : config . StepMetadata {
Name : "integrationArtifactGetMplStatus" ,
Aliases : [ ] config . Alias { } ,
Description : "Get the MPL status of an integration flow" ,
} ,
Spec : config . StepSpec {
Inputs : config . StepInputs {
2021-06-16 08:43:30 +02:00
Secrets : [ ] config . StepSecrets {
2021-07-01 10:07:57 +02:00
{ Name : "cpiApiServiceKeyCredentialsId" , Description : "Jenkins secret text credential ID containing the service key to the Process Integration Runtime service instance of plan 'api'" , Type : "jenkins" } ,
2021-06-16 08:43:30 +02:00
} ,
2021-02-04 11:50:15 +02:00
Parameters : [ ] config . StepParameters {
{
2021-06-28 10:50:33 +02:00
Name : "apiServiceKey" ,
2021-02-04 11:50:15 +02:00
ResourceRef : [ ] config . ResourceReference {
{
2021-06-28 16:57:37 +02:00
Name : "cpiApiServiceKeyCredentialsId" ,
Param : "apiServiceKey" ,
2021-02-04 11:50:15 +02:00
Type : "secret" ,
} ,
} ,
2021-06-28 10:50:33 +02:00
Scope : [ ] string { "PARAMETERS" } ,
2021-02-04 11:50:15 +02:00
Type : "string" ,
Mandatory : true ,
Aliases : [ ] config . Alias { } ,
2021-06-28 10:50:33 +02:00
Default : os . Getenv ( "PIPER_apiServiceKey" ) ,
2021-02-04 11:50:15 +02:00
} ,
{
Name : "integrationFlowId" ,
ResourceRef : [ ] config . ResourceReference { } ,
2021-06-29 10:09:18 +02:00
Scope : [ ] string { "PARAMETERS" , "GENERAL" , "STAGES" , "STEPS" } ,
2021-02-04 11:50:15 +02:00
Type : "string" ,
Mandatory : true ,
Aliases : [ ] config . Alias { } ,
2021-06-16 08:43:30 +02:00
Default : os . Getenv ( "PIPER_integrationFlowId" ) ,
2021-02-04 11:50:15 +02:00
} ,
} ,
} ,
Outputs : config . StepOutputs {
Resources : [ ] config . StepResources {
{
Name : "commonPipelineEnvironment" ,
Type : "piperEnvironment" ,
Parameters : [ ] map [ string ] interface { } {
2021-08-04 16:42:25 +02:00
{ "Name" : "custom/integrationFlowMplStatus" } ,
{ "Name" : "custom/integrationFlowMplError" } ,
2021-02-04 11:50:15 +02:00
} ,
} ,
} ,
} ,
} ,
}
return theMetaData
}