public static Answer failureAnswer(String message, @Nullable Question question) { Answer answer = new Answer(); answer.setQuestion(question); answer.setStatus(AnswerStatus.FAILURE); answer.addAnswerElement(new StringAnswerElement(message)); return answer; }
Answer serializeVendorConfigs(Path testRigPath, Path outputPath) { Answer answer = new Answer(); boolean configsFound = false;
@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 answer = new Answer(); answer.setStatus(rawAnswer.getStatus()); answer.addAnswerElement(processAnswerTable2(rawTable, options));
private Answer serializeEnvironmentBgpTables(Path inputPath, Path outputPath) { Answer answer = new Answer(); ParseEnvironmentBgpTablesAnswerElement answerElement = new ParseEnvironmentBgpTablesAnswerElement(); answerElement.setVersion(Version.getVersion()); answer.addAnswerElement(answerElement); SortedMap<String, BgpAdvertisementsByVrf> bgpTables = getEnvironmentBgpTables(inputPath, answerElement); serializeEnvironmentBgpTables(bgpTables, outputPath); serializeObject(answerElement, _testrigSettings.getParseEnvironmentBgpTablesAnswerPath()); return answer; }
private Answer serializeEnvironmentRoutingTables(Path inputPath, Path outputPath) { Answer answer = new Answer(); ParseEnvironmentRoutingTablesAnswerElement answerElement = new ParseEnvironmentRoutingTablesAnswerElement(); answerElement.setVersion(Version.getVersion()); answer.addAnswerElement(answerElement); SortedMap<String, RoutesByVrf> routingTables = getEnvironmentRoutingTables(inputPath, answerElement); serializeEnvironmentRoutingTables(routingTables, outputPath); serializeObject(answerElement, _testrigSettings.getParseEnvironmentRoutingTablesAnswerPath()); return answer; }
@Test public void testComputeAnswerMetadataUnsuccessfulAnswer() throws IOException { Answer testAnswer = new Answer(); testAnswer.setStatus(AnswerStatus.FAILURE); assertThat( AnswerMetadataUtil.computeAnswerMetadata(testAnswer, _logger), equalTo(AnswerMetadata.forStatus(AnswerStatus.FAILURE))); }
private Answer serializeIndependentConfigs(Path vendorConfigPath) { Answer answer = new Answer(); ConvertConfigurationAnswerElement answerElement = new ConvertConfigurationAnswerElement(); answerElement.setVersion(Version.getVersion()); if (_settings.getVerboseParse()) { answer.addAnswerElement(answerElement); } Map<String, Configuration> configurations = getConfigurations(vendorConfigPath, answerElement); _storage.storeConfigurations( configurations, answerElement, _settings.getContainer(), _testrigSettings.getName()); postProcessSnapshot(configurations); return answer; }
@Test public void testProcessAnswerRowsFailure() throws IOException { String columnName = "issue"; int maxRows = 1; int rowOffset = 0; AnswerRowsOptions options = new AnswerRowsOptions( ImmutableSet.of(columnName), ImmutableList.of(), maxRows, rowOffset, ImmutableList.of(new ColumnSortOption(columnName, true)), false); Answer badInput = new Answer(); badInput.setStatus(AnswerStatus.SUCCESS); String rawAnswerStr = BatfishObjectMapper.writePrettyString(badInput); Answer processedAnswer = _manager.processAnswerRows(rawAnswerStr, options); assertThat(processedAnswer.getStatus(), equalTo(AnswerStatus.FAILURE)); }
@Test public void testProcessAnswerRowsStale() throws IOException { String columnName = "issue"; int maxRows = 1; int rowOffset = 0; AnswerRowsOptions options = new AnswerRowsOptions( ImmutableSet.of(columnName), ImmutableList.of(), maxRows, rowOffset, ImmutableList.of(new ColumnSortOption(columnName, true)), false); Answer badInput = new Answer(); badInput.setStatus(AnswerStatus.STALE); String rawAnswerStr = BatfishObjectMapper.writePrettyString(badInput); Answer processedAnswer = _manager.processAnswerRows(rawAnswerStr, options); assertThat(processedAnswer.getStatus(), equalTo(AnswerStatus.STALE)); }
ImmutableList.of(new ColumnMetadata(columnName, Schema.ISSUE, "foobar")))); table.addRow(Row.of(columnName, new Issue("blah", 5, new Issue.Type("m", "n")))); Answer answer = new Answer(); answer.addAnswerElement(table); answer.setStatus(AnswerStatus.SUCCESS);
@Test public void testProcessAnswerRows2() throws IOException { String columnName = "issue"; int maxRows = 1; int rowOffset = 0; TableAnswerElement table = new TableAnswerElement( new TableMetadata( ImmutableList.of(new ColumnMetadata(columnName, Schema.ISSUE, "foobar")))); table.addRow(Row.of(columnName, new Issue("blah", 5, new Issue.Type("m", "n")))); Answer answer = new Answer(); answer.addAnswerElement(table); answer.setStatus(AnswerStatus.SUCCESS); String answerStr = BatfishObjectMapper.writePrettyString(answer); AnswerRowsOptions options = new AnswerRowsOptions( ImmutableSet.of(columnName), ImmutableList.of(), maxRows, rowOffset, ImmutableList.of(new ColumnSortOption(columnName, true)), false); List<Row> processedRows = ((TableView) _manager.processAnswerRows2(answerStr, options).getAnswerElements().get(0)) .getInnerRows(); assertThat(processedRows, equalTo(table.getRowsList())); }
@Test public void testProcessAnswerRows() throws IOException { String columnName = "issue"; int maxRows = 1; int rowOffset = 0; TableAnswerElement table = new TableAnswerElement( new TableMetadata( ImmutableList.of(new ColumnMetadata(columnName, Schema.ISSUE, "foobar")))); table.addRow(Row.of(columnName, new Issue("blah", 5, new Issue.Type("m", "n")))); Answer answer = new Answer(); answer.addAnswerElement(table); answer.setStatus(AnswerStatus.SUCCESS); String answerStr = BatfishObjectMapper.writePrettyString(answer); AnswerRowsOptions options = new AnswerRowsOptions( ImmutableSet.of(columnName), ImmutableList.of(), maxRows, rowOffset, ImmutableList.of(new ColumnSortOption(columnName, true)), false); List<Row> processedRows = ((TableAnswerElement) _manager.processAnswerRows(answerStr, options).getAnswerElements().get(0)) .getRowsList(); assertThat(processedRows, equalTo(table.getRowsList())); }
null, analysisId); Answer answer = new Answer(); answer.addAnswerElement(new TableAnswerElement(MOCK_TABLE_METADATA)); String answerStr = BatfishObjectMapper.writeString(answer);
@Test public void testComputeAnswerMetadataInapplicable() throws IOException { String columnName = "col"; List<Integer> value = ImmutableList.of(5); Answer testAnswer = new Answer(); testAnswer.addAnswerElement( new TableAnswerElement( new TableMetadata( ImmutableList.of( new ColumnMetadata(columnName, Schema.list(Schema.INTEGER), "foobar")), new DisplayHints().getTextDesc())) .addRow(Row.of(columnName, value))); testAnswer.setStatus(AnswerStatus.SUCCESS); assertThat( AnswerMetadataUtil.computeAnswerMetadata(testAnswer, _logger), equalTo( AnswerMetadata.builder() .setMetrics(Metrics.builder().setNumRows(1).build()) .setStatus(AnswerStatus.SUCCESS) .build())); }
null, null); Answer testAnswer = new Answer(); testAnswer.setStatus(AnswerStatus.SUCCESS); testAnswer.addAnswerElement(new TableAnswerElement(MOCK_TABLE_METADATA));
null, analysisId); Answer answer = new Answer(); answer.addAnswerElement(new TableAnswerElement(MOCK_TABLE_METADATA)); AnswerMetadata answerMetadata =
null, null); Answer answer = new Answer(); answer.addAnswerElement(new TableAnswerElement(MOCK_TABLE_METADATA)); AnswerMetadata answerMetadata =
null, null); Answer answer = new Answer(); answer.addAnswerElement(new TableAnswerElement(MOCK_TABLE_METADATA)); AnswerMetadata answerMetadata =
null, null); Answer answer = new Answer(); answer.addAnswerElement(new TableAnswerElement(MOCK_TABLE_METADATA)); AnswerMetadata answerMetadata =