Skip to content

Commit 9307923

Browse files
authored
Error generating TIR for infra components (#1216)
* Infra components don't have deployments
1 parent f36663c commit 9307923

File tree

4 files changed

+59
-3
lines changed

4 files changed

+59
-3
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
* Do not retrieve components from Jira when using an alternate Jira project and not generating documentation ([#1211](https://github.com/opendevstack/ods-jenkins-shared-library/pull/1211))
2121

2222
### Fixed
23+
* Error generating TIR for infra components ([#1216](https://github.com/opendevstack/ods-jenkins-shared-library/pull/1216))
2324
* Use N/A if there isn't system requirements in DTR ([#1214](https://github.com/opendevstack/ods-jenkins-shared-library/pull/1214))
2425
* Remove missing tests count ([#1213](https://github.com/opendevstack/ods-jenkins-shared-library/pull/1213))
2526

src/org/ods/orchestration/usecase/LeVADocumentUseCase.groovy

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1143,7 +1143,11 @@ class LeVADocumentUseCase extends DocGenUseCase {
11431143
*/
11441144
protected static Map<String, Object> prepareDeploymentMeanInfo(Map<String, Map<String, Object>> deployments, String targetEnvironment) {
11451145
Map<String, Object> deploymentMean =
1146-
deployments.find { it.key.endsWith('-deploymentMean') }.value
1146+
deployments?.find { it.key.endsWith('-deploymentMean') }?.value
1147+
1148+
if (!deploymentMean) {
1149+
return [:]
1150+
}
11471151

11481152
if (deploymentMean.type == 'tailor') {
11491153
return formatTIRTailorDeploymentMean(deploymentMean)
@@ -1162,8 +1166,8 @@ class LeVADocumentUseCase extends DocGenUseCase {
11621166
*/
11631167
protected static Map<String, Map<String, Object>> prepareDeploymentInfo(Map<String, Map<String, Object>> deployments) {
11641168
return deployments
1165-
.findAll { ! it.key.endsWith('-deploymentMean') }
1166-
.collectEntries { String deploymentName, Map<String, Object> deployment ->
1169+
?.findAll { ! it.key.endsWith('-deploymentMean') }
1170+
?.collectEntries { String deploymentName, Map<String, Object> deployment ->
11671171
def filteredFields = deployment.findAll { k, v -> k != 'podName' }
11681172
return [(deploymentName): filteredFields]
11691173
} as Map<String, Map<String, Object>>

test/groovy/org/ods/orchestration/usecase/LeVADocumentUseCaseSpec.groovy

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1284,6 +1284,22 @@ class LeVADocumentUseCaseSpec extends SpecHelper {
12841284
true | FixtureHelper.createTIRDataTailor() | FixtureHelper.createTIRRepoTailor()
12851285
}
12861286

1287+
def "createTIR for infra component"() {
1288+
when: 'Preparing deploymentMean info for infra component'
1289+
def deploymentMeanInfo = usecase.prepareDeploymentMeanInfo(null, 'dev')
1290+
1291+
then: 'The obtained info is null or empty, but no exception is thrown'
1292+
noExceptionThrown()
1293+
!deploymentMeanInfo
1294+
1295+
when: 'Preparing deployment info for infra component'
1296+
def deploymentInfo = usecase.prepareDeploymentInfo(null)
1297+
1298+
then: 'The obtained info is null or empty, but no exception is thrown'
1299+
noExceptionThrown()
1300+
!deploymentInfo
1301+
}
1302+
12871303
def "assemble deploymentMean and deploymentInfo for TIR with helm"() {
12881304
given:
12891305
def deployments = FixtureHelper.createTIRRepoHelm().data.openshift.deployments

test/groovy/util/FixtureHelper.groovy

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -918,6 +918,41 @@ class FixtureHelper {
918918
]
919919
}
920920

921+
static Map createTIRRepoInfra() {
922+
[
923+
'include' : true,
924+
'metadata' : [
925+
'supplier' : 'IT INF IAS',
926+
'name' : 'MyLambda',
927+
'description': 'A lambda intended to run in AWS',
928+
'type' : 'ods-infra',
929+
'version' : '4.x',
930+
],
931+
'data' : [
932+
'git' : [
933+
'previousSucessfulCommit': 'b00012345bcdef',
934+
'baseTag' : '',
935+
'commit' : 'a00012345bcdef',
936+
'previousCommit' : 'b00012345bcdef',
937+
'targetTag' : '',
938+
'branch' : 'master',
939+
'url' : 'https://bitbucket-myodsproject-cd.ocp.mycompany.com/scm/myodsproject/myodsproject-mylambda.git',
940+
],
941+
'previousSucessfulCommit': 'c00012345bcdef',
942+
'documents' : [
943+
],
944+
],
945+
'doInstall' : true,
946+
'pipelineConfig': [
947+
'dependencies': [],
948+
],
949+
'defaultBranch' : 'master',
950+
'id' : 'mylambda-infra',
951+
'type' : 'ods-infra',
952+
'url' : 'https://bitbucket-myodsproject-cd.ocp.mycompany.com/scm/myodsproject/myodsproject-mylambda.git',
953+
]
954+
}
955+
921956
static Map createHelmCmdStatusMap() {
922957
[
923958
'info' : [

0 commit comments

Comments
 (0)