mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-03-26 18:08:36 +00:00
New API, update settings, allowing to change specific runtime settings of the cluster (indices). number_of_replicas
is the only settings supported, allowing to change the number of repliacs of one or more indices.
This commit is contained in:
parent
6d3d9fd807
commit
d4547c629f
@ -41,6 +41,7 @@ import org.elasticsearch.action.admin.indices.gateway.snapshot.TransportShardGat
|
|||||||
import org.elasticsearch.action.admin.indices.mapping.put.TransportPutMappingAction;
|
import org.elasticsearch.action.admin.indices.mapping.put.TransportPutMappingAction;
|
||||||
import org.elasticsearch.action.admin.indices.optimize.TransportOptimizeAction;
|
import org.elasticsearch.action.admin.indices.optimize.TransportOptimizeAction;
|
||||||
import org.elasticsearch.action.admin.indices.refresh.TransportRefreshAction;
|
import org.elasticsearch.action.admin.indices.refresh.TransportRefreshAction;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.TransportUpdateSettingsAction;
|
||||||
import org.elasticsearch.action.admin.indices.status.TransportIndicesStatusAction;
|
import org.elasticsearch.action.admin.indices.status.TransportIndicesStatusAction;
|
||||||
import org.elasticsearch.action.count.TransportCountAction;
|
import org.elasticsearch.action.count.TransportCountAction;
|
||||||
import org.elasticsearch.action.delete.TransportDeleteAction;
|
import org.elasticsearch.action.delete.TransportDeleteAction;
|
||||||
@ -80,6 +81,7 @@ public class TransportActionModule extends AbstractModule {
|
|||||||
bind(TransportPutMappingAction.class).asEagerSingleton();
|
bind(TransportPutMappingAction.class).asEagerSingleton();
|
||||||
bind(TransportDeleteIndexAction.class).asEagerSingleton();
|
bind(TransportDeleteIndexAction.class).asEagerSingleton();
|
||||||
bind(TransportIndicesAliasesAction.class).asEagerSingleton();
|
bind(TransportIndicesAliasesAction.class).asEagerSingleton();
|
||||||
|
bind(TransportUpdateSettingsAction.class).asEagerSingleton();
|
||||||
|
|
||||||
bind(TransportShardGatewaySnapshotAction.class).asEagerSingleton();
|
bind(TransportShardGatewaySnapshotAction.class).asEagerSingleton();
|
||||||
bind(TransportIndexGatewaySnapshotAction.class).asEagerSingleton();
|
bind(TransportIndexGatewaySnapshotAction.class).asEagerSingleton();
|
||||||
|
@ -52,6 +52,7 @@ public class TransportActions {
|
|||||||
public static final String OPTIMIZE = "indices/optimize";
|
public static final String OPTIMIZE = "indices/optimize";
|
||||||
public static final String STATUS = "indices/status";
|
public static final String STATUS = "indices/status";
|
||||||
public static final String ALIASES = "indices/aliases";
|
public static final String ALIASES = "indices/aliases";
|
||||||
|
public static final String UPDATE_SETTINGS = "indices/updateSettings";
|
||||||
|
|
||||||
public static class Gateway {
|
public static class Gateway {
|
||||||
public static final String SNAPSHOT = "indices/gateway/snapshot";
|
public static final String SNAPSHOT = "indices/gateway/snapshot";
|
||||||
|
@ -0,0 +1,92 @@
|
|||||||
|
/*
|
||||||
|
* Licensed to Elastic Search and Shay Banon under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. Elastic Search licenses this
|
||||||
|
* file to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.action.admin.indices.settings;
|
||||||
|
|
||||||
|
import org.elasticsearch.ElasticSearchException;
|
||||||
|
import org.elasticsearch.action.TransportActions;
|
||||||
|
import org.elasticsearch.action.support.master.TransportMasterNodeOperationAction;
|
||||||
|
import org.elasticsearch.cluster.ClusterService;
|
||||||
|
import org.elasticsearch.cluster.ClusterState;
|
||||||
|
import org.elasticsearch.cluster.metadata.MetaDataUpdateSettingsService;
|
||||||
|
import org.elasticsearch.common.inject.Inject;
|
||||||
|
import org.elasticsearch.common.settings.Settings;
|
||||||
|
import org.elasticsearch.threadpool.ThreadPool;
|
||||||
|
import org.elasticsearch.transport.TransportService;
|
||||||
|
|
||||||
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kimchy (shay.banon)
|
||||||
|
*/
|
||||||
|
public class TransportUpdateSettingsAction extends TransportMasterNodeOperationAction<UpdateSettingsRequest, UpdateSettingsResponse> {
|
||||||
|
|
||||||
|
private final MetaDataUpdateSettingsService updateSettingsService;
|
||||||
|
|
||||||
|
@Inject public TransportUpdateSettingsAction(Settings settings, TransportService transportService, ClusterService clusterService, ThreadPool threadPool,
|
||||||
|
MetaDataUpdateSettingsService updateSettingsService) {
|
||||||
|
super(settings, transportService, clusterService, threadPool);
|
||||||
|
this.updateSettingsService = updateSettingsService;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override protected String transportAction() {
|
||||||
|
return TransportActions.Admin.Indices.UPDATE_SETTINGS;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override protected UpdateSettingsRequest newRequest() {
|
||||||
|
return new UpdateSettingsRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override protected UpdateSettingsResponse newResponse() {
|
||||||
|
return new UpdateSettingsResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override protected UpdateSettingsResponse masterOperation(UpdateSettingsRequest request, ClusterState state) throws ElasticSearchException {
|
||||||
|
final AtomicReference<Throwable> failureRef = new AtomicReference<Throwable>();
|
||||||
|
final CountDownLatch latch = new CountDownLatch(1);
|
||||||
|
|
||||||
|
updateSettingsService.updateSettings(request.settings(), request.indices(), new MetaDataUpdateSettingsService.Listener() {
|
||||||
|
@Override public void onSuccess() {
|
||||||
|
latch.countDown();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void onFailure(Throwable t) {
|
||||||
|
failureRef.set(t);
|
||||||
|
latch.countDown();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
|
latch.await();
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
failureRef.set(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (failureRef.get() != null) {
|
||||||
|
if (failureRef.get() instanceof ElasticSearchException) {
|
||||||
|
throw (ElasticSearchException) failureRef.get();
|
||||||
|
} else {
|
||||||
|
throw new ElasticSearchException(failureRef.get().getMessage(), failureRef.get());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new UpdateSettingsResponse();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,147 @@
|
|||||||
|
/*
|
||||||
|
* Licensed to Elastic Search and Shay Banon under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. Elastic Search licenses this
|
||||||
|
* file to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.action.admin.indices.settings;
|
||||||
|
|
||||||
|
import org.elasticsearch.ElasticSearchGenerationException;
|
||||||
|
import org.elasticsearch.action.ActionRequestValidationException;
|
||||||
|
import org.elasticsearch.action.support.master.MasterNodeOperationRequest;
|
||||||
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||||
|
import org.elasticsearch.common.settings.ImmutableSettings;
|
||||||
|
import org.elasticsearch.common.settings.Settings;
|
||||||
|
import org.elasticsearch.common.xcontent.XContentFactory;
|
||||||
|
import org.elasticsearch.common.xcontent.XContentType;
|
||||||
|
import org.elasticsearch.common.xcontent.builder.TextXContentBuilder;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static org.elasticsearch.action.Actions.*;
|
||||||
|
import static org.elasticsearch.common.settings.ImmutableSettings.Builder.*;
|
||||||
|
import static org.elasticsearch.common.settings.ImmutableSettings.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kimchy
|
||||||
|
*/
|
||||||
|
public class UpdateSettingsRequest extends MasterNodeOperationRequest {
|
||||||
|
|
||||||
|
private String[] indices;
|
||||||
|
|
||||||
|
private Settings settings = EMPTY_SETTINGS;
|
||||||
|
|
||||||
|
UpdateSettingsRequest() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new request to create an index with the specified name and settings.
|
||||||
|
*/
|
||||||
|
public UpdateSettingsRequest(String... indices) {
|
||||||
|
this.indices = indices;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new request to create an index with the specified name and settings.
|
||||||
|
*/
|
||||||
|
public UpdateSettingsRequest(Settings settings, String... indices) {
|
||||||
|
this.indices = indices;
|
||||||
|
this.settings = settings;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public ActionRequestValidationException validate() {
|
||||||
|
ActionRequestValidationException validationException = null;
|
||||||
|
if (settings.getAsMap().isEmpty()) {
|
||||||
|
validationException = addValidationError("no settings to update", validationException);
|
||||||
|
}
|
||||||
|
return validationException;
|
||||||
|
}
|
||||||
|
|
||||||
|
String[] indices() {
|
||||||
|
return indices;
|
||||||
|
}
|
||||||
|
|
||||||
|
Settings settings() {
|
||||||
|
return settings;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UpdateSettingsRequest indices(String... indices) {
|
||||||
|
this.indices = indices;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The settings to created the index with.
|
||||||
|
*/
|
||||||
|
public UpdateSettingsRequest settings(Settings settings) {
|
||||||
|
this.settings = settings;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The settings to created the index with.
|
||||||
|
*/
|
||||||
|
public UpdateSettingsRequest settings(Settings.Builder settings) {
|
||||||
|
this.settings = settings.build();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The settings to crete the index with (either json/yaml/properties format)
|
||||||
|
*/
|
||||||
|
public UpdateSettingsRequest settings(String source) {
|
||||||
|
this.settings = ImmutableSettings.settingsBuilder().loadFromSource(source).build();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The settings to crete the index with (either json/yaml/properties format)
|
||||||
|
*/
|
||||||
|
public UpdateSettingsRequest settings(Map source) {
|
||||||
|
try {
|
||||||
|
TextXContentBuilder builder = XContentFactory.contentTextBuilder(XContentType.JSON);
|
||||||
|
builder.map(source);
|
||||||
|
settings(builder.string());
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new ElasticSearchGenerationException("Failed to generate [" + source + "]", e);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void readFrom(StreamInput in) throws IOException {
|
||||||
|
super.readFrom(in);
|
||||||
|
indices = new String[in.readVInt()];
|
||||||
|
for (int i = 0; i < indices.length; i++) {
|
||||||
|
indices[i] = in.readUTF();
|
||||||
|
}
|
||||||
|
settings = readSettingsFromStream(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void writeTo(StreamOutput out) throws IOException {
|
||||||
|
super.writeTo(out);
|
||||||
|
if (indices == null) {
|
||||||
|
out.writeVInt(0);
|
||||||
|
} else {
|
||||||
|
out.writeVInt(indices.length);
|
||||||
|
for (String index : indices) {
|
||||||
|
out.writeUTF(index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
writeSettingsToStream(settings, out);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* Licensed to Elastic Search and Shay Banon under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. Elastic Search licenses this
|
||||||
|
* file to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.action.admin.indices.settings;
|
||||||
|
|
||||||
|
import org.elasticsearch.action.ActionResponse;
|
||||||
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||||
|
import org.elasticsearch.common.io.stream.Streamable;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A response for a update settings action.
|
||||||
|
*
|
||||||
|
* @author kimchy (shay.banon)
|
||||||
|
*/
|
||||||
|
public class UpdateSettingsResponse implements ActionResponse, Streamable {
|
||||||
|
|
||||||
|
UpdateSettingsResponse() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void readFrom(StreamInput in) throws IOException {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void writeTo(StreamOutput out) throws IOException {
|
||||||
|
}
|
||||||
|
}
|
@ -62,7 +62,7 @@ public interface ClusterAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The cluster state request
|
* @param request The cluster state request
|
||||||
* @return The result future
|
* @return The result future
|
||||||
* @see Requests#clusterHealth(String...)
|
* @see Requests#clusterHealthRequest(String...)
|
||||||
*/
|
*/
|
||||||
ActionFuture<ClusterHealthResponse> health(ClusterHealthRequest request);
|
ActionFuture<ClusterHealthResponse> health(ClusterHealthRequest request);
|
||||||
|
|
||||||
@ -71,7 +71,7 @@ public interface ClusterAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The cluster state request
|
* @param request The cluster state request
|
||||||
* @param listener A listener to be notified with a result
|
* @param listener A listener to be notified with a result
|
||||||
* @see Requests#clusterHealth(String...)
|
* @see Requests#clusterHealthRequest(String...)
|
||||||
*/
|
*/
|
||||||
void health(ClusterHealthRequest request, ActionListener<ClusterHealthResponse> listener);
|
void health(ClusterHealthRequest request, ActionListener<ClusterHealthResponse> listener);
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ public interface ClusterAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The cluster state request.
|
* @param request The cluster state request.
|
||||||
* @return The result future
|
* @return The result future
|
||||||
* @see Requests#clusterState()
|
* @see Requests#clusterStateRequest()
|
||||||
*/
|
*/
|
||||||
ActionFuture<ClusterStateResponse> state(ClusterStateRequest request);
|
ActionFuture<ClusterStateResponse> state(ClusterStateRequest request);
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ public interface ClusterAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The cluster state request.
|
* @param request The cluster state request.
|
||||||
* @param listener A listener to be notified with a result
|
* @param listener A listener to be notified with a result
|
||||||
* @see Requests#clusterState()
|
* @see Requests#clusterStateRequest()
|
||||||
*/
|
*/
|
||||||
void state(ClusterStateRequest request, ActionListener<ClusterStateResponse> listener);
|
void state(ClusterStateRequest request, ActionListener<ClusterStateResponse> listener);
|
||||||
|
|
||||||
@ -108,7 +108,7 @@ public interface ClusterAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The nodes info request
|
* @param request The nodes info request
|
||||||
* @return The result future
|
* @return The result future
|
||||||
* @see org.elasticsearch.client.Requests#nodesInfo(String...)
|
* @see org.elasticsearch.client.Requests#nodesInfoRequest(String...)
|
||||||
*/
|
*/
|
||||||
ActionFuture<NodesInfoResponse> nodesInfo(NodesInfoRequest request);
|
ActionFuture<NodesInfoResponse> nodesInfo(NodesInfoRequest request);
|
||||||
|
|
||||||
@ -117,7 +117,7 @@ public interface ClusterAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The nodes info request
|
* @param request The nodes info request
|
||||||
* @param listener A listener to be notified with a result
|
* @param listener A listener to be notified with a result
|
||||||
* @see org.elasticsearch.client.Requests#nodesInfo(String...)
|
* @see org.elasticsearch.client.Requests#nodesInfoRequest(String...)
|
||||||
*/
|
*/
|
||||||
void nodesInfo(NodesInfoRequest request, ActionListener<NodesInfoResponse> listener);
|
void nodesInfo(NodesInfoRequest request, ActionListener<NodesInfoResponse> listener);
|
||||||
|
|
||||||
@ -131,7 +131,7 @@ public interface ClusterAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The nodes info request
|
* @param request The nodes info request
|
||||||
* @return The result future
|
* @return The result future
|
||||||
* @see org.elasticsearch.client.Requests#nodesStats(String...)
|
* @see org.elasticsearch.client.Requests#nodesStatsRequest(String...)
|
||||||
*/
|
*/
|
||||||
ActionFuture<NodesStatsResponse> nodesStats(NodesStatsRequest request);
|
ActionFuture<NodesStatsResponse> nodesStats(NodesStatsRequest request);
|
||||||
|
|
||||||
@ -140,7 +140,7 @@ public interface ClusterAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The nodes info request
|
* @param request The nodes info request
|
||||||
* @param listener A listener to be notified with a result
|
* @param listener A listener to be notified with a result
|
||||||
* @see org.elasticsearch.client.Requests#nodesStats(String...)
|
* @see org.elasticsearch.client.Requests#nodesStatsRequest(String...)
|
||||||
*/
|
*/
|
||||||
void nodesStats(NodesStatsRequest request, ActionListener<NodesStatsResponse> listener);
|
void nodesStats(NodesStatsRequest request, ActionListener<NodesStatsResponse> listener);
|
||||||
|
|
||||||
@ -154,7 +154,7 @@ public interface ClusterAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The nodes shutdown request
|
* @param request The nodes shutdown request
|
||||||
* @return The result future
|
* @return The result future
|
||||||
* @see org.elasticsearch.client.Requests#nodesShutdown(String...)
|
* @see org.elasticsearch.client.Requests#nodesShutdownRequest(String...)
|
||||||
*/
|
*/
|
||||||
ActionFuture<NodesShutdownResponse> nodesShutdown(NodesShutdownRequest request);
|
ActionFuture<NodesShutdownResponse> nodesShutdown(NodesShutdownRequest request);
|
||||||
|
|
||||||
@ -163,7 +163,7 @@ public interface ClusterAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The nodes shutdown request
|
* @param request The nodes shutdown request
|
||||||
* @param listener A listener to be notified with a result
|
* @param listener A listener to be notified with a result
|
||||||
* @see org.elasticsearch.client.Requests#nodesShutdown(String...)
|
* @see org.elasticsearch.client.Requests#nodesShutdownRequest(String...)
|
||||||
*/
|
*/
|
||||||
void nodesShutdown(NodesShutdownRequest request, ActionListener<NodesShutdownResponse> listener);
|
void nodesShutdown(NodesShutdownRequest request, ActionListener<NodesShutdownResponse> listener);
|
||||||
|
|
||||||
@ -177,7 +177,7 @@ public interface ClusterAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The nodes restart request
|
* @param request The nodes restart request
|
||||||
* @return The result future
|
* @return The result future
|
||||||
* @see org.elasticsearch.client.Requests#nodesRestart(String...)
|
* @see org.elasticsearch.client.Requests#nodesRestartRequest(String...)
|
||||||
*/
|
*/
|
||||||
ActionFuture<NodesRestartResponse> nodesRestart(NodesRestartRequest request);
|
ActionFuture<NodesRestartResponse> nodesRestart(NodesRestartRequest request);
|
||||||
|
|
||||||
@ -186,7 +186,7 @@ public interface ClusterAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The nodes restart request
|
* @param request The nodes restart request
|
||||||
* @param listener A listener to be notified with a result
|
* @param listener A listener to be notified with a result
|
||||||
* @see org.elasticsearch.client.Requests#nodesRestart(String...)
|
* @see org.elasticsearch.client.Requests#nodesRestartRequest(String...)
|
||||||
*/
|
*/
|
||||||
void nodesRestart(NodesRestartRequest request, ActionListener<NodesRestartResponse> listener);
|
void nodesRestart(NodesRestartRequest request, ActionListener<NodesRestartResponse> listener);
|
||||||
|
|
||||||
|
@ -39,6 +39,8 @@ import org.elasticsearch.action.admin.indices.optimize.OptimizeRequest;
|
|||||||
import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse;
|
import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse;
|
||||||
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
|
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
|
||||||
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
|
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsRequest;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsResponse;
|
||||||
import org.elasticsearch.action.admin.indices.status.IndicesStatusRequest;
|
import org.elasticsearch.action.admin.indices.status.IndicesStatusRequest;
|
||||||
import org.elasticsearch.action.admin.indices.status.IndicesStatusResponse;
|
import org.elasticsearch.action.admin.indices.status.IndicesStatusResponse;
|
||||||
import org.elasticsearch.client.action.admin.indices.alias.IndicesAliasesRequestBuilder;
|
import org.elasticsearch.client.action.admin.indices.alias.IndicesAliasesRequestBuilder;
|
||||||
@ -50,6 +52,7 @@ import org.elasticsearch.client.action.admin.indices.gateway.snapshot.GatewaySna
|
|||||||
import org.elasticsearch.client.action.admin.indices.mapping.put.PutMappingRequestBuilder;
|
import org.elasticsearch.client.action.admin.indices.mapping.put.PutMappingRequestBuilder;
|
||||||
import org.elasticsearch.client.action.admin.indices.optimize.OptimizeRequestBuilder;
|
import org.elasticsearch.client.action.admin.indices.optimize.OptimizeRequestBuilder;
|
||||||
import org.elasticsearch.client.action.admin.indices.refresh.RefreshRequestBuilder;
|
import org.elasticsearch.client.action.admin.indices.refresh.RefreshRequestBuilder;
|
||||||
|
import org.elasticsearch.client.action.admin.indices.settings.UpdateSettingsRequestBuilder;
|
||||||
import org.elasticsearch.client.action.admin.indices.status.IndicesStatusRequestBuilder;
|
import org.elasticsearch.client.action.admin.indices.status.IndicesStatusRequestBuilder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -65,7 +68,7 @@ public interface IndicesAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The indices status request
|
* @param request The indices status request
|
||||||
* @return The result future
|
* @return The result future
|
||||||
* @see Requests#indicesStatus(String...)
|
* @see Requests#indicesStatusRequest(String...)
|
||||||
*/
|
*/
|
||||||
ActionFuture<IndicesStatusResponse> status(IndicesStatusRequest request);
|
ActionFuture<IndicesStatusResponse> status(IndicesStatusRequest request);
|
||||||
|
|
||||||
@ -74,7 +77,7 @@ public interface IndicesAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The indices status request
|
* @param request The indices status request
|
||||||
* @param listener A listener to be notified with a result
|
* @param listener A listener to be notified with a result
|
||||||
* @see Requests#indicesStatus(String...)
|
* @see Requests#indicesStatusRequest(String...)
|
||||||
*/
|
*/
|
||||||
void status(IndicesStatusRequest request, ActionListener<IndicesStatusResponse> listener);
|
void status(IndicesStatusRequest request, ActionListener<IndicesStatusResponse> listener);
|
||||||
|
|
||||||
@ -276,7 +279,7 @@ public interface IndicesAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The clear indices cache request
|
* @param request The clear indices cache request
|
||||||
* @return The result future
|
* @return The result future
|
||||||
* @see Requests#clearIndicesCache(String...)
|
* @see Requests#clearIndicesCacheRequest(String...)
|
||||||
*/
|
*/
|
||||||
ActionFuture<ClearIndicesCacheResponse> clearCache(ClearIndicesCacheRequest request);
|
ActionFuture<ClearIndicesCacheResponse> clearCache(ClearIndicesCacheRequest request);
|
||||||
|
|
||||||
@ -285,7 +288,7 @@ public interface IndicesAdminClient {
|
|||||||
*
|
*
|
||||||
* @param request The clear indices cache request
|
* @param request The clear indices cache request
|
||||||
* @param listener A listener to be notified with a result
|
* @param listener A listener to be notified with a result
|
||||||
* @see Requests#clearIndicesCache(String...)
|
* @see Requests#clearIndicesCacheRequest(String...)
|
||||||
*/
|
*/
|
||||||
void clearCache(ClearIndicesCacheRequest request, ActionListener<ClearIndicesCacheResponse> listener);
|
void clearCache(ClearIndicesCacheRequest request, ActionListener<ClearIndicesCacheResponse> listener);
|
||||||
|
|
||||||
@ -293,4 +296,25 @@ public interface IndicesAdminClient {
|
|||||||
* Clear indices cache.
|
* Clear indices cache.
|
||||||
*/
|
*/
|
||||||
ClearIndicesCacheRequestBuilder prepareClearCache(String... indices);
|
ClearIndicesCacheRequestBuilder prepareClearCache(String... indices);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates settings of one or more indices.
|
||||||
|
*
|
||||||
|
* @param request the update settings request
|
||||||
|
* @return The result future
|
||||||
|
*/
|
||||||
|
ActionFuture<UpdateSettingsResponse> updateSettings(UpdateSettingsRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates settings of one or more indices.
|
||||||
|
*
|
||||||
|
* @param request the update settings request
|
||||||
|
* @param listener A listener to be notified with the response
|
||||||
|
*/
|
||||||
|
void updateSettings(UpdateSettingsRequest request, ActionListener<UpdateSettingsResponse> listener);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update indices settings.
|
||||||
|
*/
|
||||||
|
UpdateSettingsRequestBuilder prepareUpdateSettings(String... indices);
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,7 @@ import org.elasticsearch.action.admin.indices.gateway.snapshot.GatewaySnapshotRe
|
|||||||
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
|
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
|
||||||
import org.elasticsearch.action.admin.indices.optimize.OptimizeRequest;
|
import org.elasticsearch.action.admin.indices.optimize.OptimizeRequest;
|
||||||
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
|
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsRequest;
|
||||||
import org.elasticsearch.action.admin.indices.status.IndicesStatusRequest;
|
import org.elasticsearch.action.admin.indices.status.IndicesStatusRequest;
|
||||||
import org.elasticsearch.action.count.CountRequest;
|
import org.elasticsearch.action.count.CountRequest;
|
||||||
import org.elasticsearch.action.delete.DeleteRequest;
|
import org.elasticsearch.action.delete.DeleteRequest;
|
||||||
@ -166,7 +167,7 @@ public class Requests {
|
|||||||
* @return The indices status request
|
* @return The indices status request
|
||||||
* @see org.elasticsearch.client.IndicesAdminClient#status(org.elasticsearch.action.admin.indices.status.IndicesStatusRequest)
|
* @see org.elasticsearch.client.IndicesAdminClient#status(org.elasticsearch.action.admin.indices.status.IndicesStatusRequest)
|
||||||
*/
|
*/
|
||||||
public static IndicesStatusRequest indicesStatus(String... indices) {
|
public static IndicesStatusRequest indicesStatusRequest(String... indices) {
|
||||||
return new IndicesStatusRequest(indices);
|
return new IndicesStatusRequest(indices);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -262,17 +263,27 @@ public class Requests {
|
|||||||
* @param indices The indices the gateway snapshot will be performed on. Use <tt>null</tt> or <tt>_all</tt> to execute against all indices
|
* @param indices The indices the gateway snapshot will be performed on. Use <tt>null</tt> or <tt>_all</tt> to execute against all indices
|
||||||
* @return The request
|
* @return The request
|
||||||
*/
|
*/
|
||||||
public static ClearIndicesCacheRequest clearIndicesCache(String... indices) {
|
public static ClearIndicesCacheRequest clearIndicesCacheRequest(String... indices) {
|
||||||
return new ClearIndicesCacheRequest(indices);
|
return new ClearIndicesCacheRequest(indices);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A request to update indices settings.
|
||||||
|
*
|
||||||
|
* @param indices The indices to update the settings for. Use <tt>null</tt> or <tt>_all</tt> to executed against all indices.
|
||||||
|
* @return The request
|
||||||
|
*/
|
||||||
|
public static UpdateSettingsRequest updateSettingsRequest(String... indices) {
|
||||||
|
return new UpdateSettingsRequest(indices);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a cluster state request.
|
* Creates a cluster state request.
|
||||||
*
|
*
|
||||||
* @return The cluster state request.
|
* @return The cluster state request.
|
||||||
* @see org.elasticsearch.client.ClusterAdminClient#state(org.elasticsearch.action.admin.cluster.state.ClusterStateRequest)
|
* @see org.elasticsearch.client.ClusterAdminClient#state(org.elasticsearch.action.admin.cluster.state.ClusterStateRequest)
|
||||||
*/
|
*/
|
||||||
public static ClusterStateRequest clusterState() {
|
public static ClusterStateRequest clusterStateRequest() {
|
||||||
return new ClusterStateRequest();
|
return new ClusterStateRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -283,7 +294,7 @@ public class Requests {
|
|||||||
* @return The cluster health request
|
* @return The cluster health request
|
||||||
* @see org.elasticsearch.client.ClusterAdminClient#health(org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest)
|
* @see org.elasticsearch.client.ClusterAdminClient#health(org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest)
|
||||||
*/
|
*/
|
||||||
public static ClusterHealthRequest clusterHealth(String... indices) {
|
public static ClusterHealthRequest clusterHealthRequest(String... indices) {
|
||||||
return new ClusterHealthRequest(indices);
|
return new ClusterHealthRequest(indices);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -293,7 +304,7 @@ public class Requests {
|
|||||||
* @return The nodes info request
|
* @return The nodes info request
|
||||||
* @see org.elasticsearch.client.ClusterAdminClient#nodesInfo(org.elasticsearch.action.admin.cluster.node.info.NodesInfoRequest)
|
* @see org.elasticsearch.client.ClusterAdminClient#nodesInfo(org.elasticsearch.action.admin.cluster.node.info.NodesInfoRequest)
|
||||||
*/
|
*/
|
||||||
public static NodesInfoRequest nodesInfo() {
|
public static NodesInfoRequest nodesInfoRequest() {
|
||||||
return new NodesInfoRequest();
|
return new NodesInfoRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -304,7 +315,7 @@ public class Requests {
|
|||||||
* @return The nodes info request
|
* @return The nodes info request
|
||||||
* @see org.elasticsearch.client.ClusterAdminClient#nodesStats(org.elasticsearch.action.admin.cluster.node.stats.NodesStatsRequest)
|
* @see org.elasticsearch.client.ClusterAdminClient#nodesStats(org.elasticsearch.action.admin.cluster.node.stats.NodesStatsRequest)
|
||||||
*/
|
*/
|
||||||
public static NodesInfoRequest nodesInfo(String... nodesIds) {
|
public static NodesInfoRequest nodesInfoRequest(String... nodesIds) {
|
||||||
return new NodesInfoRequest(nodesIds);
|
return new NodesInfoRequest(nodesIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -315,14 +326,14 @@ public class Requests {
|
|||||||
* @return The nodes info request
|
* @return The nodes info request
|
||||||
* @see org.elasticsearch.client.ClusterAdminClient#nodesStats(org.elasticsearch.action.admin.cluster.node.stats.NodesStatsRequest)
|
* @see org.elasticsearch.client.ClusterAdminClient#nodesStats(org.elasticsearch.action.admin.cluster.node.stats.NodesStatsRequest)
|
||||||
*/
|
*/
|
||||||
public static NodesStatsRequest nodesStats(String... nodesIds) {
|
public static NodesStatsRequest nodesStatsRequest(String... nodesIds) {
|
||||||
return new NodesStatsRequest(nodesIds);
|
return new NodesStatsRequest(nodesIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shuts down all nodes in the cluster.
|
* Shuts down all nodes in the cluster.
|
||||||
*/
|
*/
|
||||||
public static NodesShutdownRequest nodesShutdown() {
|
public static NodesShutdownRequest nodesShutdownRequest() {
|
||||||
return new NodesShutdownRequest();
|
return new NodesShutdownRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -333,14 +344,14 @@ public class Requests {
|
|||||||
* @return The nodes info request
|
* @return The nodes info request
|
||||||
* @see org.elasticsearch.client.ClusterAdminClient#nodesShutdown(org.elasticsearch.action.admin.cluster.node.shutdown.NodesShutdownRequest)
|
* @see org.elasticsearch.client.ClusterAdminClient#nodesShutdown(org.elasticsearch.action.admin.cluster.node.shutdown.NodesShutdownRequest)
|
||||||
*/
|
*/
|
||||||
public static NodesShutdownRequest nodesShutdown(String... nodesIds) {
|
public static NodesShutdownRequest nodesShutdownRequest(String... nodesIds) {
|
||||||
return new NodesShutdownRequest(nodesIds);
|
return new NodesShutdownRequest(nodesIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Restarts all nodes in the cluster.
|
* Restarts all nodes in the cluster.
|
||||||
*/
|
*/
|
||||||
public static NodesRestartRequest nodesRestart() {
|
public static NodesRestartRequest nodesRestartRequest() {
|
||||||
return new NodesRestartRequest();
|
return new NodesRestartRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -351,7 +362,7 @@ public class Requests {
|
|||||||
* @return The nodes info request
|
* @return The nodes info request
|
||||||
* @see org.elasticsearch.client.ClusterAdminClient#nodesRestart(org.elasticsearch.action.admin.cluster.node.restart.NodesRestartRequest)
|
* @see org.elasticsearch.client.ClusterAdminClient#nodesRestart(org.elasticsearch.action.admin.cluster.node.restart.NodesRestartRequest)
|
||||||
*/
|
*/
|
||||||
public static NodesRestartRequest nodesRestart(String... nodesIds) {
|
public static NodesRestartRequest nodesRestartRequest(String... nodesIds) {
|
||||||
return new NodesRestartRequest(nodesIds);
|
return new NodesRestartRequest(nodesIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,80 @@
|
|||||||
|
/*
|
||||||
|
* Licensed to Elastic Search and Shay Banon under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. Elastic Search licenses this
|
||||||
|
* file to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.client.action.admin.indices.settings;
|
||||||
|
|
||||||
|
import org.elasticsearch.action.ActionListener;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsRequest;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsResponse;
|
||||||
|
import org.elasticsearch.client.IndicesAdminClient;
|
||||||
|
import org.elasticsearch.client.action.admin.indices.support.BaseIndicesRequestBuilder;
|
||||||
|
import org.elasticsearch.common.settings.Settings;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kimchy (shay.banon)
|
||||||
|
*/
|
||||||
|
public class UpdateSettingsRequestBuilder extends BaseIndicesRequestBuilder<UpdateSettingsRequest, UpdateSettingsResponse> {
|
||||||
|
|
||||||
|
public UpdateSettingsRequestBuilder(IndicesAdminClient indicesClient, String... indices) {
|
||||||
|
super(indicesClient, new UpdateSettingsRequest(indices));
|
||||||
|
}
|
||||||
|
|
||||||
|
public UpdateSettingsRequestBuilder setIndices(String... indices) {
|
||||||
|
request.indices(indices);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The settings update.
|
||||||
|
*/
|
||||||
|
public UpdateSettingsRequestBuilder setSettings(Settings settings) {
|
||||||
|
request.settings(settings);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The settings to update.
|
||||||
|
*/
|
||||||
|
public UpdateSettingsRequestBuilder setSettings(Settings.Builder settings) {
|
||||||
|
request.settings(settings);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The settings to update (either json/yaml/properties format)
|
||||||
|
*/
|
||||||
|
public UpdateSettingsRequestBuilder setSettings(String source) {
|
||||||
|
request.settings(source);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The settings to update (either json/yaml/properties format)
|
||||||
|
*/
|
||||||
|
public UpdateSettingsRequestBuilder setSettings(Map<String, Object> source) {
|
||||||
|
request.settings(source);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override protected void doExecute(ActionListener<UpdateSettingsResponse> listener) {
|
||||||
|
client.updateSettings(request, listener);
|
||||||
|
}
|
||||||
|
}
|
@ -48,6 +48,9 @@ import org.elasticsearch.action.admin.indices.optimize.TransportOptimizeAction;
|
|||||||
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
|
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
|
||||||
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
|
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
|
||||||
import org.elasticsearch.action.admin.indices.refresh.TransportRefreshAction;
|
import org.elasticsearch.action.admin.indices.refresh.TransportRefreshAction;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.TransportUpdateSettingsAction;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsRequest;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsResponse;
|
||||||
import org.elasticsearch.action.admin.indices.status.IndicesStatusRequest;
|
import org.elasticsearch.action.admin.indices.status.IndicesStatusRequest;
|
||||||
import org.elasticsearch.action.admin.indices.status.IndicesStatusResponse;
|
import org.elasticsearch.action.admin.indices.status.IndicesStatusResponse;
|
||||||
import org.elasticsearch.action.admin.indices.status.TransportIndicesStatusAction;
|
import org.elasticsearch.action.admin.indices.status.TransportIndicesStatusAction;
|
||||||
@ -84,11 +87,14 @@ public class NodeIndicesAdminClient extends AbstractIndicesAdminClient implement
|
|||||||
|
|
||||||
private final TransportClearIndicesCacheAction clearIndicesCacheAction;
|
private final TransportClearIndicesCacheAction clearIndicesCacheAction;
|
||||||
|
|
||||||
|
private final TransportUpdateSettingsAction updateSettingsAction;
|
||||||
|
|
||||||
@Inject public NodeIndicesAdminClient(Settings settings, ThreadPool threadPool, TransportIndicesStatusAction indicesStatusAction,
|
@Inject public NodeIndicesAdminClient(Settings settings, ThreadPool threadPool, TransportIndicesStatusAction indicesStatusAction,
|
||||||
TransportCreateIndexAction createIndexAction, TransportDeleteIndexAction deleteIndexAction,
|
TransportCreateIndexAction createIndexAction, TransportDeleteIndexAction deleteIndexAction,
|
||||||
TransportRefreshAction refreshAction, TransportFlushAction flushAction, TransportOptimizeAction optimizeAction,
|
TransportRefreshAction refreshAction, TransportFlushAction flushAction, TransportOptimizeAction optimizeAction,
|
||||||
TransportPutMappingAction putMappingAction, TransportGatewaySnapshotAction gatewaySnapshotAction,
|
TransportPutMappingAction putMappingAction, TransportGatewaySnapshotAction gatewaySnapshotAction,
|
||||||
TransportIndicesAliasesAction indicesAliasesAction, TransportClearIndicesCacheAction clearIndicesCacheAction) {
|
TransportIndicesAliasesAction indicesAliasesAction, TransportClearIndicesCacheAction clearIndicesCacheAction,
|
||||||
|
TransportUpdateSettingsAction updateSettingsAction) {
|
||||||
this.threadPool = threadPool;
|
this.threadPool = threadPool;
|
||||||
this.indicesStatusAction = indicesStatusAction;
|
this.indicesStatusAction = indicesStatusAction;
|
||||||
this.createIndexAction = createIndexAction;
|
this.createIndexAction = createIndexAction;
|
||||||
@ -100,6 +106,7 @@ public class NodeIndicesAdminClient extends AbstractIndicesAdminClient implement
|
|||||||
this.gatewaySnapshotAction = gatewaySnapshotAction;
|
this.gatewaySnapshotAction = gatewaySnapshotAction;
|
||||||
this.indicesAliasesAction = indicesAliasesAction;
|
this.indicesAliasesAction = indicesAliasesAction;
|
||||||
this.clearIndicesCacheAction = clearIndicesCacheAction;
|
this.clearIndicesCacheAction = clearIndicesCacheAction;
|
||||||
|
this.updateSettingsAction = updateSettingsAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public ThreadPool threadPool() {
|
@Override public ThreadPool threadPool() {
|
||||||
@ -185,4 +192,12 @@ public class NodeIndicesAdminClient extends AbstractIndicesAdminClient implement
|
|||||||
@Override public void clearCache(ClearIndicesCacheRequest request, ActionListener<ClearIndicesCacheResponse> listener) {
|
@Override public void clearCache(ClearIndicesCacheRequest request, ActionListener<ClearIndicesCacheResponse> listener) {
|
||||||
clearIndicesCacheAction.execute(request, listener);
|
clearIndicesCacheAction.execute(request, listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override public ActionFuture<UpdateSettingsResponse> updateSettings(UpdateSettingsRequest request) {
|
||||||
|
return updateSettingsAction.execute(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void updateSettings(UpdateSettingsRequest request, ActionListener<UpdateSettingsResponse> listener) {
|
||||||
|
updateSettingsAction.execute(request, listener);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,7 @@ import org.elasticsearch.client.action.admin.indices.gateway.snapshot.GatewaySna
|
|||||||
import org.elasticsearch.client.action.admin.indices.mapping.put.PutMappingRequestBuilder;
|
import org.elasticsearch.client.action.admin.indices.mapping.put.PutMappingRequestBuilder;
|
||||||
import org.elasticsearch.client.action.admin.indices.optimize.OptimizeRequestBuilder;
|
import org.elasticsearch.client.action.admin.indices.optimize.OptimizeRequestBuilder;
|
||||||
import org.elasticsearch.client.action.admin.indices.refresh.RefreshRequestBuilder;
|
import org.elasticsearch.client.action.admin.indices.refresh.RefreshRequestBuilder;
|
||||||
|
import org.elasticsearch.client.action.admin.indices.settings.UpdateSettingsRequestBuilder;
|
||||||
import org.elasticsearch.client.action.admin.indices.status.IndicesStatusRequestBuilder;
|
import org.elasticsearch.client.action.admin.indices.status.IndicesStatusRequestBuilder;
|
||||||
import org.elasticsearch.client.internal.InternalIndicesAdminClient;
|
import org.elasticsearch.client.internal.InternalIndicesAdminClient;
|
||||||
|
|
||||||
@ -75,4 +76,8 @@ public abstract class AbstractIndicesAdminClient implements InternalIndicesAdmin
|
|||||||
@Override public IndicesStatusRequestBuilder prepareStatus(String... indices) {
|
@Override public IndicesStatusRequestBuilder prepareStatus(String... indices) {
|
||||||
return new IndicesStatusRequestBuilder(this).setIndices(indices);
|
return new IndicesStatusRequestBuilder(this).setIndices(indices);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override public UpdateSettingsRequestBuilder prepareUpdateSettings(String... indices) {
|
||||||
|
return new UpdateSettingsRequestBuilder(this).setIndices(indices);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -183,7 +183,7 @@ public class TransportClientNodesService extends AbstractComponent implements Cl
|
|||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
try {
|
try {
|
||||||
transportService.connectToNode(listedNode); // make sure we are connected to it
|
transportService.connectToNode(listedNode); // make sure we are connected to it
|
||||||
transportService.sendRequest(listedNode, TransportActions.Admin.Cluster.Node.INFO, Requests.nodesInfo("_local"), new BaseTransportResponseHandler<NodesInfoResponse>() {
|
transportService.sendRequest(listedNode, TransportActions.Admin.Cluster.Node.INFO, Requests.nodesInfoRequest("_local"), new BaseTransportResponseHandler<NodesInfoResponse>() {
|
||||||
|
|
||||||
@Override public NodesInfoResponse newInstance() {
|
@Override public NodesInfoResponse newInstance() {
|
||||||
return new NodesInfoResponse();
|
return new NodesInfoResponse();
|
||||||
|
@ -37,6 +37,7 @@ import org.elasticsearch.client.transport.action.admin.indices.gateway.snapshot.
|
|||||||
import org.elasticsearch.client.transport.action.admin.indices.mapping.create.ClientTransportPutMappingAction;
|
import org.elasticsearch.client.transport.action.admin.indices.mapping.create.ClientTransportPutMappingAction;
|
||||||
import org.elasticsearch.client.transport.action.admin.indices.optimize.ClientTransportOptimizeAction;
|
import org.elasticsearch.client.transport.action.admin.indices.optimize.ClientTransportOptimizeAction;
|
||||||
import org.elasticsearch.client.transport.action.admin.indices.refresh.ClientTransportRefreshAction;
|
import org.elasticsearch.client.transport.action.admin.indices.refresh.ClientTransportRefreshAction;
|
||||||
|
import org.elasticsearch.client.transport.action.admin.indices.settings.ClientTransportUpdateSettingsAction;
|
||||||
import org.elasticsearch.client.transport.action.admin.indices.status.ClientTransportIndicesStatusAction;
|
import org.elasticsearch.client.transport.action.admin.indices.status.ClientTransportIndicesStatusAction;
|
||||||
import org.elasticsearch.client.transport.action.count.ClientTransportCountAction;
|
import org.elasticsearch.client.transport.action.count.ClientTransportCountAction;
|
||||||
import org.elasticsearch.client.transport.action.delete.ClientTransportDeleteAction;
|
import org.elasticsearch.client.transport.action.delete.ClientTransportDeleteAction;
|
||||||
@ -71,6 +72,7 @@ public class ClientTransportActionModule extends AbstractModule {
|
|||||||
bind(ClientTransportGatewaySnapshotAction.class).asEagerSingleton();
|
bind(ClientTransportGatewaySnapshotAction.class).asEagerSingleton();
|
||||||
bind(ClientTransportIndicesAliasesAction.class).asEagerSingleton();
|
bind(ClientTransportIndicesAliasesAction.class).asEagerSingleton();
|
||||||
bind(ClientTransportClearIndicesCacheAction.class).asEagerSingleton();
|
bind(ClientTransportClearIndicesCacheAction.class).asEagerSingleton();
|
||||||
|
bind(ClientTransportUpdateSettingsAction.class).asEagerSingleton();
|
||||||
|
|
||||||
bind(ClientTransportNodesInfoAction.class).asEagerSingleton();
|
bind(ClientTransportNodesInfoAction.class).asEagerSingleton();
|
||||||
bind(ClientTransportNodesStatsAction.class).asEagerSingleton();
|
bind(ClientTransportNodesStatsAction.class).asEagerSingleton();
|
||||||
|
@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Licensed to Elastic Search and Shay Banon under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. Elastic Search licenses this
|
||||||
|
* file to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.client.transport.action.admin.indices.settings;
|
||||||
|
|
||||||
|
import org.elasticsearch.action.TransportActions;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsRequest;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsResponse;
|
||||||
|
import org.elasticsearch.client.transport.action.support.BaseClientTransportAction;
|
||||||
|
import org.elasticsearch.common.inject.Inject;
|
||||||
|
import org.elasticsearch.common.settings.Settings;
|
||||||
|
import org.elasticsearch.transport.TransportService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kimchy (shay.banon)
|
||||||
|
*/
|
||||||
|
public class ClientTransportUpdateSettingsAction extends BaseClientTransportAction<UpdateSettingsRequest, UpdateSettingsResponse> {
|
||||||
|
|
||||||
|
@Inject public ClientTransportUpdateSettingsAction(Settings settings, TransportService transportService) {
|
||||||
|
super(settings, transportService, UpdateSettingsResponse.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override protected String action() {
|
||||||
|
return TransportActions.Admin.Indices.UPDATE_SETTINGS;
|
||||||
|
}
|
||||||
|
}
|
@ -40,6 +40,8 @@ import org.elasticsearch.action.admin.indices.optimize.OptimizeRequest;
|
|||||||
import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse;
|
import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse;
|
||||||
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
|
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
|
||||||
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
|
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsRequest;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsResponse;
|
||||||
import org.elasticsearch.action.admin.indices.status.IndicesStatusRequest;
|
import org.elasticsearch.action.admin.indices.status.IndicesStatusRequest;
|
||||||
import org.elasticsearch.action.admin.indices.status.IndicesStatusResponse;
|
import org.elasticsearch.action.admin.indices.status.IndicesStatusResponse;
|
||||||
import org.elasticsearch.client.IndicesAdminClient;
|
import org.elasticsearch.client.IndicesAdminClient;
|
||||||
@ -54,6 +56,7 @@ import org.elasticsearch.client.transport.action.admin.indices.gateway.snapshot.
|
|||||||
import org.elasticsearch.client.transport.action.admin.indices.mapping.create.ClientTransportPutMappingAction;
|
import org.elasticsearch.client.transport.action.admin.indices.mapping.create.ClientTransportPutMappingAction;
|
||||||
import org.elasticsearch.client.transport.action.admin.indices.optimize.ClientTransportOptimizeAction;
|
import org.elasticsearch.client.transport.action.admin.indices.optimize.ClientTransportOptimizeAction;
|
||||||
import org.elasticsearch.client.transport.action.admin.indices.refresh.ClientTransportRefreshAction;
|
import org.elasticsearch.client.transport.action.admin.indices.refresh.ClientTransportRefreshAction;
|
||||||
|
import org.elasticsearch.client.transport.action.admin.indices.settings.ClientTransportUpdateSettingsAction;
|
||||||
import org.elasticsearch.client.transport.action.admin.indices.status.ClientTransportIndicesStatusAction;
|
import org.elasticsearch.client.transport.action.admin.indices.status.ClientTransportIndicesStatusAction;
|
||||||
import org.elasticsearch.cluster.node.DiscoveryNode;
|
import org.elasticsearch.cluster.node.DiscoveryNode;
|
||||||
import org.elasticsearch.common.inject.Inject;
|
import org.elasticsearch.common.inject.Inject;
|
||||||
@ -89,12 +92,15 @@ public class InternalTransportIndicesAdminClient extends AbstractIndicesAdminCli
|
|||||||
|
|
||||||
private final ClientTransportClearIndicesCacheAction clearIndicesCacheAction;
|
private final ClientTransportClearIndicesCacheAction clearIndicesCacheAction;
|
||||||
|
|
||||||
|
private final ClientTransportUpdateSettingsAction updateSettingsAction;
|
||||||
|
|
||||||
@Inject public InternalTransportIndicesAdminClient(Settings settings, TransportClientNodesService nodesService, ThreadPool threadPool,
|
@Inject public InternalTransportIndicesAdminClient(Settings settings, TransportClientNodesService nodesService, ThreadPool threadPool,
|
||||||
ClientTransportIndicesStatusAction indicesStatusAction,
|
ClientTransportIndicesStatusAction indicesStatusAction,
|
||||||
ClientTransportCreateIndexAction createIndexAction, ClientTransportDeleteIndexAction deleteIndexAction,
|
ClientTransportCreateIndexAction createIndexAction, ClientTransportDeleteIndexAction deleteIndexAction,
|
||||||
ClientTransportRefreshAction refreshAction, ClientTransportFlushAction flushAction, ClientTransportOptimizeAction optimizeAction,
|
ClientTransportRefreshAction refreshAction, ClientTransportFlushAction flushAction, ClientTransportOptimizeAction optimizeAction,
|
||||||
ClientTransportPutMappingAction putMappingAction, ClientTransportGatewaySnapshotAction gatewaySnapshotAction,
|
ClientTransportPutMappingAction putMappingAction, ClientTransportGatewaySnapshotAction gatewaySnapshotAction,
|
||||||
ClientTransportIndicesAliasesAction indicesAliasesAction, ClientTransportClearIndicesCacheAction clearIndicesCacheAction) {
|
ClientTransportIndicesAliasesAction indicesAliasesAction, ClientTransportClearIndicesCacheAction clearIndicesCacheAction,
|
||||||
|
ClientTransportUpdateSettingsAction updateSettingsAction) {
|
||||||
this.nodesService = nodesService;
|
this.nodesService = nodesService;
|
||||||
this.threadPool = threadPool;
|
this.threadPool = threadPool;
|
||||||
this.indicesStatusAction = indicesStatusAction;
|
this.indicesStatusAction = indicesStatusAction;
|
||||||
@ -107,6 +113,7 @@ public class InternalTransportIndicesAdminClient extends AbstractIndicesAdminCli
|
|||||||
this.gatewaySnapshotAction = gatewaySnapshotAction;
|
this.gatewaySnapshotAction = gatewaySnapshotAction;
|
||||||
this.indicesAliasesAction = indicesAliasesAction;
|
this.indicesAliasesAction = indicesAliasesAction;
|
||||||
this.clearIndicesCacheAction = clearIndicesCacheAction;
|
this.clearIndicesCacheAction = clearIndicesCacheAction;
|
||||||
|
this.updateSettingsAction = updateSettingsAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public ThreadPool threadPool() {
|
@Override public ThreadPool threadPool() {
|
||||||
@ -282,4 +289,21 @@ public class InternalTransportIndicesAdminClient extends AbstractIndicesAdminCli
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override public ActionFuture<UpdateSettingsResponse> updateSettings(final UpdateSettingsRequest request) {
|
||||||
|
return nodesService.execute(new TransportClientNodesService.NodeCallback<org.elasticsearch.action.ActionFuture<UpdateSettingsResponse>>() {
|
||||||
|
@Override public ActionFuture<UpdateSettingsResponse> doWithNode(DiscoveryNode node) throws ElasticSearchException {
|
||||||
|
return updateSettingsAction.execute(node, request);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void updateSettings(final UpdateSettingsRequest request, final ActionListener<UpdateSettingsResponse> listener) {
|
||||||
|
nodesService.execute(new TransportClientNodesService.NodeCallback<Void>() {
|
||||||
|
@Override public Void doWithNode(DiscoveryNode node) throws ElasticSearchException {
|
||||||
|
updateSettingsAction.execute(node, request, listener);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,10 +24,7 @@ import org.elasticsearch.cluster.action.index.NodeIndexCreatedAction;
|
|||||||
import org.elasticsearch.cluster.action.index.NodeIndexDeletedAction;
|
import org.elasticsearch.cluster.action.index.NodeIndexDeletedAction;
|
||||||
import org.elasticsearch.cluster.action.index.NodeMappingCreatedAction;
|
import org.elasticsearch.cluster.action.index.NodeMappingCreatedAction;
|
||||||
import org.elasticsearch.cluster.action.shard.ShardStateAction;
|
import org.elasticsearch.cluster.action.shard.ShardStateAction;
|
||||||
import org.elasticsearch.cluster.metadata.MetaDataCreateIndexService;
|
import org.elasticsearch.cluster.metadata.*;
|
||||||
import org.elasticsearch.cluster.metadata.MetaDataDeleteIndexService;
|
|
||||||
import org.elasticsearch.cluster.metadata.MetaDataIndexAliasesService;
|
|
||||||
import org.elasticsearch.cluster.metadata.MetaDataMappingService;
|
|
||||||
import org.elasticsearch.cluster.routing.RoutingService;
|
import org.elasticsearch.cluster.routing.RoutingService;
|
||||||
import org.elasticsearch.cluster.routing.strategy.PreferUnallocatedShardUnassignedStrategy;
|
import org.elasticsearch.cluster.routing.strategy.PreferUnallocatedShardUnassignedStrategy;
|
||||||
import org.elasticsearch.cluster.routing.strategy.ShardsRoutingStrategy;
|
import org.elasticsearch.cluster.routing.strategy.ShardsRoutingStrategy;
|
||||||
@ -56,6 +53,7 @@ public class ClusterModule extends AbstractModule {
|
|||||||
bind(MetaDataDeleteIndexService.class).asEagerSingleton();
|
bind(MetaDataDeleteIndexService.class).asEagerSingleton();
|
||||||
bind(MetaDataMappingService.class).asEagerSingleton();
|
bind(MetaDataMappingService.class).asEagerSingleton();
|
||||||
bind(MetaDataIndexAliasesService.class).asEagerSingleton();
|
bind(MetaDataIndexAliasesService.class).asEagerSingleton();
|
||||||
|
bind(MetaDataUpdateSettingsService.class).asEagerSingleton();
|
||||||
|
|
||||||
bind(RoutingService.class).asEagerSingleton();
|
bind(RoutingService.class).asEagerSingleton();
|
||||||
|
|
||||||
|
@ -0,0 +1,84 @@
|
|||||||
|
/*
|
||||||
|
* Licensed to Elastic Search and Shay Banon under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. Elastic Search licenses this
|
||||||
|
* file to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.cluster.metadata;
|
||||||
|
|
||||||
|
import org.elasticsearch.ElasticSearchIllegalArgumentException;
|
||||||
|
import org.elasticsearch.cluster.ClusterService;
|
||||||
|
import org.elasticsearch.cluster.ClusterState;
|
||||||
|
import org.elasticsearch.cluster.ClusterStateUpdateTask;
|
||||||
|
import org.elasticsearch.cluster.routing.RoutingTable;
|
||||||
|
import org.elasticsearch.common.component.AbstractComponent;
|
||||||
|
import org.elasticsearch.common.inject.Inject;
|
||||||
|
import org.elasticsearch.common.settings.Settings;
|
||||||
|
|
||||||
|
import static org.elasticsearch.cluster.routing.RoutingTable.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kimchy (shay.banon)
|
||||||
|
*/
|
||||||
|
public class MetaDataUpdateSettingsService extends AbstractComponent {
|
||||||
|
|
||||||
|
private final ClusterService clusterService;
|
||||||
|
|
||||||
|
@Inject public MetaDataUpdateSettingsService(Settings settings, ClusterService clusterService) {
|
||||||
|
super(settings);
|
||||||
|
this.clusterService = clusterService;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateSettings(final Settings settings, final String[] indices, final Listener listener) {
|
||||||
|
clusterService.submitStateUpdateTask("update-settings", new ClusterStateUpdateTask() {
|
||||||
|
@Override public ClusterState execute(ClusterState currentState) {
|
||||||
|
try {
|
||||||
|
boolean changed = false;
|
||||||
|
String[] actualIndices = currentState.metaData().concreteIndices(indices);
|
||||||
|
RoutingTable.Builder routingTableBuilder = newRoutingTableBuilder().routingTable(currentState.routingTable());
|
||||||
|
MetaData.Builder metaDataBuilder = MetaData.newMetaDataBuilder().metaData(currentState.metaData());
|
||||||
|
|
||||||
|
int updatedNumberOfReplicas = settings.getAsInt(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, -1);
|
||||||
|
if (updatedNumberOfReplicas != -1) {
|
||||||
|
routingTableBuilder.updateNumberOfReplicas(updatedNumberOfReplicas, actualIndices);
|
||||||
|
metaDataBuilder.updateNumberOfReplicas(updatedNumberOfReplicas, actualIndices);
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!changed) {
|
||||||
|
listener.onFailure(new ElasticSearchIllegalArgumentException("No settings applied"));
|
||||||
|
return currentState;
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.info("Updating number_of_replicas to [{}] for indices {}", updatedNumberOfReplicas, actualIndices);
|
||||||
|
|
||||||
|
listener.onSuccess();
|
||||||
|
|
||||||
|
return ClusterState.builder().state(currentState).metaData(metaDataBuilder).routingTable(routingTableBuilder).build();
|
||||||
|
} catch (Exception e) {
|
||||||
|
listener.onFailure(e);
|
||||||
|
return currentState;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public static interface Listener {
|
||||||
|
void onSuccess();
|
||||||
|
|
||||||
|
void onFailure(Throwable t);
|
||||||
|
}
|
||||||
|
}
|
@ -39,6 +39,7 @@ import org.elasticsearch.rest.action.admin.indices.mapping.get.RestGetMappingAct
|
|||||||
import org.elasticsearch.rest.action.admin.indices.mapping.put.RestPutMappingAction;
|
import org.elasticsearch.rest.action.admin.indices.mapping.put.RestPutMappingAction;
|
||||||
import org.elasticsearch.rest.action.admin.indices.optimize.RestOptimizeAction;
|
import org.elasticsearch.rest.action.admin.indices.optimize.RestOptimizeAction;
|
||||||
import org.elasticsearch.rest.action.admin.indices.refresh.RestRefreshAction;
|
import org.elasticsearch.rest.action.admin.indices.refresh.RestRefreshAction;
|
||||||
|
import org.elasticsearch.rest.action.admin.indices.settings.RestUpdateSettingsAction;
|
||||||
import org.elasticsearch.rest.action.admin.indices.status.RestIndicesStatusAction;
|
import org.elasticsearch.rest.action.admin.indices.status.RestIndicesStatusAction;
|
||||||
import org.elasticsearch.rest.action.count.RestCountAction;
|
import org.elasticsearch.rest.action.count.RestCountAction;
|
||||||
import org.elasticsearch.rest.action.delete.RestDeleteAction;
|
import org.elasticsearch.rest.action.delete.RestDeleteAction;
|
||||||
@ -73,6 +74,7 @@ public class RestActionModule extends AbstractModule {
|
|||||||
bind(RestIndicesAliasesAction.class).asEagerSingleton();
|
bind(RestIndicesAliasesAction.class).asEagerSingleton();
|
||||||
bind(RestCreateIndexAction.class).asEagerSingleton();
|
bind(RestCreateIndexAction.class).asEagerSingleton();
|
||||||
bind(RestDeleteIndexAction.class).asEagerSingleton();
|
bind(RestDeleteIndexAction.class).asEagerSingleton();
|
||||||
|
bind(RestUpdateSettingsAction.class).asEagerSingleton();
|
||||||
|
|
||||||
bind(RestPutMappingAction.class).asEagerSingleton();
|
bind(RestPutMappingAction.class).asEagerSingleton();
|
||||||
bind(RestGetMappingAction.class).asEagerSingleton();
|
bind(RestGetMappingAction.class).asEagerSingleton();
|
||||||
|
@ -47,7 +47,7 @@ public class RestClusterHealthAction extends BaseRestHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override public void handleRequest(final RestRequest request, final RestChannel channel) {
|
@Override public void handleRequest(final RestRequest request, final RestChannel channel) {
|
||||||
ClusterHealthRequest clusterHealthRequest = clusterHealth(RestActions.splitIndices(request.param("index")));
|
ClusterHealthRequest clusterHealthRequest = clusterHealthRequest(RestActions.splitIndices(request.param("index")));
|
||||||
int level = 0;
|
int level = 0;
|
||||||
try {
|
try {
|
||||||
clusterHealthRequest.timeout(request.paramAsTime("timeout", clusterHealthRequest.timeout()));
|
clusterHealthRequest.timeout(request.paramAsTime("timeout", clusterHealthRequest.timeout()));
|
||||||
|
@ -62,7 +62,7 @@ public class RestClusterStateAction extends BaseRestHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override public void handleRequest(final RestRequest request, final RestChannel channel) {
|
@Override public void handleRequest(final RestRequest request, final RestChannel channel) {
|
||||||
final ClusterStateRequest clusterStateRequest = Requests.clusterState();
|
final ClusterStateRequest clusterStateRequest = Requests.clusterStateRequest();
|
||||||
clusterStateRequest.filterNodes(request.paramAsBoolean("filter_nodes", clusterStateRequest.filterNodes()));
|
clusterStateRequest.filterNodes(request.paramAsBoolean("filter_nodes", clusterStateRequest.filterNodes()));
|
||||||
clusterStateRequest.filterRoutingTable(request.paramAsBoolean("filter_routing_table", clusterStateRequest.filterRoutingTable()));
|
clusterStateRequest.filterRoutingTable(request.paramAsBoolean("filter_routing_table", clusterStateRequest.filterRoutingTable()));
|
||||||
clusterStateRequest.filterMetaData(request.paramAsBoolean("filter_metadata", clusterStateRequest.filterMetaData()));
|
clusterStateRequest.filterMetaData(request.paramAsBoolean("filter_metadata", clusterStateRequest.filterMetaData()));
|
||||||
|
@ -59,7 +59,7 @@ public class RestGetMappingAction extends BaseRestHandler {
|
|||||||
final String[] indices = splitIndices(request.param("index"));
|
final String[] indices = splitIndices(request.param("index"));
|
||||||
final Set<String> types = ImmutableSet.copyOf(splitTypes(request.param("type")));
|
final Set<String> types = ImmutableSet.copyOf(splitTypes(request.param("type")));
|
||||||
|
|
||||||
ClusterStateRequest clusterStateRequest = Requests.clusterState()
|
ClusterStateRequest clusterStateRequest = Requests.clusterStateRequest()
|
||||||
.filterRoutingTable(true)
|
.filterRoutingTable(true)
|
||||||
.filterNodes(true)
|
.filterNodes(true)
|
||||||
.filteredIndices(indices);
|
.filteredIndices(indices);
|
||||||
|
@ -0,0 +1,96 @@
|
|||||||
|
/*
|
||||||
|
* Licensed to Elastic Search and Shay Banon under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. Elastic Search licenses this
|
||||||
|
* file to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.rest.action.admin.indices.settings;
|
||||||
|
|
||||||
|
import org.elasticsearch.action.ActionListener;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsRequest;
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsResponse;
|
||||||
|
import org.elasticsearch.client.Client;
|
||||||
|
import org.elasticsearch.common.Strings;
|
||||||
|
import org.elasticsearch.common.inject.Inject;
|
||||||
|
import org.elasticsearch.common.settings.ImmutableSettings;
|
||||||
|
import org.elasticsearch.common.settings.Settings;
|
||||||
|
import org.elasticsearch.common.settings.SettingsException;
|
||||||
|
import org.elasticsearch.common.xcontent.builder.XContentBuilder;
|
||||||
|
import org.elasticsearch.rest.*;
|
||||||
|
import org.elasticsearch.rest.action.support.RestXContentBuilder;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static org.elasticsearch.client.Requests.*;
|
||||||
|
import static org.elasticsearch.rest.RestResponse.Status.*;
|
||||||
|
import static org.elasticsearch.rest.action.support.RestActions.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kimchy (shay.banon)
|
||||||
|
*/
|
||||||
|
public class RestUpdateSettingsAction extends BaseRestHandler {
|
||||||
|
|
||||||
|
@Inject public RestUpdateSettingsAction(Settings settings, Client client, RestController controller) {
|
||||||
|
super(settings, client);
|
||||||
|
controller.registerHandler(RestRequest.Method.PUT, "/{index}/_settings", this);
|
||||||
|
controller.registerHandler(RestRequest.Method.PUT, "/_settings", this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void handleRequest(final RestRequest request, final RestChannel channel) {
|
||||||
|
UpdateSettingsRequest updateSettingsRequest = updateSettingsRequest(splitIndices(request.param("index")));
|
||||||
|
ImmutableSettings.Builder updateSettings = ImmutableSettings.settingsBuilder();
|
||||||
|
String bodySettings = request.contentAsString();
|
||||||
|
if (Strings.hasText(bodySettings)) {
|
||||||
|
try {
|
||||||
|
updateSettings.put(ImmutableSettings.settingsBuilder().loadFromSource(bodySettings).build());
|
||||||
|
} catch (Exception e) {
|
||||||
|
try {
|
||||||
|
channel.sendResponse(new XContentThrowableRestResponse(request, BAD_REQUEST, new SettingsException("Failed to parse index settings", e)));
|
||||||
|
} catch (IOException e1) {
|
||||||
|
logger.warn("Failed to send response", e1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (Map.Entry<String, String> entry : request.params().entrySet()) {
|
||||||
|
updateSettings.put(entry.getKey(), entry.getValue());
|
||||||
|
}
|
||||||
|
updateSettingsRequest.settings(updateSettings);
|
||||||
|
|
||||||
|
client.admin().indices().updateSettings(updateSettingsRequest, new ActionListener<UpdateSettingsResponse>() {
|
||||||
|
@Override public void onResponse(UpdateSettingsResponse updateSettingsResponse) {
|
||||||
|
try {
|
||||||
|
XContentBuilder builder = RestXContentBuilder.restContentBuilder(request);
|
||||||
|
builder.startObject()
|
||||||
|
.field("ok", true)
|
||||||
|
.endObject();
|
||||||
|
channel.sendResponse(new XContentRestResponse(request, OK, builder));
|
||||||
|
} catch (Exception e) {
|
||||||
|
onFailure(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void onFailure(Throwable e) {
|
||||||
|
try {
|
||||||
|
channel.sendResponse(new XContentThrowableRestResponse(request, e));
|
||||||
|
} catch (IOException e1) {
|
||||||
|
logger.error("Failed to send failure response", e1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -69,7 +69,7 @@ public class IndexAliasesTests extends AbstractNodesTests {
|
|||||||
client1.admin().indices().create(createIndexRequest("test")).actionGet();
|
client1.admin().indices().create(createIndexRequest("test")).actionGet();
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
ClusterHealthResponse clusterHealth = client1.admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
ClusterHealthResponse clusterHealth = client1.admin().cluster().health(clusterHealthRequest().waitForGreenStatus()).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
@ -94,7 +94,7 @@ public class IndexAliasesTests extends AbstractNodesTests {
|
|||||||
client1.admin().indices().create(createIndexRequest("test_x")).actionGet();
|
client1.admin().indices().create(createIndexRequest("test_x")).actionGet();
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client1.admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
clusterHealth = client1.admin().cluster().health(clusterHealthRequest().waitForGreenStatus()).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
|
@ -56,7 +56,7 @@ public class BroadcastActionsTests extends AbstractNodesTests {
|
|||||||
client("server1").admin().indices().prepareCreate("test").execute().actionGet(5000);
|
client("server1").admin().indices().prepareCreate("test").execute().actionGet(5000);
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForYellowStatus()).actionGet();
|
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealthRequest().waitForYellowStatus()).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
||||||
|
@ -97,7 +97,7 @@ public class DocumentActionsTests extends AbstractNodesTests {
|
|||||||
|
|
||||||
@Test public void testIndexActions() throws Exception {
|
@Test public void testIndexActions() throws Exception {
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
ClusterHealthResponse clusterHealth = client1.admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
ClusterHealthResponse clusterHealth = client1.admin().cluster().health(clusterHealthRequest().waitForGreenStatus()).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
@ -113,7 +113,7 @@ public class DocumentActionsTests extends AbstractNodesTests {
|
|||||||
assertThat(refreshResponse.failedShards(), equalTo(0));
|
assertThat(refreshResponse.failedShards(), equalTo(0));
|
||||||
|
|
||||||
logger.info("Clearing cache");
|
logger.info("Clearing cache");
|
||||||
ClearIndicesCacheResponse clearIndicesCacheResponse = client1.admin().indices().clearCache(clearIndicesCache("test")).actionGet();
|
ClearIndicesCacheResponse clearIndicesCacheResponse = client1.admin().indices().clearCache(clearIndicesCacheRequest("test")).actionGet();
|
||||||
assertThat(clearIndicesCacheResponse.successfulShards(), equalTo(10));
|
assertThat(clearIndicesCacheResponse.successfulShards(), equalTo(10));
|
||||||
assertThat(clearIndicesCacheResponse.failedShards(), equalTo(0));
|
assertThat(clearIndicesCacheResponse.failedShards(), equalTo(0));
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ public class MoreLikeThisActionTests extends AbstractNodesTests {
|
|||||||
client1.admin().indices().create(createIndexRequest("test")).actionGet();
|
client1.admin().indices().create(createIndexRequest("test")).actionGet();
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
ClusterHealthResponse clusterHealth = client1.admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
ClusterHealthResponse clusterHealth = client1.admin().cluster().health(clusterHealthRequest().waitForGreenStatus()).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
|
@ -69,7 +69,7 @@ public abstract class AbstractSimpleIndexGatewayTests extends AbstractNodesTests
|
|||||||
assertThat(putMappingResponse.acknowledged(), equalTo(true));
|
assertThat(putMappingResponse.acknowledged(), equalTo(true));
|
||||||
|
|
||||||
// verify that mapping is there
|
// verify that mapping is there
|
||||||
ClusterStateResponse clusterState = client("server1").admin().cluster().state(clusterState()).actionGet();
|
ClusterStateResponse clusterState = client("server1").admin().cluster().state(clusterStateRequest()).actionGet();
|
||||||
assertThat(clusterState.state().metaData().index("test").mapping("type1"), notNullValue());
|
assertThat(clusterState.state().metaData().index("test").mapping("type1"), notNullValue());
|
||||||
|
|
||||||
// create two and delete the first
|
// create two and delete the first
|
||||||
@ -93,13 +93,13 @@ public abstract class AbstractSimpleIndexGatewayTests extends AbstractNodesTests
|
|||||||
startNode("server1");
|
startNode("server1");
|
||||||
|
|
||||||
logger.info("Running Cluster Health (wait for the shards to startup)");
|
logger.info("Running Cluster Health (wait for the shards to startup)");
|
||||||
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealthRequest().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
||||||
|
|
||||||
// verify that mapping is there
|
// verify that mapping is there
|
||||||
clusterState = client("server1").admin().cluster().state(clusterState()).actionGet();
|
clusterState = client("server1").admin().cluster().state(clusterStateRequest()).actionGet();
|
||||||
assertThat(clusterState.state().metaData().index("test").mapping("type1"), notNullValue());
|
assertThat(clusterState.state().metaData().index("test").mapping("type1"), notNullValue());
|
||||||
|
|
||||||
logger.info("Getting #1, should not exists");
|
logger.info("Getting #1, should not exists");
|
||||||
@ -126,7 +126,7 @@ public abstract class AbstractSimpleIndexGatewayTests extends AbstractNodesTests
|
|||||||
startNode("server1");
|
startNode("server1");
|
||||||
|
|
||||||
logger.info("Running Cluster Health (wait for the shards to startup)");
|
logger.info("Running Cluster Health (wait for the shards to startup)");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealthRequest().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
||||||
@ -155,7 +155,7 @@ public abstract class AbstractSimpleIndexGatewayTests extends AbstractNodesTests
|
|||||||
startNode("server1");
|
startNode("server1");
|
||||||
|
|
||||||
logger.info("Running Cluster Health (wait for the shards to startup)");
|
logger.info("Running Cluster Health (wait for the shards to startup)");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealthRequest().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
||||||
|
@ -82,7 +82,7 @@ public class IndexLifecycleActionTests extends AbstractNodesTests {
|
|||||||
RoutingNode routingNodeEntry1 = clusterState1.readOnlyRoutingNodes().nodesToShards().get(clusterState1.nodes().localNodeId());
|
RoutingNode routingNodeEntry1 = clusterState1.readOnlyRoutingNodes().nodesToShards().get(clusterState1.nodes().localNodeId());
|
||||||
assertThat(routingNodeEntry1.numberOfShardsWithState(STARTED), equalTo(11));
|
assertThat(routingNodeEntry1.numberOfShardsWithState(STARTED), equalTo(11));
|
||||||
|
|
||||||
clusterState1 = client("server1").admin().cluster().state(clusterState()).actionGet().state();
|
clusterState1 = client("server1").admin().cluster().state(clusterStateRequest()).actionGet().state();
|
||||||
routingNodeEntry1 = clusterState1.readOnlyRoutingNodes().nodesToShards().get(clusterState1.nodes().localNodeId());
|
routingNodeEntry1 = clusterState1.readOnlyRoutingNodes().nodesToShards().get(clusterState1.nodes().localNodeId());
|
||||||
assertThat(routingNodeEntry1.numberOfShardsWithState(STARTED), equalTo(11));
|
assertThat(routingNodeEntry1.numberOfShardsWithState(STARTED), equalTo(11));
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ public class IndexLifecycleActionTests extends AbstractNodesTests {
|
|||||||
ClusterService clusterService2 = ((InternalNode) node("server2")).injector().getInstance(ClusterService.class);
|
ClusterService clusterService2 = ((InternalNode) node("server2")).injector().getInstance(ClusterService.class);
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus().waitForNodes("2")).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealthRequest().waitForGreenStatus().waitForNodes("2")).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
@ -116,7 +116,7 @@ public class IndexLifecycleActionTests extends AbstractNodesTests {
|
|||||||
ClusterService clusterService3 = ((InternalNode) node("server3")).injector().getInstance(ClusterService.class);
|
ClusterService clusterService3 = ((InternalNode) node("server3")).injector().getInstance(ClusterService.class);
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus().waitForNodes("3").waitForRelocatingShards(0)).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealthRequest().waitForGreenStatus().waitForNodes("3").waitForRelocatingShards(0)).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
@ -146,7 +146,7 @@ public class IndexLifecycleActionTests extends AbstractNodesTests {
|
|||||||
closeNode("server1");
|
closeNode("server1");
|
||||||
// verify health
|
// verify health
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client("server2").admin().cluster().health(clusterHealth().waitForGreenStatus().waitForRelocatingShards(0).waitForNodes("2")).actionGet();
|
clusterHealth = client("server2").admin().cluster().health(clusterHealthRequest().waitForGreenStatus().waitForRelocatingShards(0).waitForNodes("2")).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
@ -200,7 +200,7 @@ public class IndexLifecycleActionTests extends AbstractNodesTests {
|
|||||||
assertThat(createIndexResponse.acknowledged(), equalTo(true));
|
assertThat(createIndexResponse.acknowledged(), equalTo(true));
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealthRequest().waitForGreenStatus()).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
@ -218,7 +218,7 @@ public class IndexLifecycleActionTests extends AbstractNodesTests {
|
|||||||
Thread.sleep(200);
|
Thread.sleep(200);
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus().waitForRelocatingShards(0).waitForNodes("2")).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealthRequest().waitForGreenStatus().waitForRelocatingShards(0).waitForNodes("2")).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
@ -247,7 +247,7 @@ public class IndexLifecycleActionTests extends AbstractNodesTests {
|
|||||||
ClusterService clusterService3 = ((InternalNode) node("server3")).injector().getInstance(ClusterService.class);
|
ClusterService clusterService3 = ((InternalNode) node("server3")).injector().getInstance(ClusterService.class);
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus().waitForRelocatingShards(0).waitForNodes("3")).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealthRequest().waitForGreenStatus().waitForRelocatingShards(0).waitForNodes("3")).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
@ -277,7 +277,7 @@ public class IndexLifecycleActionTests extends AbstractNodesTests {
|
|||||||
closeNode("server1");
|
closeNode("server1");
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client("server3").admin().cluster().health(clusterHealth().waitForGreenStatus().waitForNodes("2").waitForRelocatingShards(0)).actionGet();
|
clusterHealth = client("server3").admin().cluster().health(clusterHealthRequest().waitForGreenStatus().waitForNodes("2").waitForRelocatingShards(0)).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
|
@ -0,0 +1,150 @@
|
|||||||
|
/*
|
||||||
|
* Licensed to Elastic Search and Shay Banon under one
|
||||||
|
* or more contributor license agreements. See the NOTICE file
|
||||||
|
* distributed with this work for additional information
|
||||||
|
* regarding copyright ownership. Elastic Search licenses this
|
||||||
|
* file to you under the Apache License, Version 2.0 (the
|
||||||
|
* "License"); you may not use this file except in compliance
|
||||||
|
* with the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.test.integration.indices.settings;
|
||||||
|
|
||||||
|
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
|
||||||
|
import org.elasticsearch.action.admin.cluster.health.ClusterHealthStatus;
|
||||||
|
import org.elasticsearch.action.count.CountResponse;
|
||||||
|
import org.elasticsearch.client.Client;
|
||||||
|
import org.elasticsearch.test.integration.AbstractNodesTests;
|
||||||
|
import org.testng.annotations.AfterMethod;
|
||||||
|
import org.testng.annotations.BeforeMethod;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
import static org.elasticsearch.client.Requests.*;
|
||||||
|
import static org.elasticsearch.common.settings.ImmutableSettings.*;
|
||||||
|
import static org.elasticsearch.common.xcontent.XContentFactory.*;
|
||||||
|
import static org.elasticsearch.index.query.xcontent.QueryBuilders.*;
|
||||||
|
import static org.hamcrest.MatcherAssert.*;
|
||||||
|
import static org.hamcrest.Matchers.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kimchy (shay.banon)
|
||||||
|
*/
|
||||||
|
public class UpdateNumberOfReplicasTests extends AbstractNodesTests {
|
||||||
|
|
||||||
|
protected Client client1;
|
||||||
|
protected Client client2;
|
||||||
|
|
||||||
|
@BeforeMethod public void startNodes() {
|
||||||
|
startNode("node1");
|
||||||
|
startNode("node2");
|
||||||
|
client1 = getClient1();
|
||||||
|
client2 = getClient2();
|
||||||
|
|
||||||
|
createIndex();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void createIndex() {
|
||||||
|
logger.info("Creating index test");
|
||||||
|
client1.admin().indices().create(createIndexRequest("test")).actionGet();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String getConcreteIndexName() {
|
||||||
|
return "test";
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterMethod public void closeNodes() {
|
||||||
|
client1.close();
|
||||||
|
client2.close();
|
||||||
|
closeAllNodes();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Client getClient1() {
|
||||||
|
return client("node1");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Client getClient2() {
|
||||||
|
return client("node2");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test public void simpleUpdateNumberOfReplicasTests() throws Exception {
|
||||||
|
logger.info("Running Cluster Health");
|
||||||
|
ClusterHealthResponse clusterHealth = client1.admin().cluster().prepareHealth().setWaitForGreenStatus().execute().actionGet();
|
||||||
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
|
assertThat(clusterHealth.indices().get("test").activePrimaryShards(), equalTo(5));
|
||||||
|
assertThat(clusterHealth.indices().get("test").numberOfReplicas(), equalTo(1));
|
||||||
|
assertThat(clusterHealth.indices().get("test").activeShards(), equalTo(10));
|
||||||
|
|
||||||
|
for (int i = 0; i < 10; i++) {
|
||||||
|
client1.prepareIndex("test", "type1", Integer.toString(i)).setSource(jsonBuilder().startObject()
|
||||||
|
.field("value", "test" + i)
|
||||||
|
.endObject()).execute().actionGet();
|
||||||
|
}
|
||||||
|
|
||||||
|
client1.admin().indices().prepareRefresh().execute().actionGet();
|
||||||
|
|
||||||
|
for (int i = 0; i < 10; i++) {
|
||||||
|
CountResponse countResponse = client1.prepareCount().setQuery(matchAllQuery()).execute().actionGet();
|
||||||
|
assertThat(countResponse.count(), equalTo(10l));
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.info("Increasing the number of replicas from 1 to 2");
|
||||||
|
client1.admin().indices().prepareUpdateSettings("test").setSettings(settingsBuilder().put("index.number_of_replicas", 2)).execute().actionGet();
|
||||||
|
Thread.sleep(200);
|
||||||
|
|
||||||
|
logger.info("Running Cluster Health");
|
||||||
|
clusterHealth = client1.admin().cluster().prepareHealth().setWaitForYellowStatus().execute().actionGet();
|
||||||
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
||||||
|
assertThat(clusterHealth.indices().get("test").activePrimaryShards(), equalTo(5));
|
||||||
|
assertThat(clusterHealth.indices().get("test").numberOfReplicas(), equalTo(2));
|
||||||
|
assertThat(clusterHealth.indices().get("test").activeShards(), equalTo(10));
|
||||||
|
|
||||||
|
logger.info("starting another node to new replicas will be allocated to it");
|
||||||
|
startNode("node3");
|
||||||
|
Thread.sleep(100);
|
||||||
|
|
||||||
|
logger.info("Running Cluster Health");
|
||||||
|
clusterHealth = client1.admin().cluster().prepareHealth().setWaitForGreenStatus().setWaitForNodes("3").execute().actionGet();
|
||||||
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
|
assertThat(clusterHealth.indices().get("test").activePrimaryShards(), equalTo(5));
|
||||||
|
assertThat(clusterHealth.indices().get("test").numberOfReplicas(), equalTo(2));
|
||||||
|
assertThat(clusterHealth.indices().get("test").activeShards(), equalTo(15));
|
||||||
|
|
||||||
|
for (int i = 0; i < 10; i++) {
|
||||||
|
CountResponse countResponse = client1.prepareCount().setQuery(matchAllQuery()).execute().actionGet();
|
||||||
|
assertThat(countResponse.count(), equalTo(10l));
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.info("Decreasing number of replicas from 2 to 0");
|
||||||
|
client1.admin().indices().prepareUpdateSettings("test").setSettings(settingsBuilder().put("index.number_of_replicas", 0)).execute().actionGet();
|
||||||
|
Thread.sleep(200);
|
||||||
|
|
||||||
|
logger.info("Running Cluster Health");
|
||||||
|
clusterHealth = client1.admin().cluster().prepareHealth().setWaitForGreenStatus().setWaitForNodes("3").execute().actionGet();
|
||||||
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
|
assertThat(clusterHealth.indices().get("test").activePrimaryShards(), equalTo(5));
|
||||||
|
assertThat(clusterHealth.indices().get("test").numberOfReplicas(), equalTo(0));
|
||||||
|
assertThat(clusterHealth.indices().get("test").activeShards(), equalTo(5));
|
||||||
|
|
||||||
|
for (int i = 0; i < 10; i++) {
|
||||||
|
CountResponse countResponse = client1.prepareCount().setQuery(matchAllQuery()).execute().actionGet();
|
||||||
|
assertThat(countResponse.count(), equalTo(10l));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -50,24 +50,24 @@ public class SimpleNodesInfoTests extends AbstractNodesTests {
|
|||||||
assertThat(response.nodesMap().get(server1NodeId), notNullValue());
|
assertThat(response.nodesMap().get(server1NodeId), notNullValue());
|
||||||
assertThat(response.nodesMap().get(server2NodeId), notNullValue());
|
assertThat(response.nodesMap().get(server2NodeId), notNullValue());
|
||||||
|
|
||||||
response = client("server2").admin().cluster().nodesInfo(nodesInfo()).actionGet();
|
response = client("server2").admin().cluster().nodesInfo(nodesInfoRequest()).actionGet();
|
||||||
assertThat(response.nodes().length, equalTo(2));
|
assertThat(response.nodes().length, equalTo(2));
|
||||||
assertThat(response.nodesMap().get(server1NodeId), notNullValue());
|
assertThat(response.nodesMap().get(server1NodeId), notNullValue());
|
||||||
assertThat(response.nodesMap().get(server2NodeId), notNullValue());
|
assertThat(response.nodesMap().get(server2NodeId), notNullValue());
|
||||||
|
|
||||||
response = client("server1").admin().cluster().nodesInfo(nodesInfo(server1NodeId)).actionGet();
|
response = client("server1").admin().cluster().nodesInfo(nodesInfoRequest(server1NodeId)).actionGet();
|
||||||
assertThat(response.nodes().length, equalTo(1));
|
assertThat(response.nodes().length, equalTo(1));
|
||||||
assertThat(response.nodesMap().get(server1NodeId), notNullValue());
|
assertThat(response.nodesMap().get(server1NodeId), notNullValue());
|
||||||
|
|
||||||
response = client("server2").admin().cluster().nodesInfo(nodesInfo(server1NodeId)).actionGet();
|
response = client("server2").admin().cluster().nodesInfo(nodesInfoRequest(server1NodeId)).actionGet();
|
||||||
assertThat(response.nodes().length, equalTo(1));
|
assertThat(response.nodes().length, equalTo(1));
|
||||||
assertThat(response.nodesMap().get(server1NodeId), notNullValue());
|
assertThat(response.nodesMap().get(server1NodeId), notNullValue());
|
||||||
|
|
||||||
response = client("server1").admin().cluster().nodesInfo(nodesInfo(server2NodeId)).actionGet();
|
response = client("server1").admin().cluster().nodesInfo(nodesInfoRequest(server2NodeId)).actionGet();
|
||||||
assertThat(response.nodes().length, equalTo(1));
|
assertThat(response.nodes().length, equalTo(1));
|
||||||
assertThat(response.nodesMap().get(server2NodeId), notNullValue());
|
assertThat(response.nodesMap().get(server2NodeId), notNullValue());
|
||||||
|
|
||||||
response = client("server2").admin().cluster().nodesInfo(nodesInfo(server2NodeId)).actionGet();
|
response = client("server2").admin().cluster().nodesInfo(nodesInfoRequest(server2NodeId)).actionGet();
|
||||||
assertThat(response.nodes().length, equalTo(1));
|
assertThat(response.nodes().length, equalTo(1));
|
||||||
assertThat(response.nodesMap().get(server2NodeId), notNullValue());
|
assertThat(response.nodesMap().get(server2NodeId), notNullValue());
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ public class SimpleRecoveryTests extends AbstractNodesTests {
|
|||||||
client("server1").admin().indices().create(createIndexRequest("test")).actionGet(5000);
|
client("server1").admin().indices().create(createIndexRequest("test")).actionGet(5000);
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForYellowStatus()).actionGet();
|
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealthRequest().waitForYellowStatus()).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
||||||
@ -66,7 +66,7 @@ public class SimpleRecoveryTests extends AbstractNodesTests {
|
|||||||
startNode("server2");
|
startNode("server2");
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealthRequest().waitForGreenStatus()).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
@ -88,7 +88,7 @@ public class SimpleRecoveryTests extends AbstractNodesTests {
|
|||||||
startNode("server3");
|
startNode("server3");
|
||||||
Thread.sleep(200);
|
Thread.sleep(200);
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
clusterHealth = client("server1").admin().cluster().health(clusterHealth().waitForGreenStatus().waitForRelocatingShards(0).waitForNodes("3")).actionGet();
|
clusterHealth = client("server1").admin().cluster().health(clusterHealthRequest().waitForGreenStatus().waitForRelocatingShards(0).waitForNodes("3")).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
|
@ -80,7 +80,7 @@ public class RestHttpDocumentActions extends AbstractNodesTests {
|
|||||||
|
|
||||||
@Test public void testSimpleActions() throws IOException, ExecutionException, InterruptedException {
|
@Test public void testSimpleActions() throws IOException, ExecutionException, InterruptedException {
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
ClusterHealthResponse clusterHealth = client1.admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
ClusterHealthResponse clusterHealth = client1.admin().cluster().health(clusterHealthRequest().waitForGreenStatus()).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
|
@ -78,7 +78,7 @@ public class TransportSearchFailuresTests extends AbstractNodesTests {
|
|||||||
assertThat(client("server1").admin().cluster().prepareHealth().setWaitForNodes("2").execute().actionGet().timedOut(), equalTo(false));
|
assertThat(client("server1").admin().cluster().prepareHealth().setWaitForNodes("2").execute().actionGet().timedOut(), equalTo(false));
|
||||||
|
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealth("test")
|
ClusterHealthResponse clusterHealth = client("server1").admin().cluster().health(clusterHealthRequest("test")
|
||||||
.waitForYellowStatus().waitForRelocatingShards(0).waitForActiveShards(6)).actionGet();
|
.waitForYellowStatus().waitForRelocatingShards(0).waitForActiveShards(6)).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
|
@ -38,6 +38,8 @@ import org.elasticsearch.action.admin.indices.optimize.OptimizeRequest
|
|||||||
import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse
|
import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse
|
||||||
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest
|
import org.elasticsearch.action.admin.indices.refresh.RefreshRequest
|
||||||
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse
|
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsRequest
|
||||||
|
import org.elasticsearch.action.admin.indices.settings.UpdateSettingsResponse
|
||||||
import org.elasticsearch.action.admin.indices.status.IndicesStatusRequest
|
import org.elasticsearch.action.admin.indices.status.IndicesStatusRequest
|
||||||
import org.elasticsearch.action.admin.indices.status.IndicesStatusResponse
|
import org.elasticsearch.action.admin.indices.status.IndicesStatusResponse
|
||||||
import org.elasticsearch.client.IndicesAdminClient
|
import org.elasticsearch.client.IndicesAdminClient
|
||||||
@ -50,6 +52,7 @@ import org.elasticsearch.client.action.admin.indices.gateway.snapshot.GatewaySna
|
|||||||
import org.elasticsearch.client.action.admin.indices.mapping.put.PutMappingRequestBuilder
|
import org.elasticsearch.client.action.admin.indices.mapping.put.PutMappingRequestBuilder
|
||||||
import org.elasticsearch.client.action.admin.indices.optimize.OptimizeRequestBuilder
|
import org.elasticsearch.client.action.admin.indices.optimize.OptimizeRequestBuilder
|
||||||
import org.elasticsearch.client.action.admin.indices.refresh.RefreshRequestBuilder
|
import org.elasticsearch.client.action.admin.indices.refresh.RefreshRequestBuilder
|
||||||
|
import org.elasticsearch.client.action.admin.indices.settings.UpdateSettingsRequestBuilder
|
||||||
import org.elasticsearch.client.action.admin.indices.status.IndicesStatusRequestBuilder
|
import org.elasticsearch.client.action.admin.indices.status.IndicesStatusRequestBuilder
|
||||||
import org.elasticsearch.client.internal.InternalClient
|
import org.elasticsearch.client.internal.InternalClient
|
||||||
import org.elasticsearch.groovy.client.action.GActionFuture
|
import org.elasticsearch.groovy.client.action.GActionFuture
|
||||||
@ -95,6 +98,19 @@ class GIndicesAdminClient {
|
|||||||
PutMappingRequestBuilder.metaClass.source = {Closure c ->
|
PutMappingRequestBuilder.metaClass.source = {Closure c ->
|
||||||
delegate.setSource(new GXContentBuilder().buildAsString(c))
|
delegate.setSource(new GXContentBuilder().buildAsString(c))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UpdateSettingsRequest.metaClass.setSettings = {Closure c ->
|
||||||
|
delegate.settings(new GXContentBuilder().buildAsString(c))
|
||||||
|
}
|
||||||
|
UpdateSettingsRequest.metaClass.settings = {Closure c ->
|
||||||
|
delegate.settings(new GXContentBuilder().buildAsString(c))
|
||||||
|
}
|
||||||
|
UpdateSettingsRequestBuilder.metaClass.setSettings = {Closure c ->
|
||||||
|
delegate.setSettings(new GXContentBuilder().buildAsString(c))
|
||||||
|
}
|
||||||
|
UpdateSettingsRequestBuilder.metaClass.settings = {Closure c ->
|
||||||
|
delegate.setSettings(new GXContentBuilder().buildAsString(c))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final GClient gClient
|
private final GClient gClient
|
||||||
@ -325,6 +341,10 @@ class GIndicesAdminClient {
|
|||||||
indicesAdminClient.aliases(request, listener)
|
indicesAdminClient.aliases(request, listener)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void aliases(ClearIndicesCacheRequest request, ActionListener<ClearIndicesCacheResponse> listener) {
|
||||||
|
indicesAdminClient.clearCache(request, listener)
|
||||||
|
}
|
||||||
|
|
||||||
// CLEAR CACHE
|
// CLEAR CACHE
|
||||||
|
|
||||||
ClearIndicesCacheRequestBuilder prepareClearCache(String... indices) {
|
ClearIndicesCacheRequestBuilder prepareClearCache(String... indices) {
|
||||||
@ -345,7 +365,23 @@ class GIndicesAdminClient {
|
|||||||
return future
|
return future
|
||||||
}
|
}
|
||||||
|
|
||||||
void aliases(ClearIndicesCacheRequest request, ActionListener<ClearIndicesCacheResponse> listener) {
|
// UPDATE SETTINGS
|
||||||
indicesAdminClient.clearCache(request, listener)
|
|
||||||
|
UpdateSettingsRequestBuilder prepareUpdateSettings(String... indices) {
|
||||||
|
indicesAdminClient.prepareUpdateSettings(indices)
|
||||||
|
}
|
||||||
|
|
||||||
|
GActionFuture<UpdateSettingsResponse> updateSettings(Closure c) {
|
||||||
|
UpdateSettingsRequest request = new UpdateSettingsRequest()
|
||||||
|
c.setDelegate request
|
||||||
|
c.resolveStrategy = gClient.resolveStrategy
|
||||||
|
c.call()
|
||||||
|
updateSettings(request)
|
||||||
|
}
|
||||||
|
|
||||||
|
GActionFuture<UpdateSettingsResponse> updateSettings(UpdateSettingsRequest request) {
|
||||||
|
GActionFuture<UpdateSettingsResponse> future = new GActionFuture<UpdateSettingsResponse>(internalClient.threadPool(), request);
|
||||||
|
indicesAdminClient.updateSettings(request, future)
|
||||||
|
return future
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -89,7 +89,7 @@ public class HdfsGatewayTests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
logger.info("Running Cluster Health (wait for the shards to startup)");
|
logger.info("Running Cluster Health (wait for the shards to startup)");
|
||||||
ClusterHealthResponse clusterHealth = node.client().admin().cluster().health(clusterHealth().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
ClusterHealthResponse clusterHealth = node.client().admin().cluster().health(clusterHealthRequest().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
||||||
@ -101,7 +101,7 @@ public class HdfsGatewayTests {
|
|||||||
assertThat(putMappingResponse.acknowledged(), equalTo(true));
|
assertThat(putMappingResponse.acknowledged(), equalTo(true));
|
||||||
|
|
||||||
// verify that mapping is there
|
// verify that mapping is there
|
||||||
ClusterStateResponse clusterState = node.client().admin().cluster().state(clusterState()).actionGet();
|
ClusterStateResponse clusterState = node.client().admin().cluster().state(clusterStateRequest()).actionGet();
|
||||||
assertThat(clusterState.state().metaData().index("test").mapping("type1"), notNullValue());
|
assertThat(clusterState.state().metaData().index("test").mapping("type1"), notNullValue());
|
||||||
|
|
||||||
// create two and delete the first
|
// create two and delete the first
|
||||||
@ -125,13 +125,13 @@ public class HdfsGatewayTests {
|
|||||||
node = buildNode().start();
|
node = buildNode().start();
|
||||||
|
|
||||||
logger.info("Running Cluster Health (wait for the shards to startup)");
|
logger.info("Running Cluster Health (wait for the shards to startup)");
|
||||||
clusterHealth = node.client().admin().cluster().health(clusterHealth().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
clusterHealth = node.client().admin().cluster().health(clusterHealthRequest().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
||||||
|
|
||||||
// verify that mapping is there
|
// verify that mapping is there
|
||||||
clusterState = node.client().admin().cluster().state(clusterState()).actionGet();
|
clusterState = node.client().admin().cluster().state(clusterStateRequest()).actionGet();
|
||||||
assertThat(clusterState.state().metaData().index("test").mapping("type1"), notNullValue());
|
assertThat(clusterState.state().metaData().index("test").mapping("type1"), notNullValue());
|
||||||
|
|
||||||
logger.info("Getting #1, should not exists");
|
logger.info("Getting #1, should not exists");
|
||||||
@ -158,7 +158,7 @@ public class HdfsGatewayTests {
|
|||||||
node = buildNode().start();
|
node = buildNode().start();
|
||||||
|
|
||||||
logger.info("Running Cluster Health (wait for the shards to startup)");
|
logger.info("Running Cluster Health (wait for the shards to startup)");
|
||||||
clusterHealth = node.client().admin().cluster().health(clusterHealth().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
clusterHealth = node.client().admin().cluster().health(clusterHealthRequest().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
||||||
@ -187,7 +187,7 @@ public class HdfsGatewayTests {
|
|||||||
node = buildNode().start();
|
node = buildNode().start();
|
||||||
|
|
||||||
logger.info("Running Cluster Health (wait for the shards to startup)");
|
logger.info("Running Cluster Health (wait for the shards to startup)");
|
||||||
clusterHealth = node.client().admin().cluster().health(clusterHealth().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
clusterHealth = node.client().admin().cluster().health(clusterHealthRequest().waitForYellowStatus().waitForActiveShards(1)).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.YELLOW));
|
||||||
|
@ -58,7 +58,7 @@ public class SimpleAttachmentIntegrationTests {
|
|||||||
logger.info("creating index [test]");
|
logger.info("creating index [test]");
|
||||||
node.client().admin().indices().create(createIndexRequest("test").settings(settingsBuilder().put("index.numberOfReplicas", 0))).actionGet();
|
node.client().admin().indices().create(createIndexRequest("test").settings(settingsBuilder().put("index.numberOfReplicas", 0))).actionGet();
|
||||||
logger.info("Running Cluster Health");
|
logger.info("Running Cluster Health");
|
||||||
ClusterHealthResponse clusterHealth = node.client().admin().cluster().health(clusterHealth().waitForGreenStatus()).actionGet();
|
ClusterHealthResponse clusterHealth = node.client().admin().cluster().health(clusterHealthRequest().waitForGreenStatus()).actionGet();
|
||||||
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
logger.info("Done Cluster Health, status " + clusterHealth.status());
|
||||||
assertThat(clusterHealth.timedOut(), equalTo(false));
|
assertThat(clusterHealth.timedOut(), equalTo(false));
|
||||||
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
assertThat(clusterHealth.status(), equalTo(ClusterHealthStatus.GREEN));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user