Skip to content
Snippets Groups Projects

Enhance exception handling of ActionCommands

3 files
+ 43
18
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -4,9 +4,12 @@ import com.fasterxml.jackson.annotation.JsonInclude
@@ -4,9 +4,12 @@ import com.fasterxml.jackson.annotation.JsonInclude
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
import io.fabric8.kubernetes.client.NamespacedKubernetesClient
import io.fabric8.kubernetes.client.NamespacedKubernetesClient
import io.quarkus.runtime.annotations.RegisterForReflection
import io.quarkus.runtime.annotations.RegisterForReflection
 
import mu.KotlinLogging
import theodolite.util.ActionCommandFailedException
import theodolite.util.ActionCommandFailedException
import theodolite.util.Configuration
import theodolite.util.Configuration
 
private val logger = KotlinLogging.logger {}
 
@JsonDeserialize
@JsonDeserialize
@RegisterForReflection
@RegisterForReflection
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonInclude(JsonInclude.Include.NON_NULL)
@@ -16,15 +19,22 @@ class Action {
@@ -16,15 +19,22 @@ class Action {
lateinit var exec: Command
lateinit var exec: Command
fun exec(client: NamespacedKubernetesClient) {
fun exec(client: NamespacedKubernetesClient) {
val exitCode = ActionCommand(client = client)
try{
.exec(
val exitCode = ActionCommand(client = client)
matchLabels = selector.pod.matchLabels,
.exec(
container = selector.container,
matchLabels = selector.pod.matchLabels,
timeout = exec.timeoutSeconds,
container = selector.container,
command = exec.command
timeout = exec.timeoutSeconds,
)
command = exec.command
 
)
if(exitCode != 0){
if(exitCode != 0){
throw ActionCommandFailedException("Error while executing action, finished with exit code $exitCode")
logger.info("Actions exit code was not zero instead: $exitCode")
 
logger.info("Selector: ${selector.pod.matchLabels}, container: ${selector.container}")
 
logger.info("Command: ${exec.command.joinToString(separator = " ")}")
 
}
 
}
 
catch (e: Exception){
 
logger.info { e.stackTraceToString() }
}
}
}
}
}
}
Loading