3636import java .util .concurrent .atomic .AtomicReference ;
3737import java .util .function .Consumer ;
3838
39+ import static java .lang .Boolean .FALSE ;
40+ import static java .lang .Boolean .TRUE ;
3941import static org .elasticsearch .discovery .DiscoveryModule .MULTI_NODE_DISCOVERY_TYPE ;
4042import static org .elasticsearch .discovery .DiscoveryModule .SINGLE_NODE_DISCOVERY_TYPE ;
4143import static org .hamcrest .CoreMatchers .allOf ;
4244import static org .hamcrest .CoreMatchers .containsString ;
4345import static org .hamcrest .CoreMatchers .equalTo ;
4446import static org .hamcrest .CoreMatchers .instanceOf ;
4547import static org .hamcrest .Matchers .hasToString ;
48+ import static org .hamcrest .Matchers .is ;
4649import static org .hamcrest .Matchers .not ;
4750import static org .mockito .Mockito .mock ;
4851import static org .mockito .Mockito .verify ;
@@ -103,7 +106,7 @@ public void testEnforceLimitsWhenBoundToNonLocalAddress() {
103106 final String discoveryType = randomFrom (MULTI_NODE_DISCOVERY_TYPE , SINGLE_NODE_DISCOVERY_TYPE );
104107
105108 assertEquals (
106- BootstrapChecks .enforceLimits (boundTransportAddress , discoveryType ),
109+ BootstrapChecks .enforceLimits (boundTransportAddress , discoveryType , FALSE :: booleanValue ),
107110 SINGLE_NODE_DISCOVERY_TYPE .equals (discoveryType ) == false
108111 );
109112 }
@@ -124,11 +127,27 @@ public void testEnforceLimitsWhenPublishingToNonLocalAddress() {
124127 final String discoveryType = randomFrom (MULTI_NODE_DISCOVERY_TYPE , SINGLE_NODE_DISCOVERY_TYPE );
125128
126129 assertEquals (
127- BootstrapChecks .enforceLimits (boundTransportAddress , discoveryType ),
130+ BootstrapChecks .enforceLimits (boundTransportAddress , discoveryType , FALSE :: booleanValue ),
128131 SINGLE_NODE_DISCOVERY_TYPE .equals (discoveryType ) == false
129132 );
130133 }
131134
135+ public void testDoNotEnforceLimitsWhenSnapshotBuild () {
136+ final List <TransportAddress > transportAddresses = new ArrayList <>();
137+
138+ for (int i = 0 ; i < randomIntBetween (1 , 8 ); i ++) {
139+ final TransportAddress randomTransportAddress = buildNewFakeTransportAddress ();
140+ transportAddresses .add (randomTransportAddress );
141+ }
142+
143+ final TransportAddress publishAddress = new TransportAddress (InetAddress .getLoopbackAddress (), 0 );
144+ final BoundTransportAddress boundTransportAddress = mock (BoundTransportAddress .class );
145+ when (boundTransportAddress .boundAddresses ()).thenReturn (transportAddresses .toArray (new TransportAddress [0 ]));
146+ when (boundTransportAddress .publishAddress ()).thenReturn (publishAddress );
147+
148+ assertThat (BootstrapChecks .enforceLimits (boundTransportAddress , MULTI_NODE_DISCOVERY_TYPE , TRUE ::booleanValue ), is (false ));
149+ }
150+
132151 public void testExceptionAggregation () {
133152 final List <BootstrapCheck > checks = Arrays .asList (new BootstrapCheck () {
134153 @ Override
0 commit comments