in server/src/main/kotlin/org/jetbrains/teamcity/vault/server/VaultBuildStartContextProcessor.kt [23:48]
override fun updateParameters(context: BuildStartContext) {
val build = context.build
val project = build.buildType?.project ?: return
val settingsList = try {
hashiCorpVaultConnectionResolver.getVaultConnections(project)
} catch (e: ParameterNamespaceCollisionException) {
val ns = if (e.namespace.isEmpty()) "empty ID" else "ID '${e.namespace}'"
val message = "Multiple HashiCorp Vault connections with $ns present in project '${e.projectId}'"
build.addBuildProblem(BuildProblemData.createBuildProblem("VC_${build.buildTypeId}_${e.namespace}_${e.projectId}", "VaultConnection", message))
build.stop(null, message)
return
}
// Set teamcity.vault.<namespace>.legacy.parameters.present parameter for builds where
// legacy vault references are present
settingsList.forEach { settings ->
if (!isParametersContainLegacyVaultReferences(build, settings, context.sharedParameters)) {
val ns = if (isDefault(settings.id)) "" else " ('${settings.id}' namespace)"
LOG.debug("There's no need to fetch HashiCorp Vault$ns parameter for build $build")
return@forEach
}
context.addSharedParameter(getVaultParameterName(settings.id, VaultConstants.LEGACY_REFERENCES_USED_SUFFIX), "true")
}
setWriteEngineFeatureFlag(context);
}