2222import org .elasticsearch .cluster .node .VersionInformation ;
2323import org .elasticsearch .cluster .project .DefaultProjectResolver ;
2424import org .elasticsearch .cluster .project .ProjectResolver ;
25+ import org .elasticsearch .cluster .project .ProjectStateRegistry ;
2526import org .elasticsearch .cluster .project .TestProjectResolvers ;
2627import org .elasticsearch .cluster .routing .GlobalRoutingTableTestHelper ;
2728import org .elasticsearch .cluster .routing .RoutingTable ;
@@ -169,6 +170,13 @@ public void testGetClusterStateForManyProjects() throws Exception {
169170 assertThat (routingTable , notNullValue ());
170171 assertThat (routingTable .indicesRouting ().keySet (), containsInAnyOrder (expectedIndices ));
171172 }
173+ if (request .customs ()) {
174+ ProjectStateRegistry projectStateRegistry = ProjectStateRegistry .get (response .getState ());
175+ assertThat (projectStateRegistry .size (), equalTo (numberOfProjects ));
176+ Settings projectSettings = projectStateRegistry .getProjectSettings (projectId );
177+ assertThat (projectSettings , notNullValue ());
178+ assertThat (projectSettings .keySet (), contains ("setting_1" ));
179+ }
172180 }
173181 }
174182
@@ -194,6 +202,13 @@ private static void assertSingleProjectResponse(
194202 } else {
195203 assertThat (routingTables .get (projectId ).indicesRouting (), anEmptyMap ());
196204 }
205+ if (request .customs ()) {
206+ ProjectStateRegistry projectStateRegistry = ProjectStateRegistry .get (response .getState ());
207+ assertThat (projectStateRegistry .size (), equalTo (1 ));
208+ Settings projectSettings = projectStateRegistry .getProjectSettings (projectId );
209+ assertThat (projectSettings , notNullValue ());
210+ assertThat (projectSettings .keySet (), contains ("setting_1" ));
211+ }
197212 }
198213
199214 private ClusterStateResponse executeAction (ProjectResolver projectResolver , ClusterStateRequest request , ClusterState state )
@@ -232,7 +247,7 @@ private static ClusterStateRequest buildRandomRequest(Set<String> indexNames) {
232247 request .nodes (randomBoolean ());
233248 request .routingTable (randomBoolean ());
234249 request .blocks (randomBoolean ());
235- request .customs (randomBoolean () );
250+ request .customs (true );
236251 return request ;
237252 }
238253
@@ -241,9 +256,14 @@ private static ClusterState buildClusterState(ProjectMetadata.Builder... project
241256 Arrays .stream (projects ).forEach (metadataBuilder ::put );
242257 final var metadata = metadataBuilder .build ();
243258
244- return ClusterState .builder (new ClusterName (randomAlphaOfLengthBetween (4 , 12 )))
245- .metadata (metadata )
259+ ClusterState .Builder csBuilder = ClusterState .builder (new ClusterName (randomAlphaOfLengthBetween (4 , 12 )));
260+ ProjectStateRegistry .Builder psBuilder = ProjectStateRegistry .builder ();
261+ for (ProjectMetadata .Builder project : projects ) {
262+ psBuilder .putProjectSettings (project .getId (), Settings .builder ().put ("setting_1" , randomIdentifier ()).build ());
263+ }
264+ return csBuilder .metadata (metadata )
246265 .routingTable (GlobalRoutingTableTestHelper .buildRoutingTable (metadata , RoutingTable .Builder ::addAsNew ))
266+ .putCustom (ProjectStateRegistry .TYPE , psBuilder .build ())
247267 .build ();
248268 }
249269
0 commit comments