Skip to content

Commit

Permalink
change query to find indices in range to an equal search for deflecto…
Browse files Browse the repository at this point in the history
…r indices, runtime exception if time range does not make sense, more tests
  • Loading branch information
janheise committed Feb 11, 2025
1 parent 6336615 commit 5a3f750
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -104,16 +104,20 @@ public IndexRange get(String index) throws NotFoundException {

@Override
public SortedSet<IndexRange> find(DateTime begin, DateTime end) {
if(end.isBefore(begin)) {
throw new RuntimeException("Calculation of IndexRanges error: end time (" + end + ") is earlier than begin time (" + begin + ")");
}
final var query = or(
and(
exists("start", false), // "start" has been used by the old index ranges in MongoDB
lte(IndexRange.FIELD_BEGIN, end.getMillis()),
gte(IndexRange.FIELD_END, begin.getMillis())
),
// or find current deflector indices (these have begin/end 0)
and(
exists("start", false), // "start" has been used by the old index ranges in MongoDB
lte(IndexRange.FIELD_BEGIN, 0L),
gte(IndexRange.FIELD_END, 0L)
eq(IndexRange.FIELD_BEGIN, 0L),
eq(IndexRange.FIELD_END, 0L)
)
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,24 @@ public void findReturnsIndexRangesWithinGivenRange() throws Exception {
final SortedSet<IndexRange> indexRanges = indexRangeService.find(begin, end);

assertThat(indexRanges).containsExactly(
MongoIndexRange.create(new ObjectId("55e0261a0cc6980000000008"), "graylog_deflect", new DateTime(1970, 1, 1, 0, 0, DateTimeZone.UTC), new DateTime(1970, 1, 1, 0, 0, DateTimeZone.UTC), new DateTime(2015, 1, 6, 0, 0, DateTimeZone.UTC), 42),
MongoIndexRange.create(new ObjectId("55e0261a0cc6980000000002"), "graylog_2", new DateTime(2015, 1, 2, 0, 0, DateTimeZone.UTC), new DateTime(2015, 1, 3, 0, 0, DateTimeZone.UTC), new DateTime(2015, 1, 3, 0, 0, DateTimeZone.UTC), 42),
MongoIndexRange.create(new ObjectId("55e0261a0cc6980000000003"), "graylog_3", new DateTime(2015, 1, 3, 0, 0, DateTimeZone.UTC), new DateTime(2015, 1, 4, 0, 0, DateTimeZone.UTC), new DateTime(2015, 1, 4, 0, 0, DateTimeZone.UTC), 42),
MongoIndexRange.create(new ObjectId("55e0261a0cc6980000000004"), "graylog_4", new DateTime(2015, 1, 4, 0, 0, DateTimeZone.UTC), new DateTime(2015, 1, 5, 0, 0, DateTimeZone.UTC), new DateTime(2015, 1, 5, 0, 0, DateTimeZone.UTC), 42)
MongoIndexRange.create(new ObjectId("55e0261a0cc6980000000004"), "graylog_4", new DateTime(2015, 1, 4, 0, 0, DateTimeZone.UTC), new DateTime(2015, 1, 5, 0, 0, DateTimeZone.UTC), new DateTime(2015, 1, 5, 0, 0, DateTimeZone.UTC), 42),
MongoIndexRange.create(new ObjectId("55e0261a0cc6980000000006"), "graylog_6", new DateTime(1970, 1, 1, 0, 0, DateTimeZone.UTC), new DateTime(2015, 1, 6, 0, 0, DateTimeZone.UTC), new DateTime(2015, 1, 6, 0, 0, DateTimeZone.UTC), 42)
);
}

@Test
@MongoDBFixtures("MongoIndexRangeServiceTest-distinct.json")
public void findReturnsOnlyDeflectorIndex() throws Exception {
// looking at a timerange that contains no other indices so only the deflector is returned
final DateTime begin = new DateTime(2017, 1, 1, 0, 0, DateTimeZone.UTC);
final DateTime end = new DateTime(2017, 11, 1, 0, 0, DateTimeZone.UTC);
final SortedSet<IndexRange> indexRanges = indexRangeService.find(begin, end);

assertThat(indexRanges).containsExactly(
MongoIndexRange.create(new ObjectId("55e0261a0cc6980000000008"), "graylog_deflect", new DateTime(1970, 1, 1, 0, 0, DateTimeZone.UTC), new DateTime(1970, 1, 1, 0, 0, DateTimeZone.UTC), new DateTime(2015, 1, 6, 0, 0, DateTimeZone.UTC), 42)
);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,36 @@
"begin": 1420416000000,
"end": 1420502400000,
"took_ms": 42
},
{
"_id": {
"$oid": "55e0261a0cc6980000000006"
},
"index_name": "graylog_6",
"calculated_at": 1420502400000,
"begin": 0,
"end": 1420502400000,
"took_ms": 42
},
{
"_id": {
"$oid": "55e0261a0cc6980000000007"
},
"index_name": "graylog_7",
"calculated_at": 1420502400000,
"begin": 2120502400000,
"end": 2420502400000,
"took_ms": 42
},
{
"_id": {
"$oid": "55e0261a0cc6980000000008"
},
"index_name": "graylog_deflect",
"calculated_at": 1420502400000,
"begin": 0,
"end": 0,
"took_ms": 42
}
]
}

0 comments on commit 5a3f750

Please sign in to comment.