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