SQL: switch from _sql/ endpoint to _xpack/sql endpoint (elastic/x-pack-elasticsearch#3270)
As a part of xpack, SQL should use _xpack/sql endpoint instead of _sql endpoint. relates elastic/x-pack-elasticsearch#3114 Original commit: elastic/x-pack-elasticsearch@f561b57f16
This commit is contained in:
parent
432f10e736
commit
b72a9b5674
|
@ -8,7 +8,7 @@ and returns the results. For example:
|
||||||
|
|
||||||
[source,js]
|
[source,js]
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
POST /_sql
|
POST /_xpack/sql
|
||||||
{
|
{
|
||||||
"query": "SELECT * FROM library ORDER BY page_count DESC LIMIT 5"
|
"query": "SELECT * FROM library ORDER BY page_count DESC LIMIT 5"
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ All formats above are supported, the GET parameter takes precedence over the hea
|
||||||
|
|
||||||
[source,js]
|
[source,js]
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
POST /_sql?format=json
|
POST /_xpack/sql?format=json
|
||||||
{
|
{
|
||||||
"query": "SELECT * FROM library ORDER BY page_count DESC",
|
"query": "SELECT * FROM library ORDER BY page_count DESC",
|
||||||
"fetch_size": 5
|
"fetch_size": 5
|
||||||
|
@ -81,7 +81,7 @@ case of text format the cursor is returned as `Cursor` http header.
|
||||||
|
|
||||||
[source,js]
|
[source,js]
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
POST /_sql?format=json
|
POST /_xpack/sql?format=json
|
||||||
{
|
{
|
||||||
"cursor": "sDXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAAEWYUpOYklQMHhRUEtld3RsNnFtYU1hQQ==:BAFmBGRhdGUBZgVsaWtlcwFzB21lc3NhZ2UBZgR1c2Vy9f///w8="
|
"cursor": "sDXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAAEWYUpOYklQMHhRUEtld3RsNnFtYU1hQQ==:BAFmBGRhdGUBZgVsaWtlcwFzB21lc3NhZ2UBZgR1c2Vy9f///w8="
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,7 @@ parameter.
|
||||||
|
|
||||||
[source,js]
|
[source,js]
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
POST /_sql
|
POST /_xpack/sql
|
||||||
{
|
{
|
||||||
"query": "SELECT * FROM library ORDER BY page_count DESC",
|
"query": "SELECT * FROM library ORDER BY page_count DESC",
|
||||||
"filter": {
|
"filter": {
|
||||||
|
|
|
@ -7,7 +7,7 @@ into native Elasticsearch queries. For example:
|
||||||
|
|
||||||
[source,js]
|
[source,js]
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
POST /_sql/translate
|
POST /_xpack/sql/translate
|
||||||
{
|
{
|
||||||
"query": "SELECT * FROM library ORDER BY page_count DESC",
|
"query": "SELECT * FROM library ORDER BY page_count DESC",
|
||||||
"fetch_size": 10
|
"fetch_size": 10
|
||||||
|
|
|
@ -181,7 +181,7 @@ public class SqlLicenseIT extends AbstractLicensesIntegrationTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Execute
|
// Execute
|
||||||
InputStream response = getRestClient().performRequest("POST", "/_sql/jdbc", emptyMap(), entity).getEntity().getContent();
|
InputStream response = getRestClient().performRequest("POST", "/_xpack/sql/jdbc", emptyMap(), entity).getEntity().getContent();
|
||||||
|
|
||||||
// Deserialize bytes to response like JDBC does
|
// Deserialize bytes to response like JDBC does
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
"documentation": "Execute SQL",
|
"documentation": "Execute SQL",
|
||||||
"methods": [ "POST", "GET" ],
|
"methods": [ "POST", "GET" ],
|
||||||
"url": {
|
"url": {
|
||||||
"path": "/_sql",
|
"path": "/_xpack/sql",
|
||||||
"paths": [ "/_sql" ],
|
"paths": [ "/_xpack/sql" ],
|
||||||
"parts": {},
|
"parts": {},
|
||||||
"params": {
|
"params": {
|
||||||
"format": {
|
"format": {
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
"documentation": "Translate SQL into Elasticsearch queries",
|
"documentation": "Translate SQL into Elasticsearch queries",
|
||||||
"methods": [ "POST", "GET" ],
|
"methods": [ "POST", "GET" ],
|
||||||
"url": {
|
"url": {
|
||||||
"path": "/_sql/translate",
|
"path": "/_xpack/sql/translate",
|
||||||
"paths": [ "/_sql/translate" ],
|
"paths": [ "/_xpack/sql/translate" ],
|
||||||
"parts": {},
|
"parts": {},
|
||||||
"params": {}
|
"params": {}
|
||||||
},
|
},
|
||||||
|
|
|
@ -287,7 +287,7 @@ public class FullClusterRestartIT extends ESRestTestCase {
|
||||||
new StringEntity("{}", ContentType.APPLICATION_JSON));
|
new StringEntity("{}", ContentType.APPLICATION_JSON));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ResponseException e = expectThrows(ResponseException.class, () -> client().performRequest("POST", "/_sql", emptyMap(),
|
ResponseException e = expectThrows(ResponseException.class, () -> client().performRequest("POST", "/_xpack/sql", emptyMap(),
|
||||||
new StringEntity("{\"query\":\"SELECT * FROM testsqlfailsonindexwithtwotypes\"}", ContentType.APPLICATION_JSON)));
|
new StringEntity("{\"query\":\"SELECT * FROM testsqlfailsonindexwithtwotypes\"}", ContentType.APPLICATION_JSON)));
|
||||||
assertEquals(400, e.getResponse().getStatusLine().getStatusCode());
|
assertEquals(400, e.getResponse().getStatusLine().getStatusCode());
|
||||||
assertThat(e.getMessage(), containsString("Invalid index testsqlfailsonindexwithtwotypes; contains more than one type"));
|
assertThat(e.getMessage(), containsString("Invalid index testsqlfailsonindexwithtwotypes; contains more than one type"));
|
||||||
|
|
|
@ -104,7 +104,7 @@ public class RestSqlMultinodeIT extends ESRestTestCase {
|
||||||
expected.put("rows", singletonList(singletonList(count)));
|
expected.put("rows", singletonList(singletonList(count)));
|
||||||
expected.put("size", 1);
|
expected.put("size", 1);
|
||||||
|
|
||||||
Map<String, Object> actual = responseToMap(client.performRequest("POST", "/_sql", singletonMap("format", "json"),
|
Map<String, Object> actual = responseToMap(client.performRequest("POST", "/_xpack/sql", singletonMap("format", "json"),
|
||||||
new StringEntity("{\"query\": \"SELECT COUNT(*) FROM test\"}", ContentType.APPLICATION_JSON)));
|
new StringEntity("{\"query\": \"SELECT COUNT(*) FROM test\"}", ContentType.APPLICATION_JSON)));
|
||||||
|
|
||||||
if (false == expected.equals(actual)) {
|
if (false == expected.equals(actual)) {
|
||||||
|
|
|
@ -135,7 +135,7 @@ public class RestSqlSecurityIT extends SqlSecurityTestCase {
|
||||||
|
|
||||||
private static Map<String, Object> runSql(@Nullable String asUser, HttpEntity entity) throws IOException {
|
private static Map<String, Object> runSql(@Nullable String asUser, HttpEntity entity) throws IOException {
|
||||||
Header[] headers = asUser == null ? new Header[0] : new Header[] {new BasicHeader("es-security-runas-user", asUser)};
|
Header[] headers = asUser == null ? new Header[0] : new Header[] {new BasicHeader("es-security-runas-user", asUser)};
|
||||||
Response response = client().performRequest("POST", "/_sql", singletonMap("format", "json"), entity, headers);
|
Response response = client().performRequest("POST", "/_xpack/sql", singletonMap("format", "json"), entity, headers);
|
||||||
return toMap(response);
|
return toMap(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ import org.elasticsearch.client.Client;
|
||||||
*/
|
*/
|
||||||
public class CliHttpServer extends ProtoHttpServer {
|
public class CliHttpServer extends ProtoHttpServer {
|
||||||
public CliHttpServer(Client client) {
|
public CliHttpServer(Client client) {
|
||||||
super(client, new CliProtoHandler(client), "/_sql/cli");
|
super(client, new CliProtoHandler(client), "/_xpack/sql/cli");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -13,7 +13,7 @@ import org.elasticsearch.client.Client;
|
||||||
public class JdbcHttpServer extends ProtoHttpServer {
|
public class JdbcHttpServer extends ProtoHttpServer {
|
||||||
|
|
||||||
public JdbcHttpServer(Client client) {
|
public JdbcHttpServer(Client client) {
|
||||||
super(client, new JdbcProtoHandler(client), "/_sql/jdbc");
|
super(client, new JdbcProtoHandler(client), "/_xpack/sql/jdbc");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -182,7 +182,7 @@ public abstract class RestSqlTestCase extends ESRestTestCase implements ErrorsTe
|
||||||
params.put("error_trace", "true"); // Helps with debugging in case something crazy happens on the server.
|
params.put("error_trace", "true"); // Helps with debugging in case something crazy happens on the server.
|
||||||
params.put("pretty", "true"); // Improves error reporting readability
|
params.put("pretty", "true"); // Improves error reporting readability
|
||||||
params.put("format", "json"); // JSON is easier to parse then a table
|
params.put("format", "json"); // JSON is easier to parse then a table
|
||||||
Response response = client().performRequest("POST", "/_sql" + suffix, params, sql);
|
Response response = client().performRequest("POST", "/_xpack/sql" + suffix, params, sql);
|
||||||
try (InputStream content = response.getEntity().getContent()) {
|
try (InputStream content = response.getEntity().getContent()) {
|
||||||
return XContentHelper.convertToMap(JsonXContent.jsonXContent, content, false);
|
return XContentHelper.convertToMap(JsonXContent.jsonXContent, content, false);
|
||||||
}
|
}
|
||||||
|
@ -325,7 +325,7 @@ public abstract class RestSqlTestCase extends ESRestTestCase implements ErrorsTe
|
||||||
}
|
}
|
||||||
|
|
||||||
private Tuple<String, String> runSqlAsText(String suffix, HttpEntity sql) throws IOException {
|
private Tuple<String, String> runSqlAsText(String suffix, HttpEntity sql) throws IOException {
|
||||||
Response response = client().performRequest("POST", "/_sql" + suffix, singletonMap("error_trace", "true"), sql);
|
Response response = client().performRequest("POST", "/_xpack/sql" + suffix, singletonMap("error_trace", "true"), sql);
|
||||||
return new Tuple<>(
|
return new Tuple<>(
|
||||||
Streams.copyToString(new InputStreamReader(response.getEntity().getContent(), StandardCharsets.UTF_8)),
|
Streams.copyToString(new InputStreamReader(response.getEntity().getContent(), StandardCharsets.UTF_8)),
|
||||||
response.getHeader("Cursor")
|
response.getHeader("Cursor")
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class CliHttpClient {
|
||||||
|
|
||||||
private Response post(Request request) throws SQLException {
|
private Response post(Request request) throws SQLException {
|
||||||
return AccessController.doPrivileged((PrivilegedAction<ResponseOrException<Response>>) () ->
|
return AccessController.doPrivileged((PrivilegedAction<ResponseOrException<Response>>) () ->
|
||||||
JreHttpUrlConnection.http("_sql/cli", "error_trace", cfg, con ->
|
JreHttpUrlConnection.http("_xpack/sql/cli", "error_trace", cfg, con ->
|
||||||
con.post(
|
con.post(
|
||||||
out -> Proto.INSTANCE.writeRequest(request, out),
|
out -> Proto.INSTANCE.writeRequest(request, out),
|
||||||
in -> Proto.INSTANCE.readResponse(request, in)
|
in -> Proto.INSTANCE.readResponse(request, in)
|
||||||
|
|
|
@ -49,7 +49,7 @@ class HttpClient {
|
||||||
Response post(Request request) throws SQLException {
|
Response post(Request request) throws SQLException {
|
||||||
try {
|
try {
|
||||||
return AccessController.doPrivileged((PrivilegedAction<ResponseOrException<Response>>) () ->
|
return AccessController.doPrivileged((PrivilegedAction<ResponseOrException<Response>>) () ->
|
||||||
JreHttpUrlConnection.http("_sql/jdbc", "error_trace", cfg, con ->
|
JreHttpUrlConnection.http("_xpack/sql/jdbc", "error_trace", cfg, con ->
|
||||||
con.post(
|
con.post(
|
||||||
out -> Proto.INSTANCE.writeRequest(request, out),
|
out -> Proto.INSTANCE.writeRequest(request, out),
|
||||||
in -> Proto.INSTANCE.readResponse(request, in)
|
in -> Proto.INSTANCE.readResponse(request, in)
|
||||||
|
|
|
@ -34,7 +34,7 @@ import static org.elasticsearch.rest.RestRequest.Method.POST;
|
||||||
public class RestSqlCliAction extends AbstractSqlProtocolRestAction {
|
public class RestSqlCliAction extends AbstractSqlProtocolRestAction {
|
||||||
public RestSqlCliAction(Settings settings, RestController controller) {
|
public RestSqlCliAction(Settings settings, RestController controller) {
|
||||||
super(settings, Proto.INSTANCE);
|
super(settings, Proto.INSTANCE);
|
||||||
controller.registerHandler(POST, "/_sql/cli", this);
|
controller.registerHandler(POST, "/_xpack/sql/cli", this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class RestSqlJdbcAction extends AbstractSqlProtocolRestAction {
|
||||||
public RestSqlJdbcAction(Settings settings, RestController controller, SqlLicenseChecker sqlLicenseChecker,
|
public RestSqlJdbcAction(Settings settings, RestController controller, SqlLicenseChecker sqlLicenseChecker,
|
||||||
IndexResolver indexResolver) {
|
IndexResolver indexResolver) {
|
||||||
super(settings, Proto.INSTANCE);
|
super(settings, Proto.INSTANCE);
|
||||||
controller.registerHandler(POST, "/_sql/jdbc", this);
|
controller.registerHandler(POST, "/_xpack/sql/jdbc", this);
|
||||||
this.sqlLicenseChecker = sqlLicenseChecker;
|
this.sqlLicenseChecker = sqlLicenseChecker;
|
||||||
this.indexResolver = indexResolver;
|
this.indexResolver = indexResolver;
|
||||||
}
|
}
|
||||||
|
|
|
@ -197,8 +197,8 @@ public class SqlTranslateAction
|
||||||
public static class RestAction extends BaseRestHandler {
|
public static class RestAction extends BaseRestHandler {
|
||||||
public RestAction(Settings settings, RestController controller) {
|
public RestAction(Settings settings, RestController controller) {
|
||||||
super(settings);
|
super(settings);
|
||||||
controller.registerHandler(GET, "/_sql/translate", this);
|
controller.registerHandler(GET, "/_xpack/sql/translate", this);
|
||||||
controller.registerHandler(POST, "/_sql/translate", this);
|
controller.registerHandler(POST, "/_xpack/sql/translate", this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -34,8 +34,8 @@ import static org.elasticsearch.rest.RestRequest.Method.POST;
|
||||||
public class RestSqlAction extends BaseRestHandler {
|
public class RestSqlAction extends BaseRestHandler {
|
||||||
public RestSqlAction(Settings settings, RestController controller) {
|
public RestSqlAction(Settings settings, RestController controller) {
|
||||||
super(settings);
|
super(settings);
|
||||||
controller.registerHandler(GET, "/_sql", this);
|
controller.registerHandler(GET, "/_xpack/sql", this);
|
||||||
controller.registerHandler(POST, "/_sql", this);
|
controller.registerHandler(POST, "/_xpack/sql", this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue