|
32 | 32 | package org.opensearch.action.admin.indices.forcemerge;
|
33 | 33 |
|
34 | 34 | import org.opensearch.Version;
|
| 35 | +import org.opensearch.action.support.IndicesOptions; |
35 | 36 | import org.opensearch.common.io.stream.BytesStreamOutput;
|
36 | 37 | import org.opensearch.core.common.io.stream.StreamInput;
|
| 38 | +import org.opensearch.core.tasks.TaskId; |
37 | 39 | import org.opensearch.test.OpenSearchTestCase;
|
38 | 40 | import org.opensearch.test.VersionUtils;
|
39 | 41 |
|
@@ -95,61 +97,64 @@ public void testSerialization() throws Exception {
|
95 | 97 | public void testBwcSerialization() throws Exception {
|
96 | 98 | {
|
97 | 99 | final ForceMergeRequest sample = randomRequest();
|
98 |
| - final Version compatibleVersion = VersionUtils.randomCompatibleVersion(random(), Version.CURRENT); |
| 100 | + final Version version = VersionUtils.randomCompatibleVersion(random(), Version.CURRENT); |
99 | 101 | try (BytesStreamOutput out = new BytesStreamOutput()) {
|
100 |
| - out.setVersion(compatibleVersion); |
| 102 | + out.setVersion(version); |
101 | 103 | sample.writeTo(out);
|
102 | 104 |
|
103 |
| - final ForceMergeRequest deserializedRequest; |
104 | 105 | try (StreamInput in = out.bytes().streamInput()) {
|
105 |
| - in.setVersion(Version.CURRENT); |
106 |
| - deserializedRequest = new ForceMergeRequest(in); |
107 |
| - } |
108 |
| - |
109 |
| - assertEquals(sample.maxNumSegments(), deserializedRequest.maxNumSegments()); |
110 |
| - assertEquals(sample.onlyExpungeDeletes(), deserializedRequest.onlyExpungeDeletes()); |
111 |
| - assertEquals(sample.flush(), deserializedRequest.flush()); |
112 |
| - if (compatibleVersion.onOrAfter(Version.V_3_0_0)) { |
113 |
| - assertEquals(sample.primaryOnly(), deserializedRequest.primaryOnly()); |
114 |
| - assertEquals(sample.forceMergeUUID(), deserializedRequest.forceMergeUUID()); |
| 106 | + in.setVersion(version); |
| 107 | + TaskId.readFromStream(in); |
| 108 | + in.readStringArray(); |
| 109 | + IndicesOptions.readIndicesOptions(in); |
| 110 | + int maxNumSegments = in.readInt(); |
| 111 | + boolean onlyExpungeDeletes = in.readBoolean(); |
| 112 | + boolean flush = in.readBoolean(); |
| 113 | + boolean primaryOnly = in.readBoolean(); |
| 114 | + String forceMergeUUID; |
| 115 | + if (version.onOrAfter(Version.V_3_0_0)) { |
| 116 | + forceMergeUUID = in.readString(); |
| 117 | + } else { |
| 118 | + forceMergeUUID = in.readOptionalString(); |
| 119 | + } |
| 120 | + assertEquals(sample.maxNumSegments(), maxNumSegments); |
| 121 | + assertEquals(sample.onlyExpungeDeletes(), onlyExpungeDeletes); |
| 122 | + assertEquals(sample.flush(), flush); |
| 123 | + assertEquals(sample.primaryOnly(), primaryOnly); |
| 124 | + assertEquals(sample.forceMergeUUID(), forceMergeUUID); |
115 | 125 | }
|
116 | 126 | }
|
117 | 127 | }
|
118 | 128 |
|
119 | 129 | {
|
120 | 130 | final ForceMergeRequest sample = randomRequest();
|
121 |
| - final Version compatibleVersion = VersionUtils.randomCompatibleVersion(random(), Version.CURRENT); |
| 131 | + final Version version = VersionUtils.randomCompatibleVersion(random(), Version.CURRENT); |
122 | 132 | try (BytesStreamOutput out = new BytesStreamOutput()) {
|
123 |
| - out.setVersion(Version.CURRENT); |
| 133 | + out.setVersion(version); |
124 | 134 | sample.getParentTask().writeTo(out);
|
125 | 135 | out.writeStringArray(sample.indices());
|
126 | 136 | sample.indicesOptions().writeIndicesOptions(out);
|
127 | 137 | out.writeInt(sample.maxNumSegments());
|
128 | 138 | out.writeBoolean(sample.onlyExpungeDeletes());
|
129 | 139 | out.writeBoolean(sample.flush());
|
130 |
| - if (compatibleVersion.onOrAfter(Version.V_3_0_0)) { |
131 |
| - out.writeBoolean(sample.primaryOnly()); |
132 |
| - } |
133 |
| - if (compatibleVersion.onOrAfter(Version.V_3_0_0)) { |
| 140 | + out.writeBoolean(sample.primaryOnly()); |
| 141 | + if (version.onOrAfter(Version.V_3_0_0)) { |
134 | 142 | out.writeString(sample.forceMergeUUID());
|
135 | 143 | } else {
|
136 | 144 | out.writeOptionalString(sample.forceMergeUUID());
|
137 | 145 | }
|
138 | 146 |
|
139 | 147 | final ForceMergeRequest deserializedRequest;
|
140 | 148 | try (StreamInput in = out.bytes().streamInput()) {
|
141 |
| - in.setVersion(compatibleVersion); |
| 149 | + in.setVersion(version); |
142 | 150 | deserializedRequest = new ForceMergeRequest(in);
|
143 | 151 | }
|
144 | 152 |
|
145 | 153 | assertEquals(sample.maxNumSegments(), deserializedRequest.maxNumSegments());
|
146 | 154 | assertEquals(sample.onlyExpungeDeletes(), deserializedRequest.onlyExpungeDeletes());
|
147 | 155 | assertEquals(sample.flush(), deserializedRequest.flush());
|
148 |
| - if (compatibleVersion.onOrAfter(Version.V_3_0_0)) { |
149 |
| - assertEquals(sample.primaryOnly(), deserializedRequest.primaryOnly()); |
150 |
| - } |
| 156 | + assertEquals(sample.primaryOnly(), deserializedRequest.primaryOnly()); |
151 | 157 | assertEquals(sample.forceMergeUUID(), deserializedRequest.forceMergeUUID());
|
152 |
| - |
153 | 158 | }
|
154 | 159 | }
|
155 | 160 | }
|
|
0 commit comments