|
10 | 10 | package org.elasticsearch.cluster.metadata; |
11 | 11 |
|
12 | 12 | import org.elasticsearch.TransportVersion; |
| 13 | +import org.elasticsearch.TransportVersions; |
13 | 14 | import org.elasticsearch.cluster.ClusterModule; |
14 | 15 | import org.elasticsearch.cluster.Diff; |
15 | 16 | import org.elasticsearch.cluster.coordination.CoordinationMetadata; |
|
45 | 46 | import org.elasticsearch.persistent.PersistentTasksService; |
46 | 47 | import org.elasticsearch.test.AbstractChunkedSerializingTestCase; |
47 | 48 | import org.elasticsearch.test.ESTestCase; |
| 49 | +import org.elasticsearch.test.TransportVersionUtils; |
48 | 50 | import org.elasticsearch.test.index.IndexVersionUtils; |
49 | 51 | import org.elasticsearch.test.rest.ObjectPath; |
50 | 52 | import org.elasticsearch.threadpool.ThreadPool; |
@@ -613,6 +615,17 @@ public void testMultiProjectSerialization() throws IOException { |
613 | 615 | } |
614 | 616 | } |
615 | 617 |
|
| 618 | + public void testUnableToSerializeNonDefaultProjectBeforeMultiProject() { |
| 619 | + final var projectId = randomUniqueProjectId(); |
| 620 | + Metadata metadata = Metadata.builder().put(ProjectMetadata.builder(projectId)).build(); |
| 621 | + |
| 622 | + try (BytesStreamOutput output = new BytesStreamOutput()) { |
| 623 | + output.setTransportVersion(TransportVersionUtils.getPreviousVersion(TransportVersions.MULTI_PROJECT)); |
| 624 | + var e = assertThrows(UnsupportedOperationException.class, () -> metadata.writeTo(output)); |
| 625 | + assertEquals("There is 1 project, but it has id [" + projectId + "] rather than default", e.getMessage()); |
| 626 | + } |
| 627 | + } |
| 628 | + |
616 | 629 | public void testGetNonExistingProjectThrows() { |
617 | 630 | final List<ProjectMetadata> projects = IntStream.range(0, between(1, 3)) |
618 | 631 | .mapToObj(i -> randomProject(ProjectId.fromId("p_" + i), between(0, 5))) |
|
0 commit comments