Skip to content

Commit f8e8865

Browse files
authored
Add ListPitInfo::getKeepAlive() getter (#14495)
Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
1 parent f5dbbb0 commit f8e8865

File tree

6 files changed

+29
-11
lines changed

6 files changed

+29
-11
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
4040
- Fixed rest-high-level client searchTemplate & mtermVectors endpoints to have a leading slash ([#14465](https://github.com/opensearch-project/OpenSearch/pull/14465))
4141
- Write shard level metadata blob when snapshotting searchable snapshot indexes ([#13190](https://github.com/opensearch-project/OpenSearch/pull/13190))
4242
- Fix aggs result of NestedAggregator with sub NestedAggregator ([#13324](https://github.com/opensearch-project/OpenSearch/pull/13324))
43+
- Add ListPitInfo::getKeepAlive() getter ([#14495](https://github.com/opensearch-project/OpenSearch/pull/14495))
4344

4445
### Security
4546

server/src/internalClusterTest/java/org/opensearch/indices/replication/SegmentReplicationIT.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1405,7 +1405,7 @@ public void testPitCreatedOnReplica() throws Exception {
14051405
.setPointInTime(new PointInTimeBuilder(pitResponse.getId()).setKeepAlive(TimeValue.timeValueDays(1)))
14061406
.setRequestCache(false)
14071407
.get();
1408-
PitTestsUtil.assertUsingGetAllPits(client(replica), pitResponse.getId(), pitResponse.getCreationTime());
1408+
PitTestsUtil.assertUsingGetAllPits(client(replica), pitResponse.getId(), pitResponse.getCreationTime(), TimeValue.timeValueDays(1));
14091409
assertSegments(false, INDEX_NAME, 1, client(replica), pitResponse.getId());
14101410

14111411
List<String> currentFiles = List.of(replicaShard.store().directory().listAll());

server/src/internalClusterTest/java/org/opensearch/search/pit/PitMultiNodeIT.java

+13-3
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public void testPit() throws Exception {
104104
assertEquals(2, searchResponse.getSuccessfulShards());
105105
assertEquals(2, searchResponse.getTotalShards());
106106
validatePitStats("index", 2, 2);
107-
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime());
107+
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime(), TimeValue.timeValueDays(1));
108108
assertSegments(false, client(), pitResponse.getId());
109109
}
110110

@@ -131,7 +131,12 @@ public void testCreatePitWhileNodeDropWithAllowPartialCreationTrue() throws Exce
131131
public Settings onNodeStopped(String nodeName) throws Exception {
132132
ActionFuture<CreatePitResponse> execute = client().execute(CreatePitAction.INSTANCE, request);
133133
CreatePitResponse pitResponse = execute.get();
134-
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime());
134+
PitTestsUtil.assertUsingGetAllPits(
135+
client(),
136+
pitResponse.getId(),
137+
pitResponse.getCreationTime(),
138+
TimeValue.timeValueDays(1)
139+
);
135140
assertSegments(false, "index", 1, client(), pitResponse.getId());
136141
assertEquals(1, pitResponse.getSuccessfulShards());
137142
assertEquals(2, pitResponse.getTotalShards());
@@ -164,7 +169,12 @@ public Settings onNodeStopped(String nodeName) throws Exception {
164169
assertEquals(0, searchResponse.getSkippedShards());
165170
assertEquals(2, searchResponse.getTotalShards());
166171
validatePitStats("index", 1, 1);
167-
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime());
172+
PitTestsUtil.assertUsingGetAllPits(
173+
client(),
174+
pitResponse.getId(),
175+
pitResponse.getCreationTime(),
176+
TimeValue.timeValueDays(1)
177+
);
168178
return super.onNodeStopped(nodeName);
169179
}
170180
});

server/src/main/java/org/opensearch/action/search/ListPitInfo.java

+4
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ public long getCreationTime() {
5353
return creationTime;
5454
}
5555

56+
public long getKeepAlive() {
57+
return keepAlive;
58+
}
59+
5660
@Override
5761
public void writeTo(StreamOutput out) throws IOException {
5862
out.writeString(pitId);

server/src/test/java/org/opensearch/action/search/PitTestsUtil.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.opensearch.client.Client;
1818
import org.opensearch.cluster.node.DiscoveryNode;
1919
import org.opensearch.common.action.ActionFuture;
20+
import org.opensearch.common.unit.TimeValue;
2021
import org.opensearch.common.util.concurrent.AtomicArray;
2122
import org.opensearch.core.index.shard.ShardId;
2223
import org.opensearch.index.query.IdsQueryBuilder;
@@ -97,7 +98,8 @@ public static String getPitId() {
9798
return SearchContextId.encode(array.asList(), aliasFilters, version);
9899
}
99100

100-
public static void assertUsingGetAllPits(Client client, String id, long creationTime) throws ExecutionException, InterruptedException {
101+
public static void assertUsingGetAllPits(Client client, String id, long creationTime, TimeValue keepAlive) throws ExecutionException,
102+
InterruptedException {
101103
final ClusterStateRequest clusterStateRequest = new ClusterStateRequest();
102104
clusterStateRequest.local(false);
103105
clusterStateRequest.clear().nodes(true).routingTable(true).indices("*");
@@ -113,6 +115,7 @@ public static void assertUsingGetAllPits(Client client, String id, long creation
113115
GetAllPitNodesResponse getPitResponse = execute1.get();
114116
assertTrue(getPitResponse.getPitInfos().get(0).getPitId().contains(id));
115117
Assert.assertEquals(getPitResponse.getPitInfos().get(0).getCreationTime(), creationTime);
118+
Assert.assertEquals(getPitResponse.getPitInfos().get(0).getKeepAlive(), keepAlive.getMillis());
116119
}
117120

118121
public static void assertGetAllPitsEmpty(Client client) throws ExecutionException, InterruptedException {

server/src/test/java/org/opensearch/search/CreatePitSingleNodeTests.java

+6-6
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public void testCreatePITSuccess() throws ExecutionException, InterruptedExcepti
7676
request.setIndices(new String[] { "index" });
7777
ActionFuture<CreatePitResponse> execute = client().execute(CreatePitAction.INSTANCE, request);
7878
CreatePitResponse pitResponse = execute.get();
79-
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime());
79+
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime(), TimeValue.timeValueDays(1));
8080
assertSegments(false, client(), pitResponse.getId());
8181
client().prepareIndex("index").setId("2").setSource("field", "value").setRefreshPolicy(IMMEDIATE).get();
8282
SearchResponse searchResponse = client().prepareSearch("index")
@@ -106,7 +106,7 @@ public void testCreatePITWithMultipleIndicesSuccess() throws ExecutionException,
106106

107107
ActionFuture<CreatePitResponse> execute = client().execute(CreatePitAction.INSTANCE, request);
108108
CreatePitResponse response = execute.get();
109-
PitTestsUtil.assertUsingGetAllPits(client(), response.getId(), response.getCreationTime());
109+
PitTestsUtil.assertUsingGetAllPits(client(), response.getId(), response.getCreationTime(), TimeValue.timeValueDays(1));
110110
assertSegments(false, client(), response.getId());
111111
assertEquals(4, response.getSuccessfulShards());
112112
assertEquals(4, service.getActiveContexts());
@@ -127,7 +127,7 @@ public void testCreatePITWithShardReplicasSuccess() throws ExecutionException, I
127127
request.setIndices(new String[] { "index" });
128128
ActionFuture<CreatePitResponse> execute = client().execute(CreatePitAction.INSTANCE, request);
129129
CreatePitResponse pitResponse = execute.get();
130-
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime());
130+
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime(), TimeValue.timeValueDays(1));
131131
assertSegments(false, client(), pitResponse.getId());
132132
client().prepareIndex("index").setId("2").setSource("field", "value").setRefreshPolicy(IMMEDIATE).get();
133133
SearchResponse searchResponse = client().prepareSearch("index")
@@ -229,7 +229,7 @@ public void testPitSearchOnCloseIndex() throws ExecutionException, InterruptedEx
229229
request.setIndices(new String[] { "index" });
230230
ActionFuture<CreatePitResponse> execute = client().execute(CreatePitAction.INSTANCE, request);
231231
CreatePitResponse pitResponse = execute.get();
232-
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime());
232+
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime(), TimeValue.timeValueDays(1));
233233
assertSegments(false, client(), pitResponse.getId());
234234
SearchService service = getInstanceFromNode(SearchService.class);
235235
assertEquals(2, service.getActiveContexts());
@@ -412,7 +412,7 @@ public void testPitAfterUpdateIndex() throws Exception {
412412
request.setIndices(new String[] { "test" });
413413
ActionFuture<CreatePitResponse> execute = client().execute(CreatePitAction.INSTANCE, request);
414414
CreatePitResponse pitResponse = execute.get();
415-
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime());
415+
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime(), TimeValue.timeValueMinutes(2));
416416
SearchService service = getInstanceFromNode(SearchService.class);
417417

418418
assertThat(
@@ -570,7 +570,7 @@ public void testConcurrentSearches() throws Exception {
570570
request.setIndices(new String[] { "index" });
571571
ActionFuture<CreatePitResponse> execute = client().execute(CreatePitAction.INSTANCE, request);
572572
CreatePitResponse pitResponse = execute.get();
573-
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime());
573+
PitTestsUtil.assertUsingGetAllPits(client(), pitResponse.getId(), pitResponse.getCreationTime(), TimeValue.timeValueDays(1));
574574
assertSegments(false, client(), pitResponse.getId());
575575
Thread[] threads = new Thread[5];
576576
CountDownLatch latch = new CountDownLatch(threads.length);

0 commit comments

Comments
 (0)