@VisibleForTesting @Nonnull Answer processAnswerRows(String rawAnswerStr, AnswerRowsOptions options) { if (rawAnswerStr == null) { Answer answer = Answer.failureAnswer("Not found", null); answer.setStatus(AnswerStatus.NOTFOUND); return answer; } try { Answer rawAnswer = BatfishObjectMapper.mapper().readValue(rawAnswerStr, new TypeReference<Answer>() {}); // If the AnswerStatus is not SUCCESS, the answer cannot have any AnswerElements related to // actual answers (but, e.g., it might have a BatfishStackTrace). Return that as-is. if (rawAnswer.getStatus() != AnswerStatus.SUCCESS) { return rawAnswer; } TableAnswerElement rawTable = (TableAnswerElement) rawAnswer.getAnswerElements().get(0); Answer answer = new Answer(); answer.setStatus(rawAnswer.getStatus()); answer.addAnswerElement(processAnswerTable(rawTable, options)); return answer; } catch (Exception e) { _logger.errorf("Failed to convert answer string to Answer: %s", e.getMessage()); return Answer.failureAnswer(e.getMessage(), null); } }
Answer processAnswerRows2(String rawAnswerStr, AnswerRowsOptions options) { if (rawAnswerStr == null) { Answer answer = Answer.failureAnswer("Not found", null); answer.setStatus(AnswerStatus.NOTFOUND); return answer; _logger.errorf( "Failed to convert answer string to Answer: %s\n", Throwables.getStackTraceAsString(e)); return Answer.failureAnswer(e.getMessage(), null);
public @Nonnull Map<String, String> getAnalysisAnswers( String network, String snapshot, String referenceSnapshot, String analysis, Set<String> analysisQuestions) throws JsonProcessingException, FileNotFoundException { Set<String> questions = analysisQuestions.isEmpty() ? listAnalysisQuestions(network, analysis) : analysisQuestions; ImmutableSortedMap.Builder<String, String> result = ImmutableSortedMap.naturalOrder(); for (String questionName : questions) { try { result.put( questionName, getAnswer(network, snapshot, questionName, referenceSnapshot, analysis)); } catch (Exception e) { _logger.errorf( "Got exception in getAnalysisAnswers: %s\n", Throwables.getStackTraceAsString(e)); result.put( questionName, BatfishObjectMapper.mapper() .writeValueAsString(Answer.failureAnswer(e.getMessage(), null))); } } return result.build(); }
private void outputAnswer(Answer answer, boolean writeLog) { try { String answerString = BatfishObjectMapper.writePrettyString(answer) + '\n'; _logger.debug(answerString); @Nullable String logString = writeLog ? answerString : null; writeJsonAnswerWithLog(logString, answerString); } catch (Exception e) { BatfishException be = new BatfishException("Error in sending answer", e); try { Answer failureAnswer = Answer.failureAnswer(e.toString(), answer.getQuestion()); failureAnswer.addAnswerElement(be.getBatfishStackTrace()); String answerString = BatfishObjectMapper.writePrettyString(failureAnswer) + '\n'; _logger.error(answerString); @Nullable String logString = writeLog ? answerString : null; writeJsonAnswerWithLog(logString, answerString); } catch (Exception e1) { _logger.errorf( "Could not serialize failure answer. %s", Throwables.getStackTraceAsString(e1)); } throw be; } }
analysisId); if (!_storage.hasAnswerMetadata(baseAnswerId)) { Answer ans = Answer.failureAnswer("Not answered", null); ans.setStatus(AnswerStatus.NOTFOUND); return BatfishObjectMapper.writePrettyString(ans); analysis, Throwables.getStackTraceAsString(e)); Answer ans = Answer.failureAnswer(message, null); ans.setStatus(AnswerStatus.FAILURE); answer = BatfishObjectMapper.writePrettyString(ans);
batfish.setTerminatingExceptionMessage( e.getClass().getName() + ": " + e.getMessage()); answer = Answer.failureAnswer(msg, null); } catch (QuestionException e) { String stackTrace = Throwables.getStackTraceAsString(e);
BatfishObjectMapper.mapper() .writeValueAsString( Answer.failureAnswer( "Could not convert raw question text [bogus] to JSON", null)))));
_manager.getAnswer(containerName, testrigName, question3Name, null, analysisName); Answer failedAnswer = Answer.failureAnswer("Not answered", null); failedAnswer.setStatus(AnswerStatus.NOTFOUND); String failedAnswerString = BatfishObjectMapper.writePrettyString(failedAnswer);