Skip to content

Commit 1d1b790

Browse files
committed
serialise patch
1 parent e7d0d80 commit 1d1b790

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

server/src/main/java/org/elasticsearch/TransportVersions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,7 @@ static TransportVersion def(int id) {
246246
public static final TransportVersion ESQL_PER_AGGREGATE_FILTER = def(8_770_00_0);
247247
public static final TransportVersion ML_INFERENCE_ATTACH_TO_EXISTSING_DEPLOYMENT = def(8_771_00_0);
248248
public static final TransportVersion CONVERT_FAILURE_STORE_OPTIONS_TO_SELECTOR_OPTIONS_INTERNALLY = def(8_772_00_0);
249+
public static final TransportVersion INFERENCE_DONT_PERSIST_ON_READ_BACKPORT_8_16 = def(8_772_00_1);
249250

250251
/*
251252
* STOP! READ THIS FIRST! No, really,

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/inference/action/GetInferenceModelAction.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
package org.elasticsearch.xpack.core.inference.action;
99

10+
import org.elasticsearch.TransportVersion;
1011
import org.elasticsearch.TransportVersions;
1112
import org.elasticsearch.action.ActionResponse;
1213
import org.elasticsearch.action.ActionType;
@@ -36,6 +37,13 @@ public static class Request extends AcknowledgedRequest<GetInferenceModelAction.
3637

3738
private static boolean PERSIST_DEFAULT_CONFIGS = true;
3839

40+
public static boolean shouldReadPersistDefault(TransportVersion transportVersion) {
41+
// This constant is defined on future branches but we need to know about it here
42+
final TransportVersion INFERENCE_DONT_PERSIST_ON_READ = new TransportVersion(8_776_00_0);
43+
return transportVersion.onOrAfter(INFERENCE_DONT_PERSIST_ON_READ) ||
44+
transportVersion.isPatchFrom(TransportVersions.INFERENCE_DONT_PERSIST_ON_READ_BACKPORT_8_16);
45+
}
46+
3947
private final String inferenceEntityId;
4048
private final TaskType taskType;
4149
// Default endpoint configurations are persisted on first read.
@@ -62,12 +70,11 @@ public Request(StreamInput in) throws IOException {
6270
super(in);
6371
this.inferenceEntityId = in.readString();
6472
this.taskType = TaskType.fromStream(in);
65-
if (in.getTransportVersion().onOrAfter(TransportVersions.INFERENCE_DONT_PERSIST_ON_READ)) {
73+
if (shouldReadPersistDefault(in.getTransportVersion())) {
6674
this.persistDefaultConfig = in.readBoolean();
6775
} else {
6876
this.persistDefaultConfig = PERSIST_DEFAULT_CONFIGS;
6977
}
70-
7178
}
7279

7380
public String getInferenceEntityId() {
@@ -87,7 +94,7 @@ public void writeTo(StreamOutput out) throws IOException {
8794
super.writeTo(out);
8895
out.writeString(inferenceEntityId);
8996
taskType.writeTo(out);
90-
if (out.getTransportVersion().onOrAfter(TransportVersions.INFERENCE_DONT_PERSIST_ON_READ)) {
97+
if (shouldReadPersistDefault(out.getTransportVersion())) {
9198
out.writeBoolean(this.persistDefaultConfig);
9299
}
93100
}

x-pack/plugin/inference/src/test/java/org/elasticsearch/xpack/inference/action/GetInferenceModelRequestTests.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,34 @@
77

88
package org.elasticsearch.xpack.inference.action;
99

10+
import org.elasticsearch.TransportVersion;
1011
import org.elasticsearch.common.io.stream.Writeable;
1112
import org.elasticsearch.inference.TaskType;
1213
import org.elasticsearch.test.AbstractWireSerializingTestCase;
1314
import org.elasticsearch.xpack.core.inference.action.GetInferenceModelAction;
1415

16+
import static org.elasticsearch.TransportVersions.INFERENCE_DONT_PERSIST_ON_READ_BACKPORT_8_16;
17+
1518
public class GetInferenceModelRequestTests extends AbstractWireSerializingTestCase<GetInferenceModelAction.Request> {
1619

1720
public static GetInferenceModelAction.Request randomTestInstance() {
1821
return new GetInferenceModelAction.Request(randomAlphaOfLength(8), randomFrom(TaskType.values()), randomBoolean());
1922
}
2023

24+
public void testShouldReadPersistDefault() {
25+
var previousVersion = new TransportVersion(INFERENCE_DONT_PERSIST_ON_READ_BACKPORT_8_16.id() - 1000);
26+
assertFalse(GetInferenceModelAction.Request.shouldReadPersistDefault(previousVersion));
27+
28+
var patchOnSameVersion = new TransportVersion(INFERENCE_DONT_PERSIST_ON_READ_BACKPORT_8_16.id() + 1);
29+
assertTrue(GetInferenceModelAction.Request.shouldReadPersistDefault(patchOnSameVersion));
30+
31+
var nextVersion = new TransportVersion(INFERENCE_DONT_PERSIST_ON_READ_BACKPORT_8_16.id() + 1000);
32+
assertFalse(GetInferenceModelAction.Request.shouldReadPersistDefault(nextVersion));
33+
34+
var versionChangedInForwardBranch = new TransportVersion(8_776_00_0);
35+
assertTrue(GetInferenceModelAction.Request.shouldReadPersistDefault(versionChangedInForwardBranch));
36+
}
37+
2138
@Override
2239
protected Writeable.Reader<GetInferenceModelAction.Request> instanceReader() {
2340
return GetInferenceModelAction.Request::new;

0 commit comments

Comments
 (0)