@@ -49,16 +49,6 @@ public class UpdateNumberOfReplicasTests extends AbstractNodesTests {
49
49
client1 = getClient1 ();
50
50
client2 = getClient2 ();
51
51
52
- createIndex ();
53
- }
54
-
55
- protected void createIndex () {
56
- logger .info ("Creating index test" );
57
- client1 .admin ().indices ().create (createIndexRequest ("test" )).actionGet ();
58
- }
59
-
60
- protected String getConcreteIndexName () {
61
- return "test" ;
62
52
}
63
53
64
54
@ AfterMethod public void closeNodes () {
@@ -76,6 +66,9 @@ protected Client getClient2() {
76
66
}
77
67
78
68
@ Test public void simpleUpdateNumberOfReplicasTests () throws Exception {
69
+ logger .info ("Creating index test" );
70
+ client1 .admin ().indices ().create (createIndexRequest ("test" )).actionGet ();
71
+
79
72
logger .info ("Running Cluster Health" );
80
73
ClusterHealthResponse clusterHealth = client1 .admin ().cluster ().prepareHealth ().setWaitForGreenStatus ().execute ().actionGet ();
81
74
logger .info ("Done Cluster Health, status " + clusterHealth .status ());
@@ -148,4 +141,104 @@ protected Client getClient2() {
148
141
assertThat (countResponse .count (), equalTo (10l ));
149
142
}
150
143
}
144
+
145
+ @ Test public void testAutoExpandNumberOfReplicas0ToData () {
146
+ logger .info ("--> creating index test with auto expand replicas" );
147
+ client1 .admin ().indices ().prepareCreate ("test" ).setSettings (settingsBuilder ().put ("number_of_shards" , 2 ).put ("auto_expand_replicas" , "0-all" )).execute ().actionGet ();
148
+
149
+ logger .info ("--> running cluster health" );
150
+ ClusterHealthResponse clusterHealth = client1 .admin ().cluster ().prepareHealth ().setWaitForGreenStatus ().setWaitForActiveShards (4 ).execute ().actionGet ();
151
+ logger .info ("--> done cluster health, status " + clusterHealth .status ());
152
+ assertThat (clusterHealth .timedOut (), equalTo (false ));
153
+ assertThat (clusterHealth .status (), equalTo (ClusterHealthStatus .GREEN ));
154
+ assertThat (clusterHealth .indices ().get ("test" ).activePrimaryShards (), equalTo (2 ));
155
+ assertThat (clusterHealth .indices ().get ("test" ).numberOfReplicas (), equalTo (1 ));
156
+ assertThat (clusterHealth .indices ().get ("test" ).activeShards (), equalTo (4 ));
157
+
158
+ logger .info ("--> add another node, should increase the number of replicas" );
159
+ startNode ("node3" );
160
+
161
+ logger .info ("--> running cluster health" );
162
+ clusterHealth = client1 .admin ().cluster ().prepareHealth ().setWaitForGreenStatus ().setWaitForActiveShards (6 ).execute ().actionGet ();
163
+ logger .info ("--> done cluster health, status " + clusterHealth .status ());
164
+ assertThat (clusterHealth .timedOut (), equalTo (false ));
165
+ assertThat (clusterHealth .status (), equalTo (ClusterHealthStatus .GREEN ));
166
+ assertThat (clusterHealth .indices ().get ("test" ).activePrimaryShards (), equalTo (2 ));
167
+ assertThat (clusterHealth .indices ().get ("test" ).numberOfReplicas (), equalTo (2 ));
168
+ assertThat (clusterHealth .indices ().get ("test" ).activeShards (), equalTo (6 ));
169
+
170
+ logger .info ("--> closing one node" );
171
+ closeNode ("node3" );
172
+
173
+ logger .info ("--> running cluster health" );
174
+ clusterHealth = client1 .admin ().cluster ().prepareHealth ().setWaitForGreenStatus ().setWaitForActiveShards (4 ).execute ().actionGet ();
175
+ logger .info ("--> done cluster health, status " + clusterHealth .status ());
176
+ assertThat (clusterHealth .timedOut (), equalTo (false ));
177
+ assertThat (clusterHealth .status (), equalTo (ClusterHealthStatus .GREEN ));
178
+ assertThat (clusterHealth .indices ().get ("test" ).activePrimaryShards (), equalTo (2 ));
179
+ assertThat (clusterHealth .indices ().get ("test" ).numberOfReplicas (), equalTo (1 ));
180
+ assertThat (clusterHealth .indices ().get ("test" ).activeShards (), equalTo (4 ));
181
+
182
+ logger .info ("--> closing another node" );
183
+ closeNode ("node2" );
184
+
185
+ logger .info ("--> running cluster health" );
186
+ clusterHealth = client1 .admin ().cluster ().prepareHealth ().setWaitForGreenStatus ().setWaitForActiveShards (2 ).execute ().actionGet ();
187
+ logger .info ("--> done cluster health, status " + clusterHealth .status ());
188
+ assertThat (clusterHealth .timedOut (), equalTo (false ));
189
+ assertThat (clusterHealth .status (), equalTo (ClusterHealthStatus .GREEN ));
190
+ assertThat (clusterHealth .indices ().get ("test" ).activePrimaryShards (), equalTo (2 ));
191
+ assertThat (clusterHealth .indices ().get ("test" ).numberOfReplicas (), equalTo (0 ));
192
+ assertThat (clusterHealth .indices ().get ("test" ).activeShards (), equalTo (2 ));
193
+ }
194
+
195
+ @ Test public void testAutoExpandNumberReplicas1ToData () {
196
+ logger .info ("--> creating index test with auto expand replicas" );
197
+ client1 .admin ().indices ().prepareCreate ("test" ).setSettings (settingsBuilder ().put ("number_of_shards" , 2 ).put ("auto_expand_replicas" , "1-all" )).execute ().actionGet ();
198
+
199
+ logger .info ("--> running cluster health" );
200
+ ClusterHealthResponse clusterHealth = client1 .admin ().cluster ().prepareHealth ().setWaitForGreenStatus ().setWaitForActiveShards (4 ).execute ().actionGet ();
201
+ logger .info ("--> done cluster health, status " + clusterHealth .status ());
202
+ assertThat (clusterHealth .timedOut (), equalTo (false ));
203
+ assertThat (clusterHealth .status (), equalTo (ClusterHealthStatus .GREEN ));
204
+ assertThat (clusterHealth .indices ().get ("test" ).activePrimaryShards (), equalTo (2 ));
205
+ assertThat (clusterHealth .indices ().get ("test" ).numberOfReplicas (), equalTo (1 ));
206
+ assertThat (clusterHealth .indices ().get ("test" ).activeShards (), equalTo (4 ));
207
+
208
+ logger .info ("--> add another node, should increase the number of replicas" );
209
+ startNode ("node3" );
210
+
211
+ logger .info ("--> running cluster health" );
212
+ clusterHealth = client1 .admin ().cluster ().prepareHealth ().setWaitForGreenStatus ().setWaitForActiveShards (6 ).execute ().actionGet ();
213
+ logger .info ("--> done cluster health, status " + clusterHealth .status ());
214
+ assertThat (clusterHealth .timedOut (), equalTo (false ));
215
+ assertThat (clusterHealth .status (), equalTo (ClusterHealthStatus .GREEN ));
216
+ assertThat (clusterHealth .indices ().get ("test" ).activePrimaryShards (), equalTo (2 ));
217
+ assertThat (clusterHealth .indices ().get ("test" ).numberOfReplicas (), equalTo (2 ));
218
+ assertThat (clusterHealth .indices ().get ("test" ).activeShards (), equalTo (6 ));
219
+
220
+ logger .info ("--> closing one node" );
221
+ closeNode ("node3" );
222
+
223
+ logger .info ("--> running cluster health" );
224
+ clusterHealth = client1 .admin ().cluster ().prepareHealth ().setWaitForGreenStatus ().setWaitForActiveShards (4 ).execute ().actionGet ();
225
+ logger .info ("--> done cluster health, status " + clusterHealth .status ());
226
+ assertThat (clusterHealth .timedOut (), equalTo (false ));
227
+ assertThat (clusterHealth .status (), equalTo (ClusterHealthStatus .GREEN ));
228
+ assertThat (clusterHealth .indices ().get ("test" ).activePrimaryShards (), equalTo (2 ));
229
+ assertThat (clusterHealth .indices ().get ("test" ).numberOfReplicas (), equalTo (1 ));
230
+ assertThat (clusterHealth .indices ().get ("test" ).activeShards (), equalTo (4 ));
231
+
232
+ logger .info ("--> closing another node" );
233
+ closeNode ("node2" );
234
+
235
+ logger .info ("--> running cluster health" );
236
+ clusterHealth = client1 .admin ().cluster ().prepareHealth ().setWaitForYellowStatus ().setWaitForActiveShards (2 ).execute ().actionGet ();
237
+ logger .info ("--> done cluster health, status " + clusterHealth .status ());
238
+ assertThat (clusterHealth .timedOut (), equalTo (false ));
239
+ assertThat (clusterHealth .status (), equalTo (ClusterHealthStatus .YELLOW ));
240
+ assertThat (clusterHealth .indices ().get ("test" ).activePrimaryShards (), equalTo (2 ));
241
+ assertThat (clusterHealth .indices ().get ("test" ).numberOfReplicas (), equalTo (1 ));
242
+ assertThat (clusterHealth .indices ().get ("test" ).activeShards (), equalTo (2 ));
243
+ }
151
244
}
0 commit comments