diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/TransportActionModule.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/TransportActionModule.java index 63dc326bfb1..da7201674b6 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/action/TransportActionModule.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/action/TransportActionModule.java @@ -33,7 +33,7 @@ import org.elasticsearch.action.admin.indices.flush.TransportFlushAction; import org.elasticsearch.action.admin.indices.gateway.snapshot.TransportGatewaySnapshotAction; import org.elasticsearch.action.admin.indices.gateway.snapshot.TransportIndexGatewaySnapshotAction; import org.elasticsearch.action.admin.indices.gateway.snapshot.TransportShardGatewaySnapshotAction; -import org.elasticsearch.action.admin.indices.mapping.create.TransportCreateMappingAction; +import org.elasticsearch.action.admin.indices.mapping.put.TransportPutMappingAction; import org.elasticsearch.action.admin.indices.optimize.TransportOptimizeAction; import org.elasticsearch.action.admin.indices.refresh.TransportRefreshAction; import org.elasticsearch.action.admin.indices.status.TransportIndicesStatusAction; @@ -67,7 +67,7 @@ public class TransportActionModule extends AbstractModule { bind(TransportIndicesStatusAction.class).asEagerSingleton(); bind(TransportCreateIndexAction.class).asEagerSingleton(); - bind(TransportCreateMappingAction.class).asEagerSingleton(); + bind(TransportPutMappingAction.class).asEagerSingleton(); bind(TransportDeleteIndexAction.class).asEagerSingleton(); bind(TransportShardGatewaySnapshotAction.class).asEagerSingleton(); diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/TransportActions.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/TransportActions.java index c268bbf3ae3..5dc37d5da03 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/action/TransportActions.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/action/TransportActions.java @@ -20,7 +20,7 @@ package org.elasticsearch.action; /** - * @author kimchy (Shay Banon) + * @author kimchy (shay.banon) */ public class TransportActions { @@ -55,7 +55,7 @@ public class TransportActions { } public static class Mapping { - public static final String CREATE = "indices/createMapping"; + public static final String PUT = "indices/mapping/put"; } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/create/TransportCreateMappingAction.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/create/TransportCreateMappingAction.java deleted file mode 100644 index 64a41780b86..00000000000 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/create/TransportCreateMappingAction.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * 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.mapping.create; - -import com.google.inject.Inject; -import org.elasticsearch.ExceptionsHelper; -import org.elasticsearch.action.ActionListener; -import org.elasticsearch.action.Actions; -import org.elasticsearch.action.TransportActions; -import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; -import org.elasticsearch.action.admin.indices.create.CreateIndexResponse; -import org.elasticsearch.action.admin.indices.create.TransportCreateIndexAction; -import org.elasticsearch.action.support.BaseAction; -import org.elasticsearch.cluster.ClusterService; -import org.elasticsearch.cluster.metadata.MetaDataService; -import org.elasticsearch.indices.IndexAlreadyExistsException; -import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.transport.*; -import org.elasticsearch.util.io.VoidStreamable; -import org.elasticsearch.util.settings.Settings; - -import java.io.IOException; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; - -/** - * @author kimchy (Shay Banon) - */ -public class TransportCreateMappingAction extends BaseAction { - - private final TransportService transportService; - - private final ClusterService clusterService; - - private final MetaDataService metaDataService; - - private final TransportCreateIndexAction createIndexAction; - - private final ThreadPool threadPool; - - private final boolean autoCreateIndex; - - @Inject public TransportCreateMappingAction(Settings settings, TransportService transportService, ClusterService clusterService, - ThreadPool threadPool, MetaDataService metaDataService, TransportCreateIndexAction createIndexAction) { - super(settings); - this.transportService = transportService; - this.clusterService = clusterService; - this.threadPool = threadPool; - this.metaDataService = metaDataService; - this.createIndexAction = createIndexAction; - this.autoCreateIndex = settings.getAsBoolean("action.autoCreateIndex", true); - - transportService.registerHandler(TransportActions.Admin.Indices.Mapping.CREATE, new TransportHandler()); - } - - @Override protected void doExecute(final CreateMappingRequest request, final ActionListener listener) { - final String[] indices = Actions.processIndices(clusterService.state(), request.indices()); - if (autoCreateIndex) { - final CountDownLatch latch = new CountDownLatch(indices.length); - for (String index : indices) { - if (!clusterService.state().metaData().hasIndex(index)) { - createIndexAction.execute(new CreateIndexRequest(index), new ActionListener() { - @Override public void onResponse(CreateIndexResponse result) { - latch.countDown(); - } - - @Override public void onFailure(Throwable e) { - if (ExceptionsHelper.unwrapCause(e) instanceof IndexAlreadyExistsException) { - latch.countDown(); - } else { - listener.onFailure(e); - } - } - }); - } else { - latch.countDown(); - } - } - try { - latch.await(10, TimeUnit.SECONDS); - } catch (InterruptedException e) { - // ignore - } - } - if (clusterService.state().nodes().localNodeMaster()) { - threadPool.execute(new Runnable() { - @Override public void run() { - try { - metaDataService.addMapping(indices, request.type(), request.mappingSource(), request.timeout()); - listener.onResponse(new CreateMappingResponse()); - } catch (Exception e) { - listener.onFailure(e); - } - } - }); - } else { - transportService.sendRequest(clusterService.state().nodes().masterNode(), TransportActions.Admin.Indices.Mapping.CREATE, request, - new VoidTransportResponseHandler() { - @Override public void handleResponse(VoidStreamable response) { - listener.onResponse(new CreateMappingResponse()); - } - - @Override public void handleException(RemoteTransportException exp) { - listener.onFailure(exp); - } - }); - } - } - - private class TransportHandler extends BaseTransportRequestHandler { - - - @Override public CreateMappingRequest newInstance() { - return new CreateMappingRequest(); - } - - @Override public void messageReceived(final CreateMappingRequest request, final TransportChannel channel) throws Exception { - String[] indices = Actions.processIndices(clusterService.state(), request.indices()); - if (clusterService.state().nodes().localNodeMaster()) { - // handle the actual creation of a new index - metaDataService.addMapping(indices, request.type(), request.mappingSource(), request.timeout()); - channel.sendResponse(VoidStreamable.INSTANCE); - } else { - transportService.sendRequest(clusterService.state().nodes().masterNode(), TransportActions.Admin.Indices.Mapping.CREATE, request, new VoidTransportResponseHandler() { - - @Override public void handleResponse(VoidStreamable response) { - try { - channel.sendResponse(response); - } catch (IOException e) { - logger.error("Failed to send response", e); - } - } - - @Override public void handleException(RemoteTransportException exp) { - try { - channel.sendResponse(exp); - } catch (IOException e) { - logger.error("Failed to send response", e); - } - } - }); - } - } - } -} \ No newline at end of file diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/create/CreateMappingRequest.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingRequest.java similarity index 79% rename from modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/create/CreateMappingRequest.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingRequest.java index b9221b4e157..b500b18c513 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/create/CreateMappingRequest.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingRequest.java @@ -17,13 +17,12 @@ * under the License. */ -package org.elasticsearch.action.admin.indices.mapping.create; +package org.elasticsearch.action.admin.indices.mapping.put; -import org.elasticsearch.action.ActionRequest; import org.elasticsearch.action.ActionRequestValidationException; +import org.elasticsearch.action.support.master.MasterNodeOperationRequest; import org.elasticsearch.util.Required; import org.elasticsearch.util.TimeValue; -import org.elasticsearch.util.io.Streamable; import java.io.DataInput; import java.io.DataOutput; @@ -36,7 +35,7 @@ import static org.elasticsearch.util.TimeValue.*; /** * @author kimchy (Shay Banon) */ -public class CreateMappingRequest implements ActionRequest, Streamable { +public class PutMappingRequest extends MasterNodeOperationRequest { private String[] indices; @@ -46,18 +45,18 @@ public class CreateMappingRequest implements ActionRequest, Streamable { private TimeValue timeout = new TimeValue(10, TimeUnit.SECONDS); - CreateMappingRequest() { + PutMappingRequest() { } - public CreateMappingRequest(String... indices) { + public PutMappingRequest(String... indices) { this.indices = indices; } - public CreateMappingRequest(String index, String mappingType, String mappingSource) { + public PutMappingRequest(String index, String mappingType, String mappingSource) { this(new String[]{index}, mappingType, mappingSource); } - public CreateMappingRequest(String[] indices, String mappingType, String mappingSource) { + public PutMappingRequest(String[] indices, String mappingType, String mappingSource) { this.indices = indices; this.mappingType = mappingType; this.mappingSource = mappingSource; @@ -71,12 +70,7 @@ public class CreateMappingRequest implements ActionRequest, Streamable { return validationException; } - @Override public boolean listenerThreaded() { - // we don't really care about this... - return true; - } - - @Override public CreateMappingRequest listenerThreaded(boolean threadedListener) { + @Override public PutMappingRequest listenerThreaded(boolean threadedListener) { return this; } @@ -92,7 +86,7 @@ public class CreateMappingRequest implements ActionRequest, Streamable { * The type of the mappings. Not required since it can be defined explicitly within the mapping source. * If it is not defined within the mapping source, then it is required. */ - public CreateMappingRequest type(String mappingType) { + public PutMappingRequest type(String mappingType) { this.mappingType = mappingType; return this; } @@ -101,7 +95,7 @@ public class CreateMappingRequest implements ActionRequest, Streamable { return mappingSource; } - @Required public CreateMappingRequest mappingSource(String mappingSource) { + @Required public PutMappingRequest mappingSource(String mappingSource) { this.mappingSource = mappingSource; return this; } @@ -110,12 +104,13 @@ public class CreateMappingRequest implements ActionRequest, Streamable { return timeout; } - public CreateMappingRequest timeout(TimeValue timeout) { + public PutMappingRequest timeout(TimeValue timeout) { this.timeout = timeout; return this; } @Override public void readFrom(DataInput in) throws IOException, ClassNotFoundException { + super.readFrom(in); indices = new String[in.readInt()]; for (int i = 0; i < indices.length; i++) { indices[i] = in.readUTF(); @@ -128,6 +123,7 @@ public class CreateMappingRequest implements ActionRequest, Streamable { } @Override public void writeTo(DataOutput out) throws IOException { + super.writeTo(out); if (indices == null) { out.writeInt(0); } else { diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/create/CreateMappingResponse.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingResponse.java similarity index 87% rename from modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/create/CreateMappingResponse.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingResponse.java index 741a8bd7070..cce7cf2027c 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/create/CreateMappingResponse.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingResponse.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.action.admin.indices.mapping.create; +package org.elasticsearch.action.admin.indices.mapping.put; import org.elasticsearch.action.ActionResponse; import org.elasticsearch.util.io.Streamable; @@ -27,9 +27,9 @@ import java.io.DataOutput; import java.io.IOException; /** - * @author kimchy (Shay Banon) + * @author kimchy (shay.banon) */ -public class CreateMappingResponse implements ActionResponse, Streamable { +public class PutMappingResponse implements ActionResponse, Streamable { @Override public void readFrom(DataInput in) throws IOException, ClassNotFoundException { } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/TransportPutMappingAction.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/TransportPutMappingAction.java new file mode 100644 index 00000000000..ba134735770 --- /dev/null +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/TransportPutMappingAction.java @@ -0,0 +1,112 @@ +/* + * 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.mapping.put; + +import com.google.inject.Inject; +import org.elasticsearch.ElasticSearchException; +import org.elasticsearch.ExceptionsHelper; +import org.elasticsearch.action.ActionListener; +import org.elasticsearch.action.TransportActions; +import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; +import org.elasticsearch.action.admin.indices.create.CreateIndexResponse; +import org.elasticsearch.action.admin.indices.create.TransportCreateIndexAction; +import org.elasticsearch.action.support.master.TransportMasterNodeOperationAction; +import org.elasticsearch.cluster.ClusterService; +import org.elasticsearch.cluster.metadata.MetaDataService; +import org.elasticsearch.indices.IndexAlreadyExistsException; +import org.elasticsearch.threadpool.ThreadPool; +import org.elasticsearch.transport.TransportService; +import org.elasticsearch.util.settings.Settings; + +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + +import static org.elasticsearch.action.Actions.*; + +/** + * @author kimchy (Shay Banon) + */ +public class TransportPutMappingAction extends TransportMasterNodeOperationAction { + + private final MetaDataService metaDataService; + + private final TransportCreateIndexAction createIndexAction; + + private final boolean autoCreateIndex; + + @Inject public TransportPutMappingAction(Settings settings, TransportService transportService, ClusterService clusterService, + ThreadPool threadPool, MetaDataService metaDataService, TransportCreateIndexAction createIndexAction) { + super(settings, transportService, clusterService, threadPool); + this.metaDataService = metaDataService; + this.createIndexAction = createIndexAction; + this.autoCreateIndex = settings.getAsBoolean("action.autoCreateIndex", true); + } + + + @Override protected String transportAction() { + return TransportActions.Admin.Indices.Mapping.PUT; + } + + @Override protected PutMappingRequest newRequest() { + return new PutMappingRequest(); + } + + @Override protected PutMappingResponse newResponse() { + return new PutMappingResponse(); + } + + @Override protected PutMappingResponse masterOperation(PutMappingRequest request) throws ElasticSearchException { + final String[] indices = processIndices(clusterService.state(), request.indices()); + metaDataService.addMapping(indices, request.type(), request.mappingSource(), request.timeout()); + return new PutMappingResponse(); + } + + @Override protected void doExecute(final PutMappingRequest request, final ActionListener listener) { + final String[] indices = processIndices(clusterService.state(), request.indices()); + if (autoCreateIndex) { + final CountDownLatch latch = new CountDownLatch(indices.length); + for (String index : indices) { + if (!clusterService.state().metaData().hasIndex(index)) { + createIndexAction.execute(new CreateIndexRequest(index), new ActionListener() { + @Override public void onResponse(CreateIndexResponse response) { + latch.countDown(); + } + + @Override public void onFailure(Throwable e) { + if (ExceptionsHelper.unwrapCause(e) instanceof IndexAlreadyExistsException) { + latch.countDown(); + } else { + listener.onFailure(e); + } + } + }); + } else { + latch.countDown(); + } + } + try { + latch.await(10, TimeUnit.SECONDS); + } catch (InterruptedException e) { + // ignore + } + } + super.doExecute(request, listener); + } +} \ No newline at end of file diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/support/master/MasterNodeOperationRequest.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/support/master/MasterNodeOperationRequest.java index de537a40523..3f3cf347881 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/action/support/master/MasterNodeOperationRequest.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/action/support/master/MasterNodeOperationRequest.java @@ -21,6 +21,10 @@ package org.elasticsearch.action.support.master; import org.elasticsearch.action.ActionRequest; +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; + /** * @author kimchy (Shay Banon) */ @@ -35,4 +39,10 @@ public abstract class MasterNodeOperationRequest implements ActionRequest { // really, does not mean anything in this case return this; } + + @Override public void readFrom(DataInput in) throws IOException, ClassNotFoundException { + } + + @Override public void writeTo(DataOutput out) throws IOException { + } } diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/client/IndicesAdminClient.java b/modules/elasticsearch/src/main/java/org/elasticsearch/client/IndicesAdminClient.java index 2c74aa6b84a..7f822e2e13f 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/client/IndicesAdminClient.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/client/IndicesAdminClient.java @@ -29,8 +29,8 @@ import org.elasticsearch.action.admin.indices.flush.FlushRequest; import org.elasticsearch.action.admin.indices.flush.FlushResponse; import org.elasticsearch.action.admin.indices.gateway.snapshot.GatewaySnapshotRequest; import org.elasticsearch.action.admin.indices.gateway.snapshot.GatewaySnapshotResponse; -import org.elasticsearch.action.admin.indices.mapping.create.CreateMappingRequest; -import org.elasticsearch.action.admin.indices.mapping.create.CreateMappingResponse; +import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; +import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse; import org.elasticsearch.action.admin.indices.optimize.OptimizeRequest; import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse; import org.elasticsearch.action.admin.indices.refresh.RefreshRequest; @@ -41,7 +41,7 @@ import org.elasticsearch.action.admin.indices.status.IndicesStatusResponse; /** * Administrative actions/operations against indices. * - * @author kimchy (Shay Banon) + * @author kimchy (shay.banon) * @see AdminClient#indices() */ public interface IndicesAdminClient { @@ -219,9 +219,9 @@ public interface IndicesAdminClient { * * @param request The create mapping request * @return A result future - * @see org.elasticsearch.client.Requests#createMappingRequest(String...) + * @see org.elasticsearch.client.Requests#putMappingRequest(String...) */ - ActionFuture createMapping(CreateMappingRequest request); + ActionFuture putMapping(PutMappingRequest request); /** * Add mapping definition for a type into one or more indices. @@ -229,18 +229,18 @@ public interface IndicesAdminClient { * @param request The create mapping request * @param listener A listener to be notified with a result * @return A result future - * @see org.elasticsearch.client.Requests#createMappingRequest(String...) + * @see org.elasticsearch.client.Requests#putMappingRequest(String...) */ - ActionFuture createMapping(CreateMappingRequest request, ActionListener listener); + ActionFuture putMapping(PutMappingRequest request, ActionListener listener); /** * Add mapping definition for a type into one or more indices. * * @param request The create mapping request * @param listener A listener to be notified with a result - * @see org.elasticsearch.client.Requests#createMappingRequest(String...) + * @see org.elasticsearch.client.Requests#putMappingRequest(String...) */ - void execCreateMapping(CreateMappingRequest request, ActionListener listener); + void execPutMapping(PutMappingRequest request, ActionListener listener); /** * Explicitly perform gateway snapshot for one or more indices. diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/client/Requests.java b/modules/elasticsearch/src/main/java/org/elasticsearch/client/Requests.java index f2afdd7d416..63e7ff5c7e4 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/client/Requests.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/client/Requests.java @@ -28,7 +28,7 @@ import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; import org.elasticsearch.action.admin.indices.flush.FlushRequest; import org.elasticsearch.action.admin.indices.gateway.snapshot.GatewaySnapshotRequest; -import org.elasticsearch.action.admin.indices.mapping.create.CreateMappingRequest; +import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; import org.elasticsearch.action.admin.indices.optimize.OptimizeRequest; import org.elasticsearch.action.admin.indices.refresh.RefreshRequest; import org.elasticsearch.action.admin.indices.status.IndicesStatusRequest; @@ -173,10 +173,10 @@ public class Requests { * * @param indices The indices the delete by query against. Use null or _all to execute against all indices * @return The create mapping request - * @see org.elasticsearch.client.IndicesAdminClient#createMapping(org.elasticsearch.action.admin.indices.mapping.create.CreateMappingRequest) + * @see org.elasticsearch.client.IndicesAdminClient#putMapping(org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest) */ - public static CreateMappingRequest createMappingRequest(String... indices) { - return new CreateMappingRequest(indices); + public static PutMappingRequest putMappingRequest(String... indices) { + return new PutMappingRequest(indices); } /** diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/client/server/ServerIndicesAdminClient.java b/modules/elasticsearch/src/main/java/org/elasticsearch/client/server/ServerIndicesAdminClient.java index b7f10a76022..b795dcd2ff2 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/client/server/ServerIndicesAdminClient.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/client/server/ServerIndicesAdminClient.java @@ -34,9 +34,9 @@ import org.elasticsearch.action.admin.indices.flush.TransportFlushAction; import org.elasticsearch.action.admin.indices.gateway.snapshot.GatewaySnapshotRequest; import org.elasticsearch.action.admin.indices.gateway.snapshot.GatewaySnapshotResponse; import org.elasticsearch.action.admin.indices.gateway.snapshot.TransportGatewaySnapshotAction; -import org.elasticsearch.action.admin.indices.mapping.create.CreateMappingRequest; -import org.elasticsearch.action.admin.indices.mapping.create.CreateMappingResponse; -import org.elasticsearch.action.admin.indices.mapping.create.TransportCreateMappingAction; +import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; +import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse; +import org.elasticsearch.action.admin.indices.mapping.put.TransportPutMappingAction; import org.elasticsearch.action.admin.indices.optimize.OptimizeRequest; import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse; import org.elasticsearch.action.admin.indices.optimize.TransportOptimizeAction; @@ -67,14 +67,14 @@ public class ServerIndicesAdminClient extends AbstractComponent implements Indic private final TransportOptimizeAction optimizeAction; - private final TransportCreateMappingAction createMappingAction; + private final TransportPutMappingAction putMappingAction; private final TransportGatewaySnapshotAction gatewaySnapshotAction; @Inject public ServerIndicesAdminClient(Settings settings, TransportIndicesStatusAction indicesStatusAction, TransportCreateIndexAction createIndexAction, TransportDeleteIndexAction deleteIndexAction, TransportRefreshAction refreshAction, TransportFlushAction flushAction, TransportOptimizeAction optimizeAction, - TransportCreateMappingAction createMappingAction, TransportGatewaySnapshotAction gatewaySnapshotAction) { + TransportPutMappingAction putMappingAction, TransportGatewaySnapshotAction gatewaySnapshotAction) { super(settings); this.indicesStatusAction = indicesStatusAction; this.createIndexAction = createIndexAction; @@ -82,7 +82,7 @@ public class ServerIndicesAdminClient extends AbstractComponent implements Indic this.refreshAction = refreshAction; this.flushAction = flushAction; this.optimizeAction = optimizeAction; - this.createMappingAction = createMappingAction; + this.putMappingAction = putMappingAction; this.gatewaySnapshotAction = gatewaySnapshotAction; } @@ -158,16 +158,16 @@ public class ServerIndicesAdminClient extends AbstractComponent implements Indic optimizeAction.execute(request, listener); } - @Override public ActionFuture createMapping(CreateMappingRequest request) { - return createMappingAction.submit(request); + @Override public ActionFuture putMapping(PutMappingRequest request) { + return putMappingAction.submit(request); } - @Override public ActionFuture createMapping(CreateMappingRequest request, ActionListener listener) { - return createMapping(request, listener); + @Override public ActionFuture putMapping(PutMappingRequest request, ActionListener listener) { + return putMapping(request, listener); } - @Override public void execCreateMapping(CreateMappingRequest request, ActionListener listener) { - createMappingAction.execute(request, listener); + @Override public void execPutMapping(PutMappingRequest request, ActionListener listener) { + putMappingAction.execute(request, listener); } @Override public ActionFuture gatewaySnapshot(GatewaySnapshotRequest request) { diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/action/ClientTransportActionModule.java b/modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/action/ClientTransportActionModule.java index b17c2b266ff..de41f475bfe 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/action/ClientTransportActionModule.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/action/ClientTransportActionModule.java @@ -29,7 +29,7 @@ import org.elasticsearch.client.transport.action.admin.indices.create.ClientTran import org.elasticsearch.client.transport.action.admin.indices.delete.ClientTransportDeleteIndexAction; import org.elasticsearch.client.transport.action.admin.indices.flush.ClientTransportFlushAction; import org.elasticsearch.client.transport.action.admin.indices.gateway.snapshot.ClientTransportGatewaySnapshotAction; -import org.elasticsearch.client.transport.action.admin.indices.mapping.create.ClientTransportCreateMappingAction; +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.refresh.ClientTransportRefreshAction; import org.elasticsearch.client.transport.action.admin.indices.status.ClientTransportIndicesStatusAction; @@ -63,7 +63,7 @@ public class ClientTransportActionModule extends AbstractModule { bind(ClientTransportOptimizeAction.class).asEagerSingleton(); bind(ClientTransportCreateIndexAction.class).asEagerSingleton(); bind(ClientTransportDeleteIndexAction.class).asEagerSingleton(); - bind(ClientTransportCreateMappingAction.class).asEagerSingleton(); + bind(ClientTransportPutMappingAction.class).asEagerSingleton(); bind(ClientTransportGatewaySnapshotAction.class).asEagerSingleton(); bind(ClientTransportNodesInfoAction.class).asEagerSingleton(); bind(ClientTransportSinglePingAction.class).asEagerSingleton(); diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/action/admin/indices/mapping/create/ClientTransportCreateMappingAction.java b/modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/action/admin/indices/mapping/create/ClientTransportPutMappingAction.java similarity index 68% rename from modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/action/admin/indices/mapping/create/ClientTransportCreateMappingAction.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/action/admin/indices/mapping/create/ClientTransportPutMappingAction.java index 2f0ebb840d3..9df3ad4e33e 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/action/admin/indices/mapping/create/ClientTransportCreateMappingAction.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/action/admin/indices/mapping/create/ClientTransportPutMappingAction.java @@ -21,22 +21,22 @@ package org.elasticsearch.client.transport.action.admin.indices.mapping.create; import com.google.inject.Inject; import org.elasticsearch.action.TransportActions; -import org.elasticsearch.action.admin.indices.mapping.create.CreateMappingRequest; -import org.elasticsearch.action.admin.indices.mapping.create.CreateMappingResponse; +import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; +import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse; import org.elasticsearch.client.transport.action.support.BaseClientTransportAction; import org.elasticsearch.transport.TransportService; import org.elasticsearch.util.settings.Settings; /** - * @author kimchy (Shay Banon) + * @author kimchy (shay.banon) */ -public class ClientTransportCreateMappingAction extends BaseClientTransportAction { +public class ClientTransportPutMappingAction extends BaseClientTransportAction { - @Inject public ClientTransportCreateMappingAction(Settings settings, TransportService transportService) { - super(settings, transportService, CreateMappingResponse.class); + @Inject public ClientTransportPutMappingAction(Settings settings, TransportService transportService) { + super(settings, transportService, PutMappingResponse.class); } @Override protected String action() { - return TransportActions.Admin.Indices.Mapping.CREATE; + return TransportActions.Admin.Indices.Mapping.PUT; } } \ No newline at end of file diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/support/InternalTransportIndicesAdminClient.java b/modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/support/InternalTransportIndicesAdminClient.java index d96f3848227..a669c805464 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/support/InternalTransportIndicesAdminClient.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/client/transport/support/InternalTransportIndicesAdminClient.java @@ -31,8 +31,8 @@ import org.elasticsearch.action.admin.indices.flush.FlushRequest; import org.elasticsearch.action.admin.indices.flush.FlushResponse; import org.elasticsearch.action.admin.indices.gateway.snapshot.GatewaySnapshotRequest; import org.elasticsearch.action.admin.indices.gateway.snapshot.GatewaySnapshotResponse; -import org.elasticsearch.action.admin.indices.mapping.create.CreateMappingRequest; -import org.elasticsearch.action.admin.indices.mapping.create.CreateMappingResponse; +import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; +import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse; import org.elasticsearch.action.admin.indices.optimize.OptimizeRequest; import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse; import org.elasticsearch.action.admin.indices.refresh.RefreshRequest; @@ -45,7 +45,7 @@ import org.elasticsearch.client.transport.action.admin.indices.create.ClientTran import org.elasticsearch.client.transport.action.admin.indices.delete.ClientTransportDeleteIndexAction; import org.elasticsearch.client.transport.action.admin.indices.flush.ClientTransportFlushAction; import org.elasticsearch.client.transport.action.admin.indices.gateway.snapshot.ClientTransportGatewaySnapshotAction; -import org.elasticsearch.client.transport.action.admin.indices.mapping.create.ClientTransportCreateMappingAction; +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.refresh.ClientTransportRefreshAction; import org.elasticsearch.client.transport.action.admin.indices.status.ClientTransportIndicesStatusAction; @@ -54,7 +54,7 @@ import org.elasticsearch.util.component.AbstractComponent; import org.elasticsearch.util.settings.Settings; /** - * @author kimchy (Shay Banon) + * @author kimchy (shay.banon) */ public class InternalTransportIndicesAdminClient extends AbstractComponent implements IndicesAdminClient { @@ -72,7 +72,7 @@ public class InternalTransportIndicesAdminClient extends AbstractComponent imple private final ClientTransportOptimizeAction optimizeAction; - private final ClientTransportCreateMappingAction createMappingAction; + private final ClientTransportPutMappingAction putMappingAction; private final ClientTransportGatewaySnapshotAction gatewaySnapshotAction; @@ -80,7 +80,7 @@ public class InternalTransportIndicesAdminClient extends AbstractComponent imple ClientTransportIndicesStatusAction indicesStatusAction, ClientTransportCreateIndexAction createIndexAction, ClientTransportDeleteIndexAction deleteIndexAction, ClientTransportRefreshAction refreshAction, ClientTransportFlushAction flushAction, ClientTransportOptimizeAction optimizeAction, - ClientTransportCreateMappingAction createMappingAction, ClientTransportGatewaySnapshotAction gatewaySnapshotAction) { + ClientTransportPutMappingAction putMappingAction, ClientTransportGatewaySnapshotAction gatewaySnapshotAction) { super(settings); this.nodesService = nodesService; this.indicesStatusAction = indicesStatusAction; @@ -89,7 +89,7 @@ public class InternalTransportIndicesAdminClient extends AbstractComponent imple this.refreshAction = refreshAction; this.flushAction = flushAction; this.optimizeAction = optimizeAction; - this.createMappingAction = createMappingAction; + this.putMappingAction = putMappingAction; this.gatewaySnapshotAction = gatewaySnapshotAction; } @@ -243,26 +243,26 @@ public class InternalTransportIndicesAdminClient extends AbstractComponent imple }); } - @Override public ActionFuture createMapping(final CreateMappingRequest request) { - return nodesService.execute(new TransportClientNodesService.NodeCallback>() { - @Override public ActionFuture doWithNode(Node node) throws ElasticSearchException { - return createMappingAction.submit(node, request); + @Override public ActionFuture putMapping(final PutMappingRequest request) { + return nodesService.execute(new TransportClientNodesService.NodeCallback>() { + @Override public ActionFuture doWithNode(Node node) throws ElasticSearchException { + return putMappingAction.submit(node, request); } }); } - @Override public ActionFuture createMapping(final CreateMappingRequest request, final ActionListener listener) { - return nodesService.execute(new TransportClientNodesService.NodeCallback>() { - @Override public ActionFuture doWithNode(Node node) throws ElasticSearchException { - return createMappingAction.submit(node, request, listener); + @Override public ActionFuture putMapping(final PutMappingRequest request, final ActionListener listener) { + return nodesService.execute(new TransportClientNodesService.NodeCallback>() { + @Override public ActionFuture doWithNode(Node node) throws ElasticSearchException { + return putMappingAction.submit(node, request, listener); } }); } - @Override public void execCreateMapping(final CreateMappingRequest request, final ActionListener listener) { + @Override public void execPutMapping(final PutMappingRequest request, final ActionListener listener) { nodesService.execute(new TransportClientNodesService.NodeCallback() { @Override public Void doWithNode(Node node) throws ElasticSearchException { - createMappingAction.execute(node, request, listener); + putMappingAction.execute(node, request, listener); return null; } }); diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/RestActionModule.java b/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/RestActionModule.java index 921a53e03ea..08bc56e2612 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/RestActionModule.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/RestActionModule.java @@ -29,7 +29,7 @@ import org.elasticsearch.rest.action.admin.indices.create.RestCreateIndexAction; import org.elasticsearch.rest.action.admin.indices.delete.RestDeleteIndexAction; import org.elasticsearch.rest.action.admin.indices.flush.RestFlushAction; import org.elasticsearch.rest.action.admin.indices.gateway.snapshot.RestGatewaySnapshotAction; -import org.elasticsearch.rest.action.admin.indices.mapping.create.RestCreateMappingAction; +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.refresh.RestRefreshAction; import org.elasticsearch.rest.action.admin.indices.status.RestIndicesStatusAction; @@ -61,7 +61,7 @@ public class RestActionModule extends AbstractModule { bind(RestCreateIndexAction.class).asEagerSingleton(); bind(RestDeleteIndexAction.class).asEagerSingleton(); - bind(RestCreateMappingAction.class).asEagerSingleton(); + bind(RestPutMappingAction.class).asEagerSingleton(); bind(RestGatewaySnapshotAction.class).asEagerSingleton(); diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/admin/indices/mapping/create/RestCreateMappingAction.java b/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/admin/indices/mapping/put/RestPutMappingAction.java similarity index 75% rename from modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/admin/indices/mapping/create/RestCreateMappingAction.java rename to modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/admin/indices/mapping/put/RestPutMappingAction.java index 5e15b38a0fb..bd9c95ae7e3 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/admin/indices/mapping/create/RestCreateMappingAction.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/admin/indices/mapping/put/RestPutMappingAction.java @@ -17,12 +17,12 @@ * under the License. */ -package org.elasticsearch.rest.action.admin.indices.mapping.create; +package org.elasticsearch.rest.action.admin.indices.mapping.put; import com.google.inject.Inject; import org.elasticsearch.action.ActionListener; -import org.elasticsearch.action.admin.indices.mapping.create.CreateMappingRequest; -import org.elasticsearch.action.admin.indices.mapping.create.CreateMappingResponse; +import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; +import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse; import org.elasticsearch.client.Client; import org.elasticsearch.index.mapper.InvalidTypeNameException; import org.elasticsearch.indices.IndexMissingException; @@ -41,23 +41,23 @@ import static org.elasticsearch.rest.action.support.RestActions.*; import static org.elasticsearch.util.TimeValue.*; /** - * @author kimchy (Shay Banon) + * @author kimchy (shay.banon) */ -public class RestCreateMappingAction extends BaseRestHandler { +public class RestPutMappingAction extends BaseRestHandler { - @Inject public RestCreateMappingAction(Settings settings, Client client, RestController controller) { + @Inject public RestPutMappingAction(Settings settings, Client client, RestController controller) { super(settings, client); controller.registerHandler(PUT, "/{index}/_mapping", this); controller.registerHandler(PUT, "/{index}/{type}/_mapping", this); } @Override public void handleRequest(final RestRequest request, final RestChannel channel) { - CreateMappingRequest createMappingRequest = createMappingRequest(splitIndices(request.param("index"))); - createMappingRequest.type(request.param("type")); - createMappingRequest.mappingSource(request.contentAsString()); - createMappingRequest.timeout(request.paramAsTime("timeout", timeValueSeconds(10))); - client.admin().indices().execCreateMapping(createMappingRequest, new ActionListener() { - @Override public void onResponse(CreateMappingResponse result) { + PutMappingRequest putMappingRequest = putMappingRequest(splitIndices(request.param("index"))); + putMappingRequest.type(request.param("type")); + putMappingRequest.mappingSource(request.contentAsString()); + putMappingRequest.timeout(request.paramAsTime("timeout", timeValueSeconds(10))); + client.admin().indices().execPutMapping(putMappingRequest, new ActionListener() { + @Override public void onResponse(PutMappingResponse result) { try { JsonBuilder builder = RestJsonBuilder.cached(request); builder.startObject()