Skip to content
Snippets Groups Projects
Commit eb1e5fda authored by Lorenz Boguhn's avatar Lorenz Boguhn
Browse files

refactor TheodoliteController

parent edd72048
Branches
Tags
4 merge requests!159Re-implementation of Theodolite with Kotlin/Quarkus,!157Update Graal Image in CI pipeline,!106Introduce a Theodolite operator,!83WIP: Re-implementation of Theodolite with Kotlin/Quarkus
......@@ -10,57 +10,49 @@ import theodolite.benchmark.KubernetesBenchmark
private val logger = KotlinLogging.logger {}
class TheodoliteController(val client : NamespacedKubernetesClient,
class TheodoliteController(
val client: NamespacedKubernetesClient,
val informerBenchmarkExecution: SharedInformer<BenchmarkExecution>,
val informerBenchmarkType : SharedInformer<KubernetesBenchmark> ) {
val informerBenchmarkType: SharedInformer<KubernetesBenchmark>
) {
var execution: BenchmarkExecution? = null
var benchmarkType: KubernetesBenchmark? = null
var executor: TheodoliteExecutor? = null
var updated: Boolean = true
public fun create(){
/**
* Adds the EventHandler to kubernetes
*/
fun create() {
informerBenchmarkExecution.addEventHandler(object : ResourceEventHandler<BenchmarkExecution> {
override fun onAdd(webServer: BenchmarkExecution) {
execution = webServer
override fun onAdd(benchmarkExecution: BenchmarkExecution) {
execution = benchmarkExecution
}
override fun onUpdate(webServer: BenchmarkExecution, newWebServer: BenchmarkExecution) {
println("hello there update")
execution = newWebServer
override fun onUpdate(oldExecution: BenchmarkExecution, newExecution: BenchmarkExecution) {
execution = newExecution
updated = true
shutdown()
}
override fun onDelete(webServer: BenchmarkExecution, b: Boolean) {
println("delted")
override fun onDelete(benchmarkExecution: BenchmarkExecution, b: Boolean) {
shutdown()
}
})
informerBenchmarkType.addEventHandler(object : ResourceEventHandler<KubernetesBenchmark> {
override fun onAdd(webServer: KubernetesBenchmark) {
benchmarkType = webServer
println("hello there add")
println(webServer.name)
override fun onAdd(kubernetesBenchmark: KubernetesBenchmark) {
benchmarkType = kubernetesBenchmark
}
override fun onUpdate(webServer: KubernetesBenchmark, newWebServer: KubernetesBenchmark) {
benchmarkType = newWebServer
println("hello there update")
override fun onUpdate(oldBenchmark: KubernetesBenchmark, newBenchmark: KubernetesBenchmark) {
benchmarkType = newBenchmark
updated = true
shutdown()
}
override fun onDelete(webServer: KubernetesBenchmark, b: Boolean) {
println("delted")
println(webServer.name)
override fun onDelete(kubernetesBenchmark: KubernetesBenchmark, b: Boolean) {
shutdown()
}
})
......@@ -70,8 +62,7 @@ class TheodoliteController(val client : NamespacedKubernetesClient,
while (true) {
try {
reconcile()
}
catch (e: InterruptedException){
} catch (e: InterruptedException) {
logger.error { "$e" }
}
}
......@@ -81,8 +72,8 @@ class TheodoliteController(val client : NamespacedKubernetesClient,
private fun reconcile() {
val localExecution = this.execution
val localType = this.benchmarkType
if(localType is KubernetesBenchmark && localExecution is BenchmarkExecution && updated){
if (localType is KubernetesBenchmark && localExecution is BenchmarkExecution && updated) {
executor = TheodoliteExecutor(config = localExecution, kubernetesBenchmark = localType)
executor!!.run()
updated = false
......@@ -90,6 +81,6 @@ class TheodoliteController(val client : NamespacedKubernetesClient,
}
private fun shutdown() {
Shutdown(benchmarkExecution = execution!!, benchmark = benchmarkType!!).run()
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment