From b1dec34ab09c145975e94fa716e6d89fcee3392d Mon Sep 17 00:00:00 2001 From: Eric Zimanyi Date: Thu, 6 Jun 2019 16:27:38 -0400 Subject: [PATCH] fix(kubernetes): Improve error message on kubectl failure (#3757) If a call to kubectl fails to parse the output, we'll return a parsing failure directly to the user. Instead, return a failed job with the error message and let the caller handle the exception as it would any other failed job. --- .../clouddriver/jobs/local/JobExecutorLocal.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/jobs/local/JobExecutorLocal.java b/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/jobs/local/JobExecutorLocal.java index c117db58748..bac1970dfdf 100644 --- a/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/jobs/local/JobExecutorLocal.java +++ b/clouddriver-core/src/main/groovy/com/netflix/spinnaker/clouddriver/jobs/local/JobExecutorLocal.java @@ -87,8 +87,13 @@ private JobResult executeStreaming(JobRequest jobRequest, ReaderConsumer< DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler(); executor.execute(jobRequest.getCommandLine(), jobRequest.getEnvironment(), resultHandler); - T result = - consumer.consume(new BufferedReader(new InputStreamReader(new PipedInputStream(stdOut)))); + T result; + try { + result = + consumer.consume(new BufferedReader(new InputStreamReader(new PipedInputStream(stdOut)))); + } catch (IOException e) { + return JobResult.builder().result(JobResult.Result.FAILURE).error(e.toString()).build(); + } try { resultHandler.waitFor();