From ced2f1866cea580d43d469b44990e49231dbf15a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Henning?= <soeren.henning@email.uni-kiel.de>
Date: Sat, 3 Dec 2022 16:17:49 +0100
Subject: [PATCH] Clean up code

---
 .../DataVolumeLoadGeneratorReplicaPatcher.kt   | 18 +++++++++---------
 .../kubernetes/patcher/ImagePatcher.kt         | 10 +---------
 .../kubernetes/patcher/NodeSelectorPatcher.kt  |  5 +----
 .../kubernetes/patcher/PatchHandler.kt         |  2 +-
 .../kubernetes/patcher/SchedulerNamePatcher.kt |  1 -
 .../patcher/ServiceSelectorPatcher.kt          |  4 +---
 .../kubernetes/patcher/TemplateLabelPatcher.kt |  4 +---
 .../patcher/VolumesConfigMapPatcher.kt         |  3 +--
 8 files changed, 15 insertions(+), 32 deletions(-)

diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/DataVolumeLoadGeneratorReplicaPatcher.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/DataVolumeLoadGeneratorReplicaPatcher.kt
index 2979d0626..fce3de2b9 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/DataVolumeLoadGeneratorReplicaPatcher.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/DataVolumeLoadGeneratorReplicaPatcher.kt
@@ -16,22 +16,22 @@ import io.fabric8.kubernetes.api.model.HasMetadata
  */
 class DataVolumeLoadGeneratorReplicaPatcher(
     private val maxVolume: Int,
-    private val container: String,
-    private val variableName: String
-) : Patcher {
+    val container: String,
+    val variableName: String
+) : AbstractPatcher() {
 
-    override fun patch(resources: List<HasMetadata>, value: String) : List<HasMetadata> {
-        return resources.flatMap { patchSingeResource(it, value)}
-    }
+    private val envVarPatcher = EnvVarPatcher(container, variableName)
+    private val replicaPatcher = ReplicaPatcher()
 
-    private fun patchSingeResource(k8sResource: HasMetadata, value: String): List<HasMetadata> {
+    override fun patchSingleResource(resource: HasMetadata, value: String): HasMetadata {
         // calculate number of load generator instances and load per instance
         val load = Integer.parseInt(value)
         val loadGenInstances = (load + maxVolume - 1) / maxVolume
         val loadPerInstance = load / loadGenInstances
 
         // Patch instance values and load value of generators
-        val resourceList = ReplicaPatcher().patch(listOf(k8sResource), loadGenInstances.toString())
-        return EnvVarPatcher(this.container, this.variableName).patch(resourceList, loadPerInstance.toString())
+        return this.envVarPatcher.patchSingleResource(
+            replicaPatcher.patchSingleResource(resource, loadGenInstances.toString()),
+            loadPerInstance.toString())
     }
 }
diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ImagePatcher.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ImagePatcher.kt
index 7f5441650..c847f99d2 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ImagePatcher.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ImagePatcher.kt
@@ -10,15 +10,7 @@ import io.fabric8.kubernetes.client.utils.Serialization
  *
  * @param container Container to be patched.
  */
-class ImagePatcher(
-    private val container: String) :
-    AbstractPatcher() {
-
-    override fun patch(resources: List<HasMetadata>, value: String) : List<HasMetadata> {
-        return resources
-            .map { Serialization.clone(it) }
-            .map { patchSingleResource(it, value as kotlin.String) }
-    }
+class ImagePatcher(private val container: String) : AbstractPatcher() {
 
     override fun patchSingleResource(resource: HasMetadata, value: String): HasMetadata {
         if (resource is Deployment) {
diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/NodeSelectorPatcher.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/NodeSelectorPatcher.kt
index c3b5ba1a0..0ffda7d55 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/NodeSelectorPatcher.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/NodeSelectorPatcher.kt
@@ -8,10 +8,7 @@ import io.fabric8.kubernetes.api.model.apps.Deployment
  *
  * @param variableName The `label-key` of the node for which the `label-value` is to be patched.
  */
-class NodeSelectorPatcher(
-    private val variableName: String) :
-    AbstractPatcher() {
-
+class NodeSelectorPatcher(private val variableName: String) : AbstractPatcher() {
 
     override fun patchSingleResource(resource: HasMetadata, value: String): HasMetadata {
         if (resource is Deployment) {
diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/PatchHandler.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/PatchHandler.kt
index 92b1e52ba..9740952d8 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/PatchHandler.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/PatchHandler.kt
@@ -5,7 +5,7 @@ class PatchHandler {
     companion object {
         private fun getResourcesToPatch(resources: Map<String, List<HasMetadata>>, patcherDefinition: PatcherDefinition): List<HasMetadata> {
             return resources[patcherDefinition.resource]
-                ?: throw InvalidPatcherConfigurationException("Could not find resource ${patcherDefinition.resource}")
+                ?: throw InvalidPatcherConfigurationException("Could not find resource ${patcherDefinition.resource}.")
 
         }
         fun patchResource(
diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/SchedulerNamePatcher.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/SchedulerNamePatcher.kt
index c5ac16cdf..3c6f4be19 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/SchedulerNamePatcher.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/SchedulerNamePatcher.kt
@@ -6,7 +6,6 @@ import io.fabric8.kubernetes.api.model.apps.Deployment
 /**
  * The Scheduler name [Patcher] make it possible to set the scheduler which should
  * be used to deploy the given deployment.
- * @param k8sResource Kubernetes resource to be patched.
  */
 class SchedulerNamePatcher : AbstractPatcher() {
 
diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ServiceSelectorPatcher.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ServiceSelectorPatcher.kt
index b38ae4108..58ccdea24 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ServiceSelectorPatcher.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/ServiceSelectorPatcher.kt
@@ -3,9 +3,7 @@ package rocks.theodolite.kubernetes.patcher
 import io.fabric8.kubernetes.api.model.HasMetadata
 import io.fabric8.kubernetes.api.model.Service
 
-class ServiceSelectorPatcher(
-    private var variableName: String
-    ) : AbstractPatcher() {
+class ServiceSelectorPatcher(private var variableName: String) : AbstractPatcher() {
 
     override fun patchSingleResource(resource: HasMetadata, value: String): HasMetadata {
         if (resource is Service) {
diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/TemplateLabelPatcher.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/TemplateLabelPatcher.kt
index e1c1bc3a1..04cbb8e2b 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/TemplateLabelPatcher.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/TemplateLabelPatcher.kt
@@ -9,9 +9,7 @@ import io.fabric8.kubernetes.api.model.apps.StatefulSet
  *
  * @property variableName The label which should be set
  */
-class TemplateLabelPatcher(
-    val variableName: String) :
-    AbstractPatcher() {
+class TemplateLabelPatcher(val variableName: String) : AbstractPatcher() {
 
     override fun patchSingleResource(resource: HasMetadata, value: String): HasMetadata {
         when (resource) {
diff --git a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/VolumesConfigMapPatcher.kt b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/VolumesConfigMapPatcher.kt
index 54a459a19..5dfa2cc17 100644
--- a/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/VolumesConfigMapPatcher.kt
+++ b/theodolite/src/main/kotlin/rocks/theodolite/kubernetes/patcher/VolumesConfigMapPatcher.kt
@@ -4,8 +4,7 @@ import io.fabric8.kubernetes.api.model.HasMetadata
 import io.fabric8.kubernetes.api.model.apps.Deployment
 import io.fabric8.kubernetes.api.model.apps.StatefulSet
 
-class VolumesConfigMapPatcher(private var volumeName: String
-) : AbstractPatcher() {
+class VolumesConfigMapPatcher(private var volumeName: String) : AbstractPatcher() {
 
     override fun patchSingleResource(resource: HasMetadata, value: String): HasMetadata {
         if (resource is Deployment) {
-- 
GitLab