Skip to content

Commit 2047f7d

Browse files
committed
refactor(workers): Make a resolve function suspending
Make the `resolve` function of `EnvironmentConfigLoader` suspending to avoid a `runBlocking` call. Signed-off-by: Martin Nonnenmacher <[email protected]>
1 parent 19bf3c1 commit 2047f7d

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

workers/common/src/main/kotlin/common/env/config/EnvironmentConfigLoader.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ class EnvironmentConfigLoader(
158158
* environment configuration for the repository is not read from the source code, but passed when triggering the
159159
* run.
160160
*/
161-
fun resolve(config: EnvironmentConfig, hierarchy: Hierarchy): ResolvedEnvironmentConfig {
161+
suspend fun resolve(config: EnvironmentConfig, hierarchy: Hierarchy): ResolvedEnvironmentConfig {
162162
val repositoryConfig = RepositoryEnvironmentConfig(
163163
infrastructureServices = config.infrastructureServices.map { it.toRepositoryService() },
164164
environmentDefinitions = config.environmentDefinitions,
@@ -173,7 +173,7 @@ class EnvironmentConfigLoader(
173173
* Resolve the declarations in the given [config] using the provided [hierarchy]. Handle references that cannot be
174174
* resolved according to the `strict` flag in the configuration.
175175
*/
176-
private fun resolveRepositoryEnvironmentConfig(
176+
private suspend fun resolveRepositoryEnvironmentConfig(
177177
config: RepositoryEnvironmentConfig,
178178
hierarchy: Hierarchy
179179
): ResolvedEnvironmentConfig {
@@ -216,7 +216,7 @@ class EnvironmentConfigLoader(
216216
* repository. Return a [Map] with the resolved secrets keyed by their names. Depending on the strict flag, fail
217217
* if secrets cannot be resolved.
218218
*/
219-
private fun resolveSecrets(config: RepositoryEnvironmentConfig, hierarchy: Hierarchy): Map<String, Secret> {
219+
private suspend fun resolveSecrets(config: RepositoryEnvironmentConfig, hierarchy: Hierarchy): Map<String, Secret> {
220220
val allSecretsNames = mutableSetOf<String>()
221221
allSecretsNames += config.environmentVariables.mapNotNull { it.secretName }
222222
config.infrastructureServices.forEach { service ->
@@ -225,7 +225,7 @@ class EnvironmentConfigLoader(
225225
}
226226

227227
val resolvedSecrets = if (allSecretsNames.isNotEmpty()) {
228-
runBlocking { secretService.listForHierarchy(hierarchy) }.associateBy(Secret::name)
228+
secretService.listForHierarchy(hierarchy).associateBy(Secret::name)
229229
} else {
230230
emptyMap()
231231
}

workers/common/src/test/kotlin/common/env/EnvironmentServiceTest.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ class EnvironmentServiceTest : WordSpec({
115115

116116
val config = mockk<EnvironmentConfig>()
117117
val configLoader = mockk<EnvironmentConfigLoader> {
118-
every { resolve(config, any()) } returns ResolvedEnvironmentConfig(services)
118+
coEvery { resolve(config, any()) } returns ResolvedEnvironmentConfig(services)
119119
}
120120

121121
val service = mockk<InfrastructureServiceService> {
@@ -146,7 +146,7 @@ class EnvironmentServiceTest : WordSpec({
146146

147147
val config = mockk<EnvironmentConfig>()
148148
val configLoader = mockk<EnvironmentConfigLoader> {
149-
every {
149+
coEvery {
150150
resolve(config, any())
151151
} returns ResolvedEnvironmentConfig(listOf(configService, overrideService))
152152
}
@@ -878,7 +878,7 @@ private fun mockConfigLoader(config: ResolvedEnvironmentConfig): EnvironmentConf
878878

879879
return mockk<EnvironmentConfigLoader> {
880880
every { resolveAndParse(repositoryFolder) } returns envConfig
881-
every { resolve(any(), repositoryHierarchy) } returns config
881+
coEvery { resolve(any(), repositoryHierarchy) } returns config
882882
}
883883
}
884884

@@ -897,7 +897,7 @@ private fun mockConfigLoader(
897897

898898
return mockk {
899899
every { resolveAndParse(repositoryFolder) } returns mockConfig
900-
every { resolve(envConfig, repositoryHierarchy) } returns resultConfig
900+
coEvery { resolve(envConfig, repositoryHierarchy) } returns resultConfig
901901
}
902902
}
903903

workers/common/src/test/kotlin/common/env/config/EnvironmentConfigLoaderTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ private fun TestConfiguration.parseConfig(name: String, helper: TestHelper): Env
467467
/**
468468
* Resolve the test configuration using the given [helper].
469469
*/
470-
private fun EnvironmentConfig.resolve(helper: TestHelper): ResolvedEnvironmentConfig =
470+
private suspend fun EnvironmentConfig.resolve(helper: TestHelper): ResolvedEnvironmentConfig =
471471
helper.loader().resolve(this, hierarchy)
472472

473473
/**

0 commit comments

Comments
 (0)