From 79bbcb9c89135a5cf8d532f395275bf970c35985 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Henning?= <soeren.henning@email.uni-kiel.de> Date: Mon, 14 Mar 2022 19:25:25 +0100 Subject: [PATCH] Fix error when ommiting files property in ResourceSets --- .../theodolite/benchmark/ConfigMapResourceSet.kt | 8 ++++---- .../theodolite/benchmark/FileSystemResourceSet.kt | 11 +++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/theodolite/src/main/kotlin/theodolite/benchmark/ConfigMapResourceSet.kt b/theodolite/src/main/kotlin/theodolite/benchmark/ConfigMapResourceSet.kt index 2192f43a0..eea5b15cb 100644 --- a/theodolite/src/main/kotlin/theodolite/benchmark/ConfigMapResourceSet.kt +++ b/theodolite/src/main/kotlin/theodolite/benchmark/ConfigMapResourceSet.kt @@ -13,7 +13,7 @@ import java.lang.IllegalArgumentException @JsonDeserialize class ConfigMapResourceSet : ResourceSet, KubernetesResource { lateinit var name: String - lateinit var files: List<String> // load all files, iff files is not set + var files: List<String>? = null // load all files, iff files is not set override fun getResourceSet(client: NamespacedKubernetesClient): Collection<Pair<String, HasMetadata>> { var resources: Map<String, String> @@ -29,9 +29,9 @@ class ConfigMapResourceSet : ResourceSet, KubernetesResource { throw DeploymentFailedException("Cannot find or read ConfigMap with name '$name'.", e) } - if (::files.isInitialized) { - val filteredResources = resources.filter { files.contains(it.key) } - if (filteredResources.size != files.size) { + files?.run { + val filteredResources = resources.filter { this.contains(it.key) } + if (filteredResources.size != this.size) { throw DeploymentFailedException("Could not find all specified Kubernetes manifests files") } resources = filteredResources diff --git a/theodolite/src/main/kotlin/theodolite/benchmark/FileSystemResourceSet.kt b/theodolite/src/main/kotlin/theodolite/benchmark/FileSystemResourceSet.kt index cfd719719..e95a637ab 100644 --- a/theodolite/src/main/kotlin/theodolite/benchmark/FileSystemResourceSet.kt +++ b/theodolite/src/main/kotlin/theodolite/benchmark/FileSystemResourceSet.kt @@ -21,17 +21,16 @@ import kotlin.io.path.listDirectoryEntries @JsonDeserialize class FileSystemResourceSet: ResourceSet, KubernetesResource { lateinit var path: String - lateinit var files: List<String> + var files: List<String>? = null override fun getResourceSet(client: NamespacedKubernetesClient): Collection<Pair<String, HasMetadata>> { // if files is set ... - if(::files.isInitialized){ - return files + return files?.run { + return this .map { Paths.get(path, it) } .map { loadSingleResource(resource = it, client = client) } - } - - return try { + } ?: + try { Paths.get(path) .listDirectoryEntries() .filter { it.toString().endsWith(".yaml") || it.toString().endsWith(".yml") } -- GitLab