Skip to content

Commit 5b4b4aa

Browse files
authored
Make GetTermVersionAction internal (opensearch-project#12866)
* Make GetTermVersionAction internal GetTermVersion action has been added to check if cluster state needs to be updated as a performance improvement on all cluster state checks. The Authorization systems in the Security Plugin check all actions that do not start with `internal:` for permissions causing users without `cluster:monitor/*` permissions to start getting 403 exceptions. This change signals that this action does not require an authorization check by any security systems since it cannot be called via REST APIs. Signed-off-by: Peter Nied <petern@amazon.com> * Move TermVerson action outside of admin/cluster namespace Signed-off-by: Peter Nied <petern@amazon.com> --------- Signed-off-by: Peter Nied <petern@amazon.com>
1 parent 8e332b6 commit 5b4b4aa

File tree

12 files changed

+19
-21
lines changed

12 files changed

+19
-21
lines changed

server/src/internalClusterTest/java/org/opensearch/cluster/state/FetchByTermVersionIT.java server/src/internalClusterTest/java/org/opensearch/action/support/clustermanager/term/FetchByTermVersionIT.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,10 @@
66
* compatible open source license.
77
*/
88

9-
package org.opensearch.cluster.state;
9+
package org.opensearch.action.support.clustermanager.term;
1010

1111
import org.opensearch.action.admin.cluster.state.ClusterStateRequest;
1212
import org.opensearch.action.admin.cluster.state.ClusterStateResponse;
13-
import org.opensearch.action.admin.cluster.state.term.GetTermVersionAction;
14-
import org.opensearch.action.admin.cluster.state.term.GetTermVersionResponse;
1513
import org.opensearch.action.admin.indices.mapping.put.PutMappingRequest;
1614
import org.opensearch.cluster.ClusterName;
1715
import org.opensearch.cluster.coordination.ClusterStateTermVersion;

server/src/main/java/org/opensearch/action/ActionModule.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,6 @@
107107
import org.opensearch.action.admin.cluster.snapshots.status.TransportSnapshotsStatusAction;
108108
import org.opensearch.action.admin.cluster.state.ClusterStateAction;
109109
import org.opensearch.action.admin.cluster.state.TransportClusterStateAction;
110-
import org.opensearch.action.admin.cluster.state.term.GetTermVersionAction;
111-
import org.opensearch.action.admin.cluster.state.term.TransportGetTermVersionAction;
112110
import org.opensearch.action.admin.cluster.stats.ClusterStatsAction;
113111
import org.opensearch.action.admin.cluster.stats.TransportClusterStatsAction;
114112
import org.opensearch.action.admin.cluster.storedscripts.DeleteStoredScriptAction;
@@ -283,6 +281,8 @@
283281
import org.opensearch.action.support.AutoCreateIndex;
284282
import org.opensearch.action.support.DestructiveOperations;
285283
import org.opensearch.action.support.TransportAction;
284+
import org.opensearch.action.support.clustermanager.term.GetTermVersionAction;
285+
import org.opensearch.action.support.clustermanager.term.TransportGetTermVersionAction;
286286
import org.opensearch.action.termvectors.MultiTermVectorsAction;
287287
import org.opensearch.action.termvectors.TermVectorsAction;
288288
import org.opensearch.action.termvectors.TransportMultiTermVectorsAction;

server/src/main/java/org/opensearch/action/support/clustermanager/TransportClusterManagerNodeAction.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@
3737
import org.apache.logging.log4j.message.ParameterizedMessage;
3838
import org.opensearch.action.ActionListenerResponseHandler;
3939
import org.opensearch.action.ActionRunnable;
40-
import org.opensearch.action.admin.cluster.state.term.GetTermVersionAction;
41-
import org.opensearch.action.admin.cluster.state.term.GetTermVersionRequest;
42-
import org.opensearch.action.admin.cluster.state.term.GetTermVersionResponse;
4340
import org.opensearch.action.bulk.BackoffPolicy;
4441
import org.opensearch.action.support.ActionFilters;
4542
import org.opensearch.action.support.HandledTransportAction;
4643
import org.opensearch.action.support.RetryableAction;
44+
import org.opensearch.action.support.clustermanager.term.GetTermVersionAction;
45+
import org.opensearch.action.support.clustermanager.term.GetTermVersionRequest;
46+
import org.opensearch.action.support.clustermanager.term.GetTermVersionResponse;
4747
import org.opensearch.cluster.ClusterManagerNodeChangePredicate;
4848
import org.opensearch.cluster.ClusterState;
4949
import org.opensearch.cluster.ClusterStateObserver;

server/src/main/java/org/opensearch/action/admin/cluster/state/term/GetTermVersionAction.java server/src/main/java/org/opensearch/action/support/clustermanager/term/GetTermVersionAction.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* compatible open source license.
77
*/
88

9-
package org.opensearch.action.admin.cluster.state.term;
9+
package org.opensearch.action.support.clustermanager.term;
1010

1111
import org.opensearch.action.ActionType;
1212

@@ -18,7 +18,7 @@
1818
public class GetTermVersionAction extends ActionType<GetTermVersionResponse> {
1919

2020
public static final GetTermVersionAction INSTANCE = new GetTermVersionAction();
21-
public static final String NAME = "cluster:monitor/term";
21+
public static final String NAME = "internal:monitor/term";
2222

2323
private GetTermVersionAction() {
2424
super(NAME, GetTermVersionResponse::new);

server/src/main/java/org/opensearch/action/admin/cluster/state/term/GetTermVersionRequest.java server/src/main/java/org/opensearch/action/support/clustermanager/term/GetTermVersionRequest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* compatible open source license.
77
*/
88

9-
package org.opensearch.action.admin.cluster.state.term;
9+
package org.opensearch.action.support.clustermanager.term;
1010

1111
import org.opensearch.action.ActionRequestValidationException;
1212
import org.opensearch.action.support.clustermanager.ClusterManagerNodeReadRequest;

server/src/main/java/org/opensearch/action/admin/cluster/state/term/GetTermVersionResponse.java server/src/main/java/org/opensearch/action/support/clustermanager/term/GetTermVersionResponse.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* compatible open source license.
77
*/
88

9-
package org.opensearch.action.admin.cluster.state.term;
9+
package org.opensearch.action.support.clustermanager.term;
1010

1111
import org.opensearch.cluster.ClusterState;
1212
import org.opensearch.cluster.coordination.ClusterStateTermVersion;

server/src/main/java/org/opensearch/action/admin/cluster/state/term/TransportGetTermVersionAction.java server/src/main/java/org/opensearch/action/support/clustermanager/term/TransportGetTermVersionAction.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* compatible open source license.
77
*/
88

9-
package org.opensearch.action.admin.cluster.state.term;
9+
package org.opensearch.action.support.clustermanager.term;
1010

1111
import org.apache.logging.log4j.LogManager;
1212
import org.apache.logging.log4j.Logger;

server/src/main/java/org/opensearch/action/admin/cluster/state/term/package-info.java server/src/main/java/org/opensearch/action/support/clustermanager/term/package-info.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77
*/
88

99
/** Cluster Term transport handler. */
10-
package org.opensearch.action.admin.cluster.state.term;
10+
package org.opensearch.action.support.clustermanager.term;

server/src/test/java/org/opensearch/action/support/clustermanager/TransportClusterManagerTermCheckTests.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@
3333

3434
import org.opensearch.Version;
3535
import org.opensearch.action.ActionRequestValidationException;
36-
import org.opensearch.action.admin.cluster.state.term.GetTermVersionResponse;
3736
import org.opensearch.action.support.ActionFilters;
3837
import org.opensearch.action.support.PlainActionFuture;
3938
import org.opensearch.action.support.ThreadedActionListener;
39+
import org.opensearch.action.support.clustermanager.term.GetTermVersionResponse;
4040
import org.opensearch.action.support.replication.ClusterStateCreationUtils;
4141
import org.opensearch.cluster.ClusterState;
4242
import org.opensearch.cluster.block.ClusterBlockException;
@@ -223,7 +223,7 @@ public void testTermCheckMatchWithClusterManager() throws ExecutionException, In
223223
assertThat(transport.capturedRequests().length, equalTo(1));
224224
CapturingTransport.CapturedRequest capturedRequest = transport.capturedRequests()[0];
225225
assertTrue(capturedRequest.node.isClusterManagerNode());
226-
assertThat(capturedRequest.action, equalTo("cluster:monitor/term"));
226+
assertThat(capturedRequest.action, equalTo("internal:monitor/term"));
227227
GetTermVersionResponse response = new GetTermVersionResponse(
228228
new ClusterStateTermVersion(
229229
clusterService.state().getClusterName(),
@@ -249,7 +249,7 @@ public void testTermCheckNoMatchWithClusterManager() throws ExecutionException,
249249
assertThat(transport.capturedRequests().length, equalTo(1));
250250
CapturingTransport.CapturedRequest termCheckRequest = transport.capturedRequests()[0];
251251
assertTrue(termCheckRequest.node.isClusterManagerNode());
252-
assertThat(termCheckRequest.action, equalTo("cluster:monitor/term"));
252+
assertThat(termCheckRequest.action, equalTo("internal:monitor/term"));
253253
GetTermVersionResponse noMatchResponse = new GetTermVersionResponse(
254254
new ClusterStateTermVersion(
255255
clusterService.state().getClusterName(),

server/src/test/java/org/opensearch/action/admin/cluster/state/term/ClusterTermVersionIT.java server/src/test/java/org/opensearch/action/support/clustermanager/term/ClusterTermVersionIT.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* compatible open source license.
77
*/
88

9-
package org.opensearch.action.admin.cluster.state.term;
9+
package org.opensearch.action.support.clustermanager.term;
1010

1111
import org.opensearch.action.admin.cluster.state.ClusterStateAction;
1212
import org.opensearch.action.admin.cluster.state.ClusterStateRequest;

server/src/test/java/org/opensearch/action/admin/cluster/state/term/ClusterTermVersionTests.java server/src/test/java/org/opensearch/action/support/clustermanager/term/ClusterTermVersionTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* compatible open source license.
77
*/
88

9-
package org.opensearch.action.admin.cluster.state.term;
9+
package org.opensearch.action.support.clustermanager.term;
1010

1111
import org.opensearch.cluster.service.ClusterService;
1212
import org.opensearch.test.OpenSearchSingleNodeTestCase;

server/src/test/java/org/opensearch/snapshots/SnapshotResiliencyTests.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@
6666
import org.opensearch.action.admin.cluster.state.ClusterStateRequest;
6767
import org.opensearch.action.admin.cluster.state.ClusterStateResponse;
6868
import org.opensearch.action.admin.cluster.state.TransportClusterStateAction;
69-
import org.opensearch.action.admin.cluster.state.term.GetTermVersionAction;
70-
import org.opensearch.action.admin.cluster.state.term.TransportGetTermVersionAction;
7169
import org.opensearch.action.admin.indices.create.CreateIndexAction;
7270
import org.opensearch.action.admin.indices.create.CreateIndexRequest;
7371
import org.opensearch.action.admin.indices.create.CreateIndexResponse;
@@ -105,6 +103,8 @@
105103
import org.opensearch.action.support.PlainActionFuture;
106104
import org.opensearch.action.support.TransportAction;
107105
import org.opensearch.action.support.WriteRequest;
106+
import org.opensearch.action.support.clustermanager.term.GetTermVersionAction;
107+
import org.opensearch.action.support.clustermanager.term.TransportGetTermVersionAction;
108108
import org.opensearch.action.support.master.AcknowledgedResponse;
109109
import org.opensearch.action.update.UpdateHelper;
110110
import org.opensearch.client.AdminClient;

0 commit comments

Comments
 (0)