mirror of
https://github.com/SAP/jenkins-library.git
synced 2024-12-14 11:03:09 +02:00
82 lines
2.1 KiB
Go
82 lines
2.1 KiB
Go
|
package config
|
||
|
|
||
|
// ReportingParams holds reporting parameters
|
||
|
type ReportingParams struct {
|
||
|
Parameters []StepParameters
|
||
|
}
|
||
|
|
||
|
// ReportingParameters is a global variable with values of reporting parameters
|
||
|
var ReportingParameters = ReportingParams{
|
||
|
Parameters: []StepParameters{
|
||
|
{
|
||
|
Name: "gcpJsonKeyFilePath",
|
||
|
Aliases: []Alias{{Name: "jsonKeyFilePath"}},
|
||
|
ResourceRef: []ResourceReference{
|
||
|
{
|
||
|
Name: "gcpFileVaultSecretName",
|
||
|
Type: "vaultSecretFile",
|
||
|
Default: "gcp",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
Name: "gcsFolderPath",
|
||
|
ResourceRef: []ResourceReference{
|
||
|
{
|
||
|
Name: "commonPipelineEnvironment",
|
||
|
Param: "custom/gcsFolderPath",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
Name: "gcsBucketId",
|
||
|
Aliases: []Alias{{Name: "pipelineId"}},
|
||
|
},
|
||
|
{
|
||
|
Name: "gcsSubFolder",
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
// GetResourceParameters retrieves reporting parameters from a named pipeline resource with a defined path
|
||
|
func (r ReportingParams) GetResourceParameters(path, name string) map[string]interface{} {
|
||
|
resourceParams := map[string]interface{}{}
|
||
|
|
||
|
for _, param := range r.Parameters {
|
||
|
for _, res := range param.ResourceRef {
|
||
|
if res.Name == name {
|
||
|
if val := getParameterValue(path, res, param); val != nil {
|
||
|
resourceParams[param.Name] = val
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return resourceParams
|
||
|
}
|
||
|
|
||
|
func (r ReportingParams) getStepFilters() StepFilters {
|
||
|
var filters StepFilters
|
||
|
reportingFilter := r.getReportingFilter()
|
||
|
filters.All = append(filters.All, reportingFilter...)
|
||
|
filters.General = append(filters.General, reportingFilter...)
|
||
|
filters.Steps = append(filters.Steps, reportingFilter...)
|
||
|
filters.Stages = append(filters.Stages, reportingFilter...)
|
||
|
return filters
|
||
|
}
|
||
|
|
||
|
func (r ReportingParams) getReportingFilter() []string {
|
||
|
var reportingFilter []string
|
||
|
for _, param := range r.Parameters {
|
||
|
reportingFilter = append(reportingFilter, param.Name)
|
||
|
}
|
||
|
reportingFilter = append(reportingFilter, getFilterForResourceReferences(r.Parameters)...)
|
||
|
return reportingFilter
|
||
|
}
|
||
|
|
||
|
func (s *StepConfig) mixinReportingConfig(configs ...map[string]interface{}) {
|
||
|
reportingFilter := ReportingParameters.getReportingFilter()
|
||
|
for _, config := range configs {
|
||
|
s.mixIn(config, reportingFilter)
|
||
|
}
|
||
|
}
|