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