Skip to content

Commit 3981578

Browse files
committed
throw error if length of destination info split !=2
1 parent 4ec22f6 commit 3981578

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

pkg/pipeline/pipelineStageVariableParser.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,14 @@ func (impl *PluginInputVariableParserImpl) HandleCopyContainerImagePluginInputVa
9292
dockerImageTag = pluginTriggerImageSplit[len(pluginTriggerImageSplit)-1]
9393
}
9494

95-
registryRepoMapping := impl.getRegistryRepoMapping(DestinationInfo)
95+
registryRepoMapping, err := impl.getRegistryRepoMapping(DestinationInfo)
96+
if err != nil {
97+
impl.logger.Errorw("error in getting registry repo mapping", "DestinationInfo", DestinationInfo, "err", err)
98+
return nil, nil, err
99+
}
96100
registryCredentials, err = impl.getRegistryDetails(registryRepoMapping, sourceImageDockerRegistry)
97101
if err != nil {
102+
impl.logger.Errorw("error in getting registry details", "err", err)
98103
return nil, nil, err
99104
}
100105
registryDestinationImageMap = impl.getRegistryDestinationImageMapping(registryRepoMapping, dockerImageTag, registryCredentials)
@@ -108,7 +113,7 @@ func (impl *PluginInputVariableParserImpl) HandleCopyContainerImagePluginInputVa
108113
return registryDestinationImageMap, registryCredentials, nil
109114
}
110115

111-
func (impl *PluginInputVariableParserImpl) getRegistryRepoMapping(destinationInfo string) map[string][]string {
116+
func (impl *PluginInputVariableParserImpl) getRegistryRepoMapping(destinationInfo string) (map[string][]string, error) {
112117
/*
113118
creating map with registry as key and list of repositories in that registry where we need to copy image
114119
destinationInfo format (each registry detail is separated by new line) :
@@ -119,6 +124,11 @@ func (impl *PluginInputVariableParserImpl) getRegistryRepoMapping(destinationInf
119124
destinationRegistryRepoDetails := strings.Split(destinationInfo, "\n")
120125
for _, detail := range destinationRegistryRepoDetails {
121126
registryRepoSplit := strings.Split(detail, "|")
127+
if len(registryRepoSplit) != 2 {
128+
impl.logger.Errorw("invalid destination info format", "destinationInfo", destinationInfo)
129+
// skipping for invalid format
130+
return destinationRegistryRepositoryMap, errors.New("invalid destination info format. Please provide it in <registry-1> | <repo1>,<repo2>")
131+
}
122132
registryName := strings.Trim(registryRepoSplit[0], EMPTY_STRING)
123133
repositoryValuesSplit := strings.Split(registryRepoSplit[1], ",")
124134
var repositories []string
@@ -128,7 +138,7 @@ func (impl *PluginInputVariableParserImpl) getRegistryRepoMapping(destinationInf
128138
}
129139
destinationRegistryRepositoryMap[registryName] = repositories
130140
}
131-
return destinationRegistryRepositoryMap
141+
return destinationRegistryRepositoryMap, nil
132142
}
133143

134144
func (impl *PluginInputVariableParserImpl) getRegistryDetails(destinationRegistryRepositoryMap map[string][]string, sourceRegistry string) (map[string]bean2.RegistryCredentials, error) {

0 commit comments

Comments
 (0)