|
9 | 9 | import org.apache.http.HttpHost;
|
10 | 10 | import org.apache.http.entity.ContentType;
|
11 | 11 | import org.apache.http.entity.StringEntity;
|
| 12 | +import org.elasticsearch.Version; |
12 | 13 | import org.elasticsearch.client.Request;
|
13 | 14 | import org.elasticsearch.client.Response;
|
14 | 15 | import org.elasticsearch.client.RestClient;
|
|
50 | 51 | import static org.elasticsearch.xpack.test.rest.XPackRestTestConstants.TRANSFORM_INTERNAL_INDEX_PREFIX;
|
51 | 52 | import static org.elasticsearch.xpack.test.rest.XPackRestTestConstants.TRANSFORM_INTERNAL_INDEX_PREFIX_DEPRECATED;
|
52 | 53 | import static org.elasticsearch.xpack.test.rest.XPackRestTestConstants.TRANSFORM_TASK_NAME;
|
| 54 | +import static org.hamcrest.Matchers.containsString; |
53 | 55 | import static org.hamcrest.Matchers.equalTo;
|
54 | 56 | import static org.hamcrest.Matchers.greaterThan;
|
55 | 57 | import static org.hamcrest.Matchers.greaterThanOrEqualTo;
|
@@ -108,10 +110,12 @@ public void testTransformRollingUpgrade() throws Exception {
|
108 | 110 | lastCheckpoint = 2;
|
109 | 111 | }
|
110 | 112 | verifyContinuousTransformHandlesData(lastCheckpoint);
|
| 113 | + verifyUpgradeFailsIfMixedCluster(); |
111 | 114 | break;
|
112 | 115 | case UPGRADED:
|
113 | 116 | client().performRequest(waitForYellow);
|
114 | 117 | verifyContinuousTransformHandlesData(3);
|
| 118 | + verifyUpgrade(); |
115 | 119 | cleanUpTransforms();
|
116 | 120 | break;
|
117 | 121 | default:
|
@@ -216,6 +220,23 @@ private void verifyContinuousTransformHandlesData(long expectedLastCheckpoint) t
|
216 | 220 | });
|
217 | 221 | }
|
218 | 222 |
|
| 223 | + private void verifyUpgradeFailsIfMixedCluster() { |
| 224 | + // upgrade tests by design are also executed with the same version, this check must be skipped in this case, see gh#39102. |
| 225 | + if (UPGRADE_FROM_VERSION.equals(Version.CURRENT)) { |
| 226 | + return; |
| 227 | + } |
| 228 | + final Request upgradeTransformRequest = new Request("POST", getTransformEndpoint() + "_upgrade"); |
| 229 | + |
| 230 | + Exception ex = expectThrows(Exception.class, () -> client().performRequest(upgradeTransformRequest)); |
| 231 | + assertThat(ex.getMessage(), containsString("All nodes must be the same version")); |
| 232 | + } |
| 233 | + |
| 234 | + private void verifyUpgrade() throws IOException { |
| 235 | + final Request upgradeTransformRequest = new Request("POST", getTransformEndpoint() + "_upgrade"); |
| 236 | + Response response = client().performRequest(upgradeTransformRequest); |
| 237 | + assertEquals(200, response.getStatusLine().getStatusCode()); |
| 238 | + } |
| 239 | + |
219 | 240 | private void awaitWrittenIndexerState(String id, Consumer<Map<?, ?>> responseAssertion) throws Exception {
|
220 | 241 | Request getStatsDocsRequest = new Request(
|
221 | 242 | "GET",
|
|
0 commit comments