boolean matchesStatus(@Nullable ConfiguredSessionStatus status) { if (_status.pattern().equals(MATCH_ALL)) { return true; } return status != null && _status.matcher(status.toString()).matches(); }
static boolean matchesQuestionFilters( Row row, Set<String> nodes, Set<String> remoteNodes, BgpSessionQuestion question) { if (!matchesNodesAndType(row, nodes, remoteNodes, question)) { return false; } // Check configured session status String statusName = (String) row.get(COL_CONFIGURED_STATUS, Schema.STRING); ConfiguredSessionStatus status = statusName == null ? null : ConfiguredSessionStatus.valueOf(statusName); if (!question.matchesStatus(status)) { return false; } return true; } }
@Test public void testLimitStatus() { // Both sessions have status UNIQUE_MATCH BgpSessionCompatibilityQuestion q = new BgpSessionCompatibilityQuestion( null, null, ConfiguredSessionStatus.UNIQUE_MATCH.name(), null); Multiset<Row> rows = getQuestionResults(q); assertThat(rows, equalTo(ImmutableMultiset.of(ROW_1, ROW_2, ROW_3))); q = new BgpSessionCompatibilityQuestion( null, null, ConfiguredSessionStatus.UNKNOWN_REMOTE.name(), null); rows = getQuestionResults(q); assertThat(rows, equalTo(ImmutableMultiset.of())); }
PropertySpecifier.baseAutoComplete( query, Stream.of(ConfiguredSessionStatus.values()) .map(ConfiguredSessionStatus::name) .collect(Collectors.toSet()));
@Test public void testBgpSessionStatusAutocomplete() throws IOException { assertThat( _manager.autoComplete("network", "snapshot", Type.BGP_SESSION_STATUS, "match", 5).stream() .map(AutocompleteSuggestion::getText) .collect(Collectors.toSet()), equalTo( ImmutableSet.of( DYNAMIC_MATCH.toString(), NO_MATCH_FOUND.toString(), UNIQUE_MATCH.toString()))); }