diff --git a/common/src/main/java/org/opensearch/sql/common/setting/LegacySettings.java b/common/src/main/java/org/opensearch/sql/common/setting/LegacySettings.java deleted file mode 100644 index e8dc76645ae..00000000000 --- a/common/src/main/java/org/opensearch/sql/common/setting/LegacySettings.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright OpenSearch Contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -package org.opensearch.sql.common.setting; - -import lombok.Getter; -import lombok.RequiredArgsConstructor; - -/** Legacy Open Distro Settings. */ -public abstract class LegacySettings { - @RequiredArgsConstructor - public enum Key { - - /** Legacy SQL Settings. */ - SQL_ENABLED("opendistro.sql.enabled"), - SQL_QUERY_SLOWLOG("opendistro.sql.query.slowlog"), - SQL_CURSOR_KEEPALIVE("opendistro.sql.cursor.keep_alive"), - METRICS_ROLLING_WINDOW("opendistro.sql.metrics.rollingwindow"), - METRICS_ROLLING_INTERVAL("opendistro.sql.metrics.rollinginterval"), - - /** Legacy PPL Settings. */ - PPL_ENABLED("opendistro.ppl.enabled"), - PPL_QUERY_MEMORY_LIMIT("opendistro.ppl.query.memory_limit"), - - /** Legacy Common Settings. */ - QUERY_SIZE_LIMIT("opendistro.query.size_limit"), - - /** Deprecated Settings. */ - SQL_NEW_ENGINE_ENABLED("opendistro.sql.engine.new.enabled"), - QUERY_ANALYSIS_ENABLED("opendistro.sql.query.analysis.enabled"), - QUERY_ANALYSIS_SEMANTIC_SUGGESTION("opendistro.sql.query.analysis.semantic.suggestion"), - QUERY_ANALYSIS_SEMANTIC_THRESHOLD("opendistro.sql.query.analysis.semantic.threshold"), - QUERY_RESPONSE_FORMAT("opendistro.sql.query.response.format"), - SQL_CURSOR_ENABLED("opendistro.sql.cursor.enabled"), - SQL_CURSOR_FETCH_SIZE("opendistro.sql.cursor.fetch_size"); - - @Getter private final String keyValue; - } - - public abstract T getSettingValue(Key key); -} diff --git a/docs/user/admin/settings.rst b/docs/user/admin/settings.rst index cbcb4f329da..b4265deaf73 100644 --- a/docs/user/admin/settings.rst +++ b/docs/user/admin/settings.rst @@ -16,36 +16,6 @@ Introduction When OpenSearch bootstraps, SQL plugin will register a few settings in OpenSearch cluster settings. Most of the settings are able to change dynamically so you can control the behavior of SQL plugin without need to bounce your cluster. You can update the settings by sending requests to either ``_cluster/settings`` or ``_plugins/_query/settings`` endpoint, though the examples are sending to the latter. -Breaking Change -=============== -opendistro.sql.engine.new.enabled ---------------------------------- -The opendistro.sql.engine.new.enabled setting is deprecated and will be removed then. From OpenSearch 1.0, the new engine is always enabled. - -opendistro.sql.query.analysis.enabled -------------------------------------- -The opendistro.sql.query.analysis.enabled setting is deprecated and will be removed then. From OpenSearch 1.0, the query analysis in legacy engine is disabled. - -opendistro.sql.query.analysis.semantic.suggestion -------------------------------------------------- -The opendistro.sql.query.analysis.semantic.suggestion setting is deprecated and will be removed then. From OpenSearch 1.0, the query analysis suggestion in legacy engine is disabled. - -opendistro.sql.query.analysis.semantic.threshold ------------------------------------------------- -The opendistro.sql.query.analysis.semantic.threshold setting is deprecated and will be removed then. From OpenSearch 1.0, the query analysis threshold in legacy engine is disabled. - -opendistro.sql.query.response.format ------------------------------------- -The opendistro.sql.query.response.format setting is deprecated and will be removed then. From OpenSearch 1.0, the query response format is default to JDBC format. `You can change the format by using query parameters<../interfaces/protocol.rst>`_. - -opendistro.sql.cursor.enabled ------------------------------ -The opendistro.sql.cursor.enabled setting is deprecated and will be removed then. From OpenSearch 1.0, the cursor feature is enabled by default. - -opendistro.sql.cursor.fetch_size --------------------------------- -The opendistro.sql.cursor.fetch_size setting is deprecated and will be removed then. From OpenSearch 1.0, the fetch_size in query body will decide whether create the cursor context. No cursor will be created if the fetch_size = 0. - plugins.sql.enabled ====================== @@ -86,8 +56,6 @@ Result set:: } } -Note: the legacy settings of ``opendistro.sql.enabled`` is deprecated, it will fallback to the new settings if you request an update with the legacy name. - Example 2 --------- @@ -150,8 +118,6 @@ Result set:: } } -Note: the legacy settings of ``opendistro.sql.slowlog`` is deprecated, it will fallback to the new settings if you request an update with the legacy name. - plugins.sql.cursor.keep_alive ================================ @@ -194,8 +160,6 @@ Result set:: } } -Note: the legacy settings of ``opendistro.sql.cursor.keep_alive`` is deprecated, it will fallback to the new settings if you request an update with the legacy name. - plugins.sql.pagination.api ================================ @@ -268,8 +232,6 @@ Result set:: } } -Note: the legacy settings of ``opendistro.query.size_limit`` is deprecated, it will fallback to the new settings if you request an update with the legacy name. - plugins.query.memory_limit ========================== @@ -298,9 +260,6 @@ Result set:: "transient": {} } -Note: the legacy settings of ``opendistro.ppl.query.memory_limit`` is deprecated, it will fallback to the new settings if you request an update with the legacy name. - - plugins.sql.delete.enabled ====================== diff --git a/integ-test/src/test/java/org/opensearch/sql/bwc/SQLBackwardsCompatibilityIT.java b/integ-test/src/test/java/org/opensearch/sql/bwc/SQLBackwardsCompatibilityIT.java index 8c6c5d67103..39f0c68959f 100644 --- a/integ-test/src/test/java/org/opensearch/sql/bwc/SQLBackwardsCompatibilityIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/bwc/SQLBackwardsCompatibilityIT.java @@ -8,9 +8,9 @@ import static org.opensearch.sql.legacy.TestUtils.createIndexByRestClient; import static org.opensearch.sql.legacy.TestUtils.isIndexExist; import static org.opensearch.sql.legacy.TestUtils.loadDataByRestClient; -import static org.opensearch.sql.legacy.plugin.RestSqlAction.LEGACY_QUERY_API_ENDPOINT; import static org.opensearch.sql.legacy.plugin.RestSqlAction.QUERY_API_ENDPOINT; -import static org.opensearch.sql.plugin.rest.RestQuerySettingsAction.LEGACY_SQL_SETTINGS_API_ENDPOINT; +import static org.opensearch.sql.sql.LegacyAPICompatibilityIT.LEGACY_QUERY_API_ENDPOINT; +import static org.opensearch.sql.sql.LegacyAPICompatibilityIT.LEGACY_SQL_SETTINGS_API_ENDPOINT; import static org.opensearch.sql.util.MatcherUtils.rows; import static org.opensearch.sql.util.MatcherUtils.schema; import static org.opensearch.sql.util.MatcherUtils.verifyDataRows; @@ -93,21 +93,33 @@ public void testBackwardsCompatibility() throws Exception { List> plugins = (List>) response.get("plugins"); Set pluginNames = plugins.stream().map(map -> map.get("name")).collect(Collectors.toSet()); + String version = (String) response.get("version"); + + boolean isBackwardsIncompatibleVersion = version.startsWith("2."); + switch (CLUSTER_TYPE) { case OLD: Assert.assertTrue(pluginNames.contains("opensearch-sql")); - updateLegacySQLSettings(); + if (isBackwardsIncompatibleVersion) { + updateLegacySQLSettings(); + } loadIndex(Index.ACCOUNT); - verifySQLQueries(LEGACY_QUERY_API_ENDPOINT); + verifySQLQueries( + isBackwardsIncompatibleVersion ? LEGACY_QUERY_API_ENDPOINT : QUERY_API_ENDPOINT); break; case MIXED: Assert.assertTrue(pluginNames.contains("opensearch-sql")); - verifySQLSettings(); - verifySQLQueries(LEGACY_QUERY_API_ENDPOINT); + if (isBackwardsIncompatibleVersion) { + verifySQLSettings(); + } else { + // For upgraded nodes, we don't need to verify legacy settings + } + verifySQLQueries( + isBackwardsIncompatibleVersion ? LEGACY_QUERY_API_ENDPOINT : QUERY_API_ENDPOINT); break; case UPGRADED: Assert.assertTrue(pluginNames.contains("opensearch-sql")); - verifySQLSettings(); + // For fully upgraded clusters, we don't need to verify legacy settings verifySQLQueries(QUERY_API_ENDPOINT); break; } diff --git a/integ-test/src/test/java/org/opensearch/sql/legacy/SQLIntegTestCase.java b/integ-test/src/test/java/org/opensearch/sql/legacy/SQLIntegTestCase.java index 328e76013f4..f59fe82fa0c 100644 --- a/integ-test/src/test/java/org/opensearch/sql/legacy/SQLIntegTestCase.java +++ b/integ-test/src/test/java/org/opensearch/sql/legacy/SQLIntegTestCase.java @@ -53,6 +53,7 @@ import java.nio.file.Paths; import java.util.Locale; import java.util.Map; +import java.util.concurrent.Callable; import javax.management.MBeanServerInvocationHandler; import javax.management.ObjectName; import javax.management.remote.JMXConnector; @@ -68,6 +69,7 @@ import org.opensearch.client.Request; import org.opensearch.client.RequestOptions; import org.opensearch.client.Response; +import org.opensearch.client.ResponseException; import org.opensearch.client.RestClient; import org.opensearch.sql.common.setting.Settings; import org.opensearch.sql.datasource.model.DataSourceMetadata; @@ -252,6 +254,18 @@ protected Request getSqlCursorCloseRequest(String cursorRequest) { return sqlRequest; } + protected void assertBadRequest(Callable operation) { + try { + operation.call(); + Assert.fail("Expected ResponseException was not thrown"); + } catch (ResponseException e) { + Assert.assertEquals(400, e.getResponse().getStatusLine().getStatusCode()); + Assert.assertEquals("Bad Request", e.getResponse().getStatusLine().getReasonPhrase()); + } catch (Exception e) { + Assert.fail("Unexpected exception: " + e.getMessage()); + } + } + protected String executeQuery(String query, String requestType) { return executeQuery(query, requestType, Map.of()); } diff --git a/integ-test/src/test/java/org/opensearch/sql/ppl/LegacyAPICompatibilityIT.java b/integ-test/src/test/java/org/opensearch/sql/ppl/LegacyAPICompatibilityIT.java index c14b9baa35c..f119efbe700 100644 --- a/integ-test/src/test/java/org/opensearch/sql/ppl/LegacyAPICompatibilityIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/ppl/LegacyAPICompatibilityIT.java @@ -4,9 +4,6 @@ */ package org.opensearch.sql.ppl; -import static org.opensearch.sql.plugin.rest.RestPPLQueryAction.LEGACY_EXPLAIN_API_ENDPOINT; -import static org.opensearch.sql.plugin.rest.RestPPLQueryAction.LEGACY_QUERY_API_ENDPOINT; -import static org.opensearch.sql.plugin.rest.RestPPLStatsAction.PPL_LEGACY_STATS_API_ENDPOINT; import static org.opensearch.sql.plugin.rest.RestQuerySettingsAction.SETTINGS_API_ENDPOINT; import java.io.IOException; @@ -18,6 +15,10 @@ /** For backward compatibility, check if legacy API endpoints are accessible. */ public class LegacyAPICompatibilityIT extends PPLIntegTestCase { + public static final String LEGACY_PPL_API_ENDPOINT = "/_opendistro/_ppl"; + public static final String LEGACY_PPL_EXPLAIN_API_ENDPOINT = "/_opendistro/_ppl/_explain"; + public static final String LEGACY_PPL_SETTINGS_API_ENDPOINT = "/_opendistro/_ppl/settings"; + public static final String LEGACY_PPL_STATS_API_ENDPOINT = "/_opendistro/_ppl/stats"; @Override public void init() throws IOException { @@ -25,42 +26,49 @@ public void init() throws IOException { } @Test - public void query() throws IOException { + public void query() { String query = "source=opensearch-sql_test_index_account | where age > 30"; - Request request = buildRequest(query, LEGACY_QUERY_API_ENDPOINT); - Response response = client().performRequest(request); - Assert.assertEquals(200, response.getStatusLine().getStatusCode()); + Request request = buildRequest(query, LEGACY_PPL_API_ENDPOINT); + assertBadRequest(() -> client().performRequest(request)); } @Test - public void explain() throws IOException { + public void explain() { String query = "source=opensearch-sql_test_index_account | where age > 30"; - Request request = buildRequest(query, LEGACY_EXPLAIN_API_ENDPOINT); - Response response = client().performRequest(request); - Assert.assertEquals(200, response.getStatusLine().getStatusCode()); + Request request = buildRequest(query, LEGACY_PPL_EXPLAIN_API_ENDPOINT); + assertBadRequest(() -> client().performRequest(request)); } @Test - public void stats() throws IOException { - Request request = new Request("GET", PPL_LEGACY_STATS_API_ENDPOINT); - Response response = client().performRequest(request); - Assert.assertEquals(200, response.getStatusLine().getStatusCode()); + public void stats() { + Request request = new Request("GET", LEGACY_PPL_STATS_API_ENDPOINT); + assertBadRequest(() -> client().performRequest(request)); } @Test - public void legacySettingNewEndpoint() throws IOException { + public void legacyPPLSettingNewEndpoint() { String requestBody = "{" + " \"persistent\": {" + " \"opendistro.ppl.query.memory_limit\": \"80%\"" + " }" + "}"; - Response response = updateSetting(SETTINGS_API_ENDPOINT, requestBody); - Assert.assertEquals(200, response.getStatusLine().getStatusCode()); + assertBadRequest(() -> updateSetting(SETTINGS_API_ENDPOINT, requestBody)); + } + + @Test + public void newPPLSettingsLegacyEndpoint() { + String requestBody = + "{" + + " \"persistent\": {" + + " \"plugins.ppl.query.memory_limit\": \"90%\"" + + " }" + + "}"; + assertBadRequest(() -> updateSetting(LEGACY_PPL_SETTINGS_API_ENDPOINT, requestBody)); } @Test - public void newSettingNewEndpoint() throws IOException { + public void newPPLSettingNewEndpoint() throws IOException { String requestBody = "{" + " \"persistent\": {" + " \"plugins.query.size_limit\": \"100\"" + " }" + "}"; Response response = updateSetting(SETTINGS_API_ENDPOINT, requestBody); diff --git a/integ-test/src/test/java/org/opensearch/sql/sql/LegacyAPICompatibilityIT.java b/integ-test/src/test/java/org/opensearch/sql/sql/LegacyAPICompatibilityIT.java index e9c0fd2c55c..155d9002aed 100644 --- a/integ-test/src/test/java/org/opensearch/sql/sql/LegacyAPICompatibilityIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/sql/LegacyAPICompatibilityIT.java @@ -5,13 +5,7 @@ package org.opensearch.sql.sql; -import static org.hamcrest.Matchers.equalTo; import static org.opensearch.sql.legacy.TestsConstants.TEST_INDEX_ACCOUNT; -import static org.opensearch.sql.legacy.plugin.RestSqlAction.LEGACY_CURSOR_CLOSE_ENDPOINT; -import static org.opensearch.sql.legacy.plugin.RestSqlAction.LEGACY_EXPLAIN_API_ENDPOINT; -import static org.opensearch.sql.legacy.plugin.RestSqlAction.LEGACY_QUERY_API_ENDPOINT; -import static org.opensearch.sql.legacy.plugin.RestSqlStatsAction.LEGACY_STATS_API_ENDPOINT; -import static org.opensearch.sql.plugin.rest.RestQuerySettingsAction.LEGACY_SQL_SETTINGS_API_ENDPOINT; import static org.opensearch.sql.plugin.rest.RestQuerySettingsAction.SETTINGS_API_ENDPOINT; import java.io.IOException; @@ -27,29 +21,32 @@ /** For backward compatibility, check if legacy API endpoints are accessible. */ public class LegacyAPICompatibilityIT extends SQLIntegTestCase { + public static final String LEGACY_QUERY_API_ENDPOINT = "/_opendistro/_sql"; + public static final String LEGACY_CURSOR_CLOSE_ENDPOINT = LEGACY_QUERY_API_ENDPOINT + "/close"; + public static final String LEGACY_EXPLAIN_API_ENDPOINT = LEGACY_QUERY_API_ENDPOINT + "/_explain"; + public static final String LEGACY_SQL_SETTINGS_API_ENDPOINT = + LEGACY_QUERY_API_ENDPOINT + "/settings"; + public static final String LEGACY_STATS_API_ENDPOINT = LEGACY_QUERY_API_ENDPOINT + "/stats"; + @Override protected void init() throws Exception { loadIndex(Index.ACCOUNT); } @Test - public void query() throws IOException { + public void query() { String requestBody = makeRequest("SELECT 1"); Request request = new Request("POST", LEGACY_QUERY_API_ENDPOINT); request.setJsonEntity(requestBody); - - Response response = client().performRequest(request); - Assert.assertEquals(200, response.getStatusLine().getStatusCode()); + assertBadRequest(() -> client().performRequest(request)); } @Test - public void explain() throws IOException { + public void explain() { String requestBody = makeRequest("SELECT 1"); Request request = new Request("POST", LEGACY_EXPLAIN_API_ENDPOINT); request.setJsonEntity(requestBody); - - Response response = client().performRequest(request); - Assert.assertEquals(200, response.getStatusLine().getStatusCode()); + assertBadRequest(() -> client().performRequest(request)); } @Test @@ -61,39 +58,27 @@ public void closeCursor() throws IOException { Request request = new Request("POST", LEGACY_CURSOR_CLOSE_ENDPOINT); request.setJsonEntity(makeCursorRequest(result.getString("cursor"))); request.setOptions(buildJsonOption()); - JSONObject response = new JSONObject(executeRequest(request)); - assertThat(response.getBoolean("succeeded"), equalTo(true)); + assertBadRequest(() -> client().performRequest(request)); } @Test - public void stats() throws IOException { + public void stats() { Request request = new Request("GET", LEGACY_STATS_API_ENDPOINT); - Response response = client().performRequest(request); - Assert.assertEquals(200, response.getStatusLine().getStatusCode()); - } - - @Test - public void legacySettingsLegacyEndpoint() throws IOException { - String requestBody = - "{" + " \"persistent\": {" + " \"opendistro.sql.query.slowlog\": \"10\"" + " }" + "}"; - Response response = updateSetting(LEGACY_SQL_SETTINGS_API_ENDPOINT, requestBody); - Assert.assertEquals(200, response.getStatusLine().getStatusCode()); + assertBadRequest(() -> client().performRequest(request)); } @Test - public void legacySettingNewEndpoint() throws IOException { + public void legacySettingNewEndpoint() { String requestBody = "{" + " \"persistent\": {" + " \"opendistro.query.size_limit\": \"100\"" + " }" + "}"; - Response response = updateSetting(SETTINGS_API_ENDPOINT, requestBody); - Assert.assertEquals(200, response.getStatusLine().getStatusCode()); + assertBadRequest(() -> updateSetting(SETTINGS_API_ENDPOINT, requestBody)); } @Test public void newSettingsLegacyEndpoint() throws IOException { String requestBody = "{" + " \"persistent\": {" + " \"plugins.sql.slowlog\": \"10\"" + " }" + "}"; - Response response = updateSetting(LEGACY_SQL_SETTINGS_API_ENDPOINT, requestBody); - Assert.assertEquals(200, response.getStatusLine().getStatusCode()); + assertBadRequest(() -> updateSetting(LEGACY_SQL_SETTINGS_API_ENDPOINT, requestBody)); } @Test diff --git a/legacy/src/main/java/org/opensearch/sql/legacy/plugin/RestSqlAction.java b/legacy/src/main/java/org/opensearch/sql/legacy/plugin/RestSqlAction.java index c47e5f05bd0..31a28eb9431 100644 --- a/legacy/src/main/java/org/opensearch/sql/legacy/plugin/RestSqlAction.java +++ b/legacy/src/main/java/org/opensearch/sql/legacy/plugin/RestSqlAction.java @@ -79,9 +79,6 @@ public class RestSqlAction extends BaseRestHandler { public static final String EXPLAIN_API_ENDPOINT = QUERY_API_ENDPOINT + "/_explain"; public static final String CURSOR_CLOSE_ENDPOINT = QUERY_API_ENDPOINT + "/close"; - public static final String LEGACY_QUERY_API_ENDPOINT = "/_opendistro/_sql"; - public static final String LEGACY_EXPLAIN_API_ENDPOINT = LEGACY_QUERY_API_ENDPOINT + "/_explain"; - public static final String LEGACY_CURSOR_CLOSE_ENDPOINT = LEGACY_QUERY_API_ENDPOINT + "/close"; /** New SQL query request handler. */ private final RestSQLQueryAction newSqlQueryHandler; @@ -94,21 +91,10 @@ public RestSqlAction(Settings settings, Injector injector) { @Override public List routes() { - return ImmutableList.of(); - } - - @Override - public List replacedRoutes() { return ImmutableList.of( - new ReplacedRoute( - RestRequest.Method.POST, QUERY_API_ENDPOINT, - RestRequest.Method.POST, LEGACY_QUERY_API_ENDPOINT), - new ReplacedRoute( - RestRequest.Method.POST, EXPLAIN_API_ENDPOINT, - RestRequest.Method.POST, LEGACY_EXPLAIN_API_ENDPOINT), - new ReplacedRoute( - RestRequest.Method.POST, CURSOR_CLOSE_ENDPOINT, - RestRequest.Method.POST, LEGACY_CURSOR_CLOSE_ENDPOINT)); + new Route(RestRequest.Method.POST, QUERY_API_ENDPOINT), + new Route(RestRequest.Method.POST, EXPLAIN_API_ENDPOINT), + new Route(RestRequest.Method.POST, CURSOR_CLOSE_ENDPOINT)); } @Override diff --git a/legacy/src/main/java/org/opensearch/sql/legacy/plugin/RestSqlStatsAction.java b/legacy/src/main/java/org/opensearch/sql/legacy/plugin/RestSqlStatsAction.java index 6f9d1e41175..493115a726b 100644 --- a/legacy/src/main/java/org/opensearch/sql/legacy/plugin/RestSqlStatsAction.java +++ b/legacy/src/main/java/org/opensearch/sql/legacy/plugin/RestSqlStatsAction.java @@ -39,8 +39,6 @@ public class RestSqlStatsAction extends BaseRestHandler { /** API endpoint path */ public static final String STATS_API_ENDPOINT = "/_plugins/_sql/stats"; - public static final String LEGACY_STATS_API_ENDPOINT = "/_opendistro/_sql/stats"; - public RestSqlStatsAction(Settings settings, RestController restController) { super(); } @@ -52,18 +50,9 @@ public String getName() { @Override public List routes() { - return ImmutableList.of(); - } - - @Override - public List replacedRoutes() { return ImmutableList.of( - new ReplacedRoute( - RestRequest.Method.POST, STATS_API_ENDPOINT, - RestRequest.Method.POST, LEGACY_STATS_API_ENDPOINT), - new ReplacedRoute( - RestRequest.Method.GET, STATS_API_ENDPOINT, - RestRequest.Method.GET, LEGACY_STATS_API_ENDPOINT)); + new Route(RestRequest.Method.POST, STATS_API_ENDPOINT), + new Route(RestRequest.Method.GET, STATS_API_ENDPOINT)); } @Override diff --git a/opensearch/src/main/java/org/opensearch/sql/opensearch/setting/LegacyOpenDistroSettings.java b/opensearch/src/main/java/org/opensearch/sql/opensearch/setting/LegacyOpenDistroSettings.java deleted file mode 100644 index f20551b89d3..00000000000 --- a/opensearch/src/main/java/org/opensearch/sql/opensearch/setting/LegacyOpenDistroSettings.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright OpenSearch Contributors - * SPDX-License-Identifier: Apache-2.0 - */ - -package org.opensearch.sql.opensearch.setting; - -import static org.opensearch.common.unit.TimeValue.timeValueMinutes; - -import com.google.common.collect.ImmutableList; -import java.util.List; -import lombok.experimental.UtilityClass; -import org.opensearch.common.settings.Setting; -import org.opensearch.common.unit.TimeValue; -import org.opensearch.core.common.unit.ByteSizeValue; -import org.opensearch.sql.common.setting.LegacySettings; - -@UtilityClass -public class LegacyOpenDistroSettings { - - public static final Setting SQL_ENABLED_SETTING = - Setting.boolSetting( - LegacySettings.Key.SQL_ENABLED.getKeyValue(), - true, - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - public static final Setting SQL_QUERY_SLOWLOG_SETTING = - Setting.intSetting( - LegacySettings.Key.SQL_QUERY_SLOWLOG.getKeyValue(), - 2, - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - public static final Setting SQL_CURSOR_KEEPALIVE_SETTING = - Setting.positiveTimeSetting( - LegacySettings.Key.SQL_CURSOR_KEEPALIVE.getKeyValue(), - timeValueMinutes(1), - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - public static final Setting METRICS_ROLLING_WINDOW_SETTING = - Setting.longSetting( - LegacySettings.Key.METRICS_ROLLING_WINDOW.getKeyValue(), - 3600L, - 2L, - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - public static final Setting METRICS_ROLLING_INTERVAL_SETTING = - Setting.longSetting( - LegacySettings.Key.METRICS_ROLLING_INTERVAL.getKeyValue(), - 60L, - 1L, - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - public static final Setting PPL_ENABLED_SETTING = - Setting.boolSetting( - LegacySettings.Key.PPL_ENABLED.getKeyValue(), - true, - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - public static final Setting PPL_QUERY_MEMORY_LIMIT_SETTING = - Setting.memorySizeSetting( - LegacySettings.Key.PPL_QUERY_MEMORY_LIMIT.getKeyValue(), - "85%", - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - public static final Setting QUERY_SIZE_LIMIT_SETTING = - Setting.intSetting( - LegacySettings.Key.QUERY_SIZE_LIMIT.getKeyValue(), - 200, - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - /** Deprecated and will be removed then. From OpenSearch 1.0, the new engine is always enabled. */ - public static final Setting SQL_NEW_ENGINE_ENABLED_SETTING = - Setting.boolSetting( - LegacySettings.Key.SQL_NEW_ENGINE_ENABLED.getKeyValue(), - true, - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - /** - * Deprecated and will be removed then. From OpenSearch 1.0, the query analysis in legacy engine - * is disabled. - */ - public static final Setting QUERY_ANALYSIS_ENABLED_SETTING = - Setting.boolSetting( - LegacySettings.Key.QUERY_ANALYSIS_ENABLED.getKeyValue(), - false, - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - /** - * Deprecated and will be removed then. From OpenSearch 1.0, the query analysis suggestion in - * legacy engine is disabled. - */ - public static final Setting QUERY_ANALYSIS_SEMANTIC_SUGGESTION_SETTING = - Setting.boolSetting( - LegacySettings.Key.QUERY_ANALYSIS_SEMANTIC_SUGGESTION.getKeyValue(), - false, - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - /** - * Deprecated and will be removed then. From OpenSearch 1.0, the query analysis threshold in - * legacy engine is disabled. - */ - public static final Setting QUERY_ANALYSIS_SEMANTIC_THRESHOLD_SETTING = - Setting.intSetting( - LegacySettings.Key.QUERY_ANALYSIS_SEMANTIC_THRESHOLD.getKeyValue(), - 200, - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - /** - * Deprecated and will be removed then. From OpenSearch 1.0, the query response format is default - * to JDBC format. - */ - public static final Setting QUERY_RESPONSE_FORMAT_SETTING = - Setting.simpleString( - LegacySettings.Key.QUERY_RESPONSE_FORMAT.getKeyValue(), - "jdbc", - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - /** - * Deprecated and will be removed then. From OpenSearch 1.0, the cursor feature is enabled by - * default. - */ - public static final Setting SQL_CURSOR_ENABLED_SETTING = - Setting.boolSetting( - LegacySettings.Key.SQL_CURSOR_ENABLED.getKeyValue(), - true, - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - /** - * Deprecated and will be removed then. From OpenSearch 1.0, the fetch_size in query body will - * decide whether create the cursor context. No cursor will be created if the fetch_size = 0. - */ - public static final Setting SQL_CURSOR_FETCH_SIZE_SETTING = - Setting.intSetting( - LegacySettings.Key.SQL_CURSOR_FETCH_SIZE.getKeyValue(), - 1000, - Setting.Property.NodeScope, - Setting.Property.Dynamic, - Setting.Property.Deprecated); - - /** Used by Plugin to init Setting. */ - public static List> legacySettings() { - return new ImmutableList.Builder>() - .add(SQL_ENABLED_SETTING) - .add(SQL_QUERY_SLOWLOG_SETTING) - .add(SQL_CURSOR_KEEPALIVE_SETTING) - .add(METRICS_ROLLING_WINDOW_SETTING) - .add(METRICS_ROLLING_INTERVAL_SETTING) - .add(PPL_ENABLED_SETTING) - .add(PPL_QUERY_MEMORY_LIMIT_SETTING) - .add(QUERY_SIZE_LIMIT_SETTING) - .add(SQL_NEW_ENGINE_ENABLED_SETTING) - .add(QUERY_ANALYSIS_ENABLED_SETTING) - .add(QUERY_ANALYSIS_SEMANTIC_SUGGESTION_SETTING) - .add(QUERY_ANALYSIS_SEMANTIC_THRESHOLD_SETTING) - .add(QUERY_RESPONSE_FORMAT_SETTING) - .add(SQL_CURSOR_ENABLED_SETTING) - .add(SQL_CURSOR_FETCH_SIZE_SETTING) - .build(); - } -} diff --git a/opensearch/src/main/java/org/opensearch/sql/opensearch/setting/OpenSearchSettings.java b/opensearch/src/main/java/org/opensearch/sql/opensearch/setting/OpenSearchSettings.java index 612771eea43..b6954a51f28 100644 --- a/opensearch/src/main/java/org/opensearch/sql/opensearch/setting/OpenSearchSettings.java +++ b/opensearch/src/main/java/org/opensearch/sql/opensearch/setting/OpenSearchSettings.java @@ -26,10 +26,8 @@ import org.opensearch.common.settings.ClusterSettings; import org.opensearch.common.settings.SecureSetting; import org.opensearch.common.settings.Setting; -import org.opensearch.common.unit.MemorySizeValue; import org.opensearch.common.unit.TimeValue; import org.opensearch.index.IndexSettings; -import org.opensearch.sql.common.setting.LegacySettings; import org.opensearch.sql.common.setting.Settings; /** Setting implementation on OpenSearch. */ @@ -45,14 +43,14 @@ public class OpenSearchSettings extends Settings { public static final Setting SQL_ENABLED_SETTING = Setting.boolSetting( Key.SQL_ENABLED.getKeyValue(), - LegacyOpenDistroSettings.SQL_ENABLED_SETTING, + true, Setting.Property.NodeScope, Setting.Property.Dynamic); public static final Setting SQL_SLOWLOG_SETTING = Setting.intSetting( Key.SQL_SLOWLOG.getKeyValue(), - LegacyOpenDistroSettings.SQL_QUERY_SLOWLOG_SETTING, + 2, 0, Setting.Property.NodeScope, Setting.Property.Dynamic); @@ -60,7 +58,7 @@ public class OpenSearchSettings extends Settings { public static final Setting SQL_CURSOR_KEEP_ALIVE_SETTING = Setting.positiveTimeSetting( Key.SQL_CURSOR_KEEP_ALIVE.getKeyValue(), - LegacyOpenDistroSettings.SQL_CURSOR_KEEPALIVE_SETTING, + timeValueMinutes(1), Setting.Property.NodeScope, Setting.Property.Dynamic); @@ -81,17 +79,14 @@ public class OpenSearchSettings extends Settings { public static final Setting PPL_ENABLED_SETTING = Setting.boolSetting( Key.PPL_ENABLED.getKeyValue(), - LegacyOpenDistroSettings.PPL_ENABLED_SETTING, + true, Setting.Property.NodeScope, Setting.Property.Dynamic); public static final Setting QUERY_MEMORY_LIMIT_SETTING = - new Setting<>( + Setting.memorySizeSetting( Key.QUERY_MEMORY_LIMIT.getKeyValue(), - LegacyOpenDistroSettings.PPL_QUERY_MEMORY_LIMIT_SETTING, - (s) -> - MemorySizeValue.parseBytesSizeValueOrHeapRatio( - s, LegacySettings.Key.PPL_QUERY_MEMORY_LIMIT.getKeyValue()), + "85%", Setting.Property.NodeScope, Setting.Property.Dynamic); @@ -106,7 +101,7 @@ public class OpenSearchSettings extends Settings { public static final Setting METRICS_ROLLING_WINDOW_SETTING = Setting.longSetting( Key.METRICS_ROLLING_WINDOW.getKeyValue(), - LegacyOpenDistroSettings.METRICS_ROLLING_WINDOW_SETTING, + 3600L, 2L, Setting.Property.NodeScope, Setting.Property.Dynamic); @@ -114,7 +109,7 @@ public class OpenSearchSettings extends Settings { public static final Setting METRICS_ROLLING_INTERVAL_SETTING = Setting.longSetting( Key.METRICS_ROLLING_INTERVAL.getKeyValue(), - LegacyOpenDistroSettings.METRICS_ROLLING_INTERVAL_SETTING, + 60L, 1L, Setting.Property.NodeScope, Setting.Property.Dynamic); diff --git a/opensearch/src/test/java/org/opensearch/sql/opensearch/setting/OpenSearchSettingsTest.java b/opensearch/src/test/java/org/opensearch/sql/opensearch/setting/OpenSearchSettingsTest.java index 026f0c6218a..9bf70602e8b 100644 --- a/opensearch/src/test/java/org/opensearch/sql/opensearch/setting/OpenSearchSettingsTest.java +++ b/opensearch/src/test/java/org/opensearch/sql/opensearch/setting/OpenSearchSettingsTest.java @@ -13,19 +13,10 @@ import static org.mockito.AdditionalMatchers.or; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.when; -import static org.opensearch.common.unit.TimeValue.timeValueMinutes; -import static org.opensearch.sql.opensearch.setting.LegacyOpenDistroSettings.legacySettings; import static org.opensearch.sql.opensearch.setting.OpenSearchSettings.ASYNC_QUERY_EXTERNAL_SCHEDULER_ENABLED_SETTING; import static org.opensearch.sql.opensearch.setting.OpenSearchSettings.ASYNC_QUERY_EXTERNAL_SCHEDULER_INTERVAL_SETTING; -import static org.opensearch.sql.opensearch.setting.OpenSearchSettings.METRICS_ROLLING_INTERVAL_SETTING; -import static org.opensearch.sql.opensearch.setting.OpenSearchSettings.METRICS_ROLLING_WINDOW_SETTING; -import static org.opensearch.sql.opensearch.setting.OpenSearchSettings.PPL_ENABLED_SETTING; import static org.opensearch.sql.opensearch.setting.OpenSearchSettings.QUERY_MEMORY_LIMIT_SETTING; -import static org.opensearch.sql.opensearch.setting.OpenSearchSettings.QUERY_SIZE_LIMIT_SETTING; import static org.opensearch.sql.opensearch.setting.OpenSearchSettings.SPARK_EXECUTION_ENGINE_CONFIG; -import static org.opensearch.sql.opensearch.setting.OpenSearchSettings.SQL_CURSOR_KEEP_ALIVE_SETTING; -import static org.opensearch.sql.opensearch.setting.OpenSearchSettings.SQL_ENABLED_SETTING; -import static org.opensearch.sql.opensearch.setting.OpenSearchSettings.SQL_SLOWLOG_SETTING; import java.util.List; import org.junit.jupiter.api.Test; @@ -36,9 +27,6 @@ import org.opensearch.common.settings.ClusterSettings; import org.opensearch.common.settings.Setting; import org.opensearch.core.common.unit.ByteSizeValue; -import org.opensearch.index.IndexSettings; -import org.opensearch.monitor.jvm.JvmInfo; -import org.opensearch.sql.common.setting.LegacySettings; import org.opensearch.sql.common.setting.Settings; @ExtendWith(MockitoExtension.class) @@ -108,75 +96,6 @@ void update() { assertNotEquals(newValue.getBytes(), oldValue.getBytes()); } - @Test - void settingsFallback() { - when(clusterSettings.get(ClusterName.CLUSTER_NAME_SETTING)).thenReturn(ClusterName.DEFAULT); - when(clusterSettings.get(not((eq(ClusterName.CLUSTER_NAME_SETTING))))).thenReturn(null); - OpenSearchSettings settings = new OpenSearchSettings(clusterSettings); - assertEquals( - settings.getSettingValue(Settings.Key.SQL_ENABLED), - LegacyOpenDistroSettings.SQL_ENABLED_SETTING.get( - org.opensearch.common.settings.Settings.EMPTY)); - assertEquals( - settings.getSettingValue(Settings.Key.SQL_SLOWLOG), - LegacyOpenDistroSettings.SQL_QUERY_SLOWLOG_SETTING.get( - org.opensearch.common.settings.Settings.EMPTY)); - assertEquals( - settings.getSettingValue(Settings.Key.SQL_CURSOR_KEEP_ALIVE), - LegacyOpenDistroSettings.SQL_CURSOR_KEEPALIVE_SETTING.get( - org.opensearch.common.settings.Settings.EMPTY)); - assertEquals( - settings.getSettingValue(Settings.Key.PPL_ENABLED), - LegacyOpenDistroSettings.PPL_ENABLED_SETTING.get( - org.opensearch.common.settings.Settings.EMPTY)); - assertEquals( - settings.getSettingValue(Settings.Key.QUERY_MEMORY_LIMIT), - LegacyOpenDistroSettings.PPL_QUERY_MEMORY_LIMIT_SETTING.get( - org.opensearch.common.settings.Settings.EMPTY)); - assertEquals( - settings.getSettingValue(Settings.Key.QUERY_SIZE_LIMIT), - IndexSettings.MAX_RESULT_WINDOW_SETTING.get(org.opensearch.common.settings.Settings.EMPTY)); - assertEquals( - settings.getSettingValue(Settings.Key.METRICS_ROLLING_WINDOW), - LegacyOpenDistroSettings.METRICS_ROLLING_WINDOW_SETTING.get( - org.opensearch.common.settings.Settings.EMPTY)); - assertEquals( - settings.getSettingValue(Settings.Key.METRICS_ROLLING_INTERVAL), - LegacyOpenDistroSettings.METRICS_ROLLING_INTERVAL_SETTING.get( - org.opensearch.common.settings.Settings.EMPTY)); - } - - @Test - public void updateLegacySettingsFallback() { - org.opensearch.common.settings.Settings settings = - org.opensearch.common.settings.Settings.builder() - .put(LegacySettings.Key.SQL_ENABLED.getKeyValue(), false) - .put(LegacySettings.Key.SQL_QUERY_SLOWLOG.getKeyValue(), 10) - .put(LegacySettings.Key.SQL_CURSOR_KEEPALIVE.getKeyValue(), timeValueMinutes(1)) - .put(LegacySettings.Key.PPL_ENABLED.getKeyValue(), true) - .put(LegacySettings.Key.PPL_QUERY_MEMORY_LIMIT.getKeyValue(), "20%") - .put(LegacySettings.Key.QUERY_SIZE_LIMIT.getKeyValue(), 100) - .put(LegacySettings.Key.METRICS_ROLLING_WINDOW.getKeyValue(), 2000L) - .put(LegacySettings.Key.METRICS_ROLLING_INTERVAL.getKeyValue(), 100L) - .build(); - - assertEquals(SQL_ENABLED_SETTING.get(settings), false); - assertEquals(SQL_SLOWLOG_SETTING.get(settings), 10); - assertEquals(SQL_CURSOR_KEEP_ALIVE_SETTING.get(settings), timeValueMinutes(1)); - assertEquals(PPL_ENABLED_SETTING.get(settings), true); - assertEquals( - QUERY_MEMORY_LIMIT_SETTING.get(settings), - new ByteSizeValue((int) (JvmInfo.jvmInfo().getMem().getHeapMax().getBytes() * 0.2))); - assertEquals(QUERY_SIZE_LIMIT_SETTING.get(settings), 10000); - assertEquals(METRICS_ROLLING_WINDOW_SETTING.get(settings), 2000L); - assertEquals(METRICS_ROLLING_INTERVAL_SETTING.get(settings), 100L); - } - - @Test - void legacySettingsShouldBeDeprecatedBeforeRemove() { - assertEquals(15, legacySettings().size()); - } - @Test void getSparkExecutionEngineConfigSetting() { // Default is empty string diff --git a/plugin/src/main/java/org/opensearch/sql/plugin/SQLPlugin.java b/plugin/src/main/java/org/opensearch/sql/plugin/SQLPlugin.java index 21b747e9e29..dfaf1c9aad3 100644 --- a/plugin/src/main/java/org/opensearch/sql/plugin/SQLPlugin.java +++ b/plugin/src/main/java/org/opensearch/sql/plugin/SQLPlugin.java @@ -77,7 +77,6 @@ import org.opensearch.sql.legacy.plugin.RestSqlAction; import org.opensearch.sql.legacy.plugin.RestSqlStatsAction; import org.opensearch.sql.opensearch.client.OpenSearchNodeClient; -import org.opensearch.sql.opensearch.setting.LegacyOpenDistroSettings; import org.opensearch.sql.opensearch.setting.OpenSearchSettings; import org.opensearch.sql.opensearch.storage.OpenSearchDataSourceFactory; import org.opensearch.sql.opensearch.storage.script.ExpressionScriptEngine; @@ -287,7 +286,6 @@ public List> getExecutorBuilders(Settings settings) { @Override public List> getSettings() { return new ImmutableList.Builder>() - .addAll(LegacyOpenDistroSettings.legacySettings()) .addAll(OpenSearchSettings.pluginSettings()) .addAll(OpenSearchSettings.pluginNonDynamicSettings()) .build(); diff --git a/plugin/src/main/java/org/opensearch/sql/plugin/rest/RestPPLQueryAction.java b/plugin/src/main/java/org/opensearch/sql/plugin/rest/RestPPLQueryAction.java index 7e6d3c14224..4663d79c865 100644 --- a/plugin/src/main/java/org/opensearch/sql/plugin/rest/RestPPLQueryAction.java +++ b/plugin/src/main/java/org/opensearch/sql/plugin/rest/RestPPLQueryAction.java @@ -41,8 +41,6 @@ public class RestPPLQueryAction extends BaseRestHandler { public static final String QUERY_API_ENDPOINT = "/_plugins/_ppl"; public static final String EXPLAIN_API_ENDPOINT = "/_plugins/_ppl/_explain"; - public static final String LEGACY_QUERY_API_ENDPOINT = "/_opendistro/_ppl"; - public static final String LEGACY_EXPLAIN_API_ENDPOINT = "/_opendistro/_ppl/_explain"; private static final Logger LOG = LogManager.getLogger(); @@ -66,18 +64,9 @@ private static boolean isClientError(Exception e) { @Override public List routes() { - return ImmutableList.of(); - } - - @Override - public List replacedRoutes() { - return Arrays.asList( - new ReplacedRoute( - RestRequest.Method.POST, QUERY_API_ENDPOINT, - RestRequest.Method.POST, LEGACY_QUERY_API_ENDPOINT), - new ReplacedRoute( - RestRequest.Method.POST, EXPLAIN_API_ENDPOINT, - RestRequest.Method.POST, LEGACY_EXPLAIN_API_ENDPOINT)); + return ImmutableList.of( + new Route(RestRequest.Method.POST, QUERY_API_ENDPOINT), + new Route(RestRequest.Method.POST, EXPLAIN_API_ENDPOINT)); } @Override diff --git a/plugin/src/main/java/org/opensearch/sql/plugin/rest/RestPPLStatsAction.java b/plugin/src/main/java/org/opensearch/sql/plugin/rest/RestPPLStatsAction.java index d3d7074b203..feeb0713a21 100644 --- a/plugin/src/main/java/org/opensearch/sql/plugin/rest/RestPPLStatsAction.java +++ b/plugin/src/main/java/org/opensearch/sql/plugin/rest/RestPPLStatsAction.java @@ -34,8 +34,6 @@ public class RestPPLStatsAction extends BaseRestHandler { /** API endpoint path. */ public static final String PPL_STATS_API_ENDPOINT = "/_plugins/_ppl/stats"; - public static final String PPL_LEGACY_STATS_API_ENDPOINT = "/_opendistro/_ppl/stats"; - public RestPPLStatsAction(Settings settings, RestController restController) { super(); } @@ -47,18 +45,9 @@ public String getName() { @Override public List routes() { - return ImmutableList.of(); - } - - @Override - public List replacedRoutes() { return ImmutableList.of( - new ReplacedRoute( - RestRequest.Method.POST, PPL_STATS_API_ENDPOINT, - RestRequest.Method.POST, PPL_LEGACY_STATS_API_ENDPOINT), - new ReplacedRoute( - RestRequest.Method.GET, PPL_STATS_API_ENDPOINT, - RestRequest.Method.GET, PPL_LEGACY_STATS_API_ENDPOINT)); + new Route(RestRequest.Method.POST, PPL_STATS_API_ENDPOINT), + new Route(RestRequest.Method.GET, PPL_STATS_API_ENDPOINT)); } @Override diff --git a/plugin/src/main/java/org/opensearch/sql/plugin/rest/RestQuerySettingsAction.java b/plugin/src/main/java/org/opensearch/sql/plugin/rest/RestQuerySettingsAction.java index f9080051b47..8fd6e6d5cee 100644 --- a/plugin/src/main/java/org/opensearch/sql/plugin/rest/RestQuerySettingsAction.java +++ b/plugin/src/main/java/org/opensearch/sql/plugin/rest/RestQuerySettingsAction.java @@ -36,25 +36,15 @@ public class RestQuerySettingsAction extends BaseRestHandler { private static final String SQL_SETTINGS_PREFIX = "plugins.sql."; private static final String PPL_SETTINGS_PREFIX = "plugins.ppl."; private static final String COMMON_SETTINGS_PREFIX = "plugins.query."; - private static final String LEGACY_SQL_SETTINGS_PREFIX = "opendistro.sql."; - private static final String LEGACY_PPL_SETTINGS_PREFIX = "opendistro.ppl."; - private static final String LEGACY_COMMON_SETTINGS_PREFIX = "opendistro.query."; private static final String EXECUTION_ENGINE_SETTINGS_PREFIX = "plugins.query.executionengine"; public static final String DATASOURCES_SETTINGS_PREFIX = "plugins.query.datasources"; private static final List SETTINGS_PREFIX = - ImmutableList.of( - SQL_SETTINGS_PREFIX, - PPL_SETTINGS_PREFIX, - COMMON_SETTINGS_PREFIX, - LEGACY_SQL_SETTINGS_PREFIX, - LEGACY_PPL_SETTINGS_PREFIX, - LEGACY_COMMON_SETTINGS_PREFIX); + ImmutableList.of(SQL_SETTINGS_PREFIX, PPL_SETTINGS_PREFIX, COMMON_SETTINGS_PREFIX); private static final List DENY_LIST_SETTINGS_PREFIX = ImmutableList.of(EXECUTION_ENGINE_SETTINGS_PREFIX, DATASOURCES_SETTINGS_PREFIX); public static final String SETTINGS_API_ENDPOINT = "/_plugins/_query/settings"; - public static final String LEGACY_SQL_SETTINGS_API_ENDPOINT = "/_opendistro/_sql/settings"; public RestQuerySettingsAction(Settings settings, RestController restController) { super(); @@ -67,15 +57,7 @@ public String getName() { @Override public List routes() { - return ImmutableList.of(); - } - - @Override - public List replacedRoutes() { - return ImmutableList.of( - new ReplacedRoute( - RestRequest.Method.PUT, SETTINGS_API_ENDPOINT, - RestRequest.Method.PUT, LEGACY_SQL_SETTINGS_API_ENDPOINT)); + return ImmutableList.of(new Route(RestRequest.Method.PUT, SETTINGS_API_ENDPOINT)); } @SuppressWarnings("unchecked")