2121import org .elasticsearch .Version ;
2222import org .elasticsearch .cluster .ClusterState ;
2323import org .elasticsearch .cluster .block .ClusterBlocks ;
24+ import org .elasticsearch .cluster .coordination .CoordinationMetaData ;
2425import org .elasticsearch .cluster .metadata .IndexMetaData ;
2526import org .elasticsearch .cluster .metadata .MetaData ;
2627import org .elasticsearch .cluster .node .DiscoveryNode ;
3637import org .elasticsearch .test .ESTestCase ;
3738
3839import java .io .IOException ;
40+ import java .util .Arrays ;
3941import java .util .Collections ;
4042import java .util .Set ;
4143import java .util .function .BiConsumer ;
@@ -287,9 +289,18 @@ public void testDoNotHideStateIfRecovered() {
287289 public void testHideStateIfNotRecovered () {
288290 final IndexMetaData indexMetaData = createIndexMetaData ("test" ,
289291 Settings .builder ().put (IndexMetaData .INDEX_READ_ONLY_SETTING .getKey (), true ).build ());
292+ final String clusterUUID = UUIDs .randomBase64UUID ();
293+ final CoordinationMetaData coordinationMetaData = new CoordinationMetaData (randomLong (),
294+ new CoordinationMetaData .VotingConfiguration (Sets .newHashSet (generateRandomStringArray (5 , 5 , false ))),
295+ new CoordinationMetaData .VotingConfiguration (Sets .newHashSet (generateRandomStringArray (5 , 5 , false ))),
296+ Arrays .stream (generateRandomStringArray (5 , 5 , false ))
297+ .map (id -> new CoordinationMetaData .VotingTombstone (id , id ))
298+ .collect (Collectors .toSet ()));
290299 final MetaData metaData = MetaData .builder ()
291300 .persistentSettings (Settings .builder ().put (MetaData .SETTING_READ_ONLY_SETTING .getKey (), true ).build ())
292301 .transientSettings (Settings .builder ().put (MetaData .SETTING_READ_ONLY_ALLOW_DELETE_SETTING .getKey (), true ).build ())
302+ .clusterUUID (clusterUUID )
303+ .coordinationMetaData (coordinationMetaData )
293304 .put (indexMetaData , false )
294305 .build ();
295306 final ClusterState initialState = ClusterState .builder (ClusterState .EMPTY_STATE )
@@ -302,8 +313,12 @@ public void testHideStateIfNotRecovered() {
302313 .andThen (state -> setLocalNode (state , localNode ))
303314 .andThen (ClusterStateUpdaters ::recoverClusterBlocks )
304315 .apply (initialState );
316+
305317 final ClusterState hiddenState = hideStateIfNotRecovered (updatedState );
306- assertTrue (MetaData .isGlobalStateEquals (hiddenState .metaData (), MetaData .EMPTY_META_DATA ));
318+
319+ assertTrue (MetaData .isGlobalStateEquals (hiddenState .metaData (),
320+ MetaData .builder ().coordinationMetaData (coordinationMetaData ).clusterUUID (clusterUUID ).build ()));
321+ assertThat (hiddenState .metaData ().indices ().size (), is (0 ));
307322 assertTrue (hiddenState .blocks ().hasGlobalBlock (STATE_NOT_RECOVERED_BLOCK ));
308323 assertFalse (hiddenState .blocks ().hasGlobalBlock (MetaData .CLUSTER_READ_ONLY_BLOCK ));
309324 assertFalse (hiddenState .blocks ().hasGlobalBlock (MetaData .CLUSTER_READ_ONLY_ALLOW_DELETE_BLOCK ));
0 commit comments