Skip to content

Commit 4e9ca01

Browse files
authored
Integ Test Fix (#1541)
1 parent b92ea2e commit 4e9ca01

File tree

6 files changed

+141
-56
lines changed

6 files changed

+141
-56
lines changed

integ-test/build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ testClusters.all {
124124

125125
testClusters.integTest {
126126
plugin ":opensearch-sql-plugin"
127-
keystore 'plugins.query.federation.datasources.config', new File("$projectDir/src/test/resources/datasource/", 'datasources.json')
128127
}
129128

130129
task startPrometheus(type: SpawnProcessTask) {

integ-test/src/test/java/org/opensearch/sql/datasource/DataSourceAPIsIT.java

Lines changed: 18 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,15 @@
1212
import com.google.gson.Gson;
1313
import com.google.gson.JsonObject;
1414
import com.google.gson.reflect.TypeToken;
15+
import java.io.IOException;
1516
import java.lang.reflect.Type;
1617
import java.util.ArrayList;
1718
import java.util.List;
1819
import lombok.SneakyThrows;
1920
import org.apache.commons.lang3.StringUtils;
21+
import org.junit.AfterClass;
2022
import org.junit.Assert;
23+
import org.junit.BeforeClass;
2124
import org.junit.Test;
2225
import org.opensearch.client.Request;
2326
import org.opensearch.client.RequestOptions;
@@ -29,6 +32,21 @@
2932

3033
public class DataSourceAPIsIT extends PPLIntegTestCase {
3134

35+
@AfterClass
36+
protected static void deleteDataSourcesCreated() throws IOException {
37+
Request deleteRequest = getDeleteDataSourceRequest("create_prometheus");
38+
Response deleteResponse = client().performRequest(deleteRequest);
39+
Assert.assertEquals(204, deleteResponse.getStatusLine().getStatusCode());
40+
41+
deleteRequest = getDeleteDataSourceRequest("update_prometheus");
42+
deleteResponse = client().performRequest(deleteRequest);
43+
Assert.assertEquals(204, deleteResponse.getStatusLine().getStatusCode());
44+
45+
deleteRequest = getDeleteDataSourceRequest("get_all_prometheus");
46+
deleteResponse = client().performRequest(deleteRequest);
47+
Assert.assertEquals(204, deleteResponse.getStatusLine().getStatusCode());
48+
}
49+
3250
@SneakyThrows
3351
@Test
3452
public void createDataSourceAPITest() {
@@ -150,43 +168,4 @@ public void getAllDataSourceTest() {
150168
dataSourceMetadataList.stream().anyMatch(ds -> ds.getName().equals("get_all_prometheus")));
151169
}
152170

153-
154-
private Request getCreateDataSourceRequest(DataSourceMetadata dataSourceMetadata) {
155-
Request request = new Request("POST", "/_plugins/_query/_datasources");
156-
request.setJsonEntity(new Gson().toJson(dataSourceMetadata));
157-
RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder();
158-
restOptionsBuilder.addHeader("Content-Type", "application/json");
159-
request.setOptions(restOptionsBuilder);
160-
return request;
161-
}
162-
163-
private Request getUpdateDataSourceRequest(DataSourceMetadata dataSourceMetadata) {
164-
Request request = new Request("PUT", "/_plugins/_query/_datasources");
165-
request.setJsonEntity(new Gson().toJson(dataSourceMetadata));
166-
RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder();
167-
restOptionsBuilder.addHeader("Content-Type", "application/json");
168-
request.setOptions(restOptionsBuilder);
169-
return request;
170-
}
171-
172-
private Request getFetchDataSourceRequest(String name) {
173-
Request request = new Request("GET", "/_plugins/_query/_datasources" + "/" + name);
174-
if (StringUtils.isEmpty(name)) {
175-
request = new Request("GET", "/_plugins/_query/_datasources");
176-
}
177-
RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder();
178-
restOptionsBuilder.addHeader("Content-Type", "application/json");
179-
request.setOptions(restOptionsBuilder);
180-
return request;
181-
}
182-
183-
184-
private Request getDeleteDataSourceRequest(String name) {
185-
Request request = new Request("DELETE", "/_plugins/_query/_datasources" + "/" + name);
186-
RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder();
187-
restOptionsBuilder.addHeader("Content-Type", "application/json");
188-
request.setOptions(restOptionsBuilder);
189-
return request;
190-
}
191-
192171
}

integ-test/src/test/java/org/opensearch/sql/legacy/SQLIntegTestCase.java

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
package org.opensearch.sql.legacy;
88

99
import com.google.common.base.Strings;
10+
import com.google.gson.Gson;
11+
import org.apache.commons.lang3.StringUtils;
1012
import org.json.JSONArray;
1113
import org.json.JSONObject;
1214
import org.junit.AfterClass;
@@ -30,6 +32,7 @@
3032
import java.nio.file.Path;
3133
import java.nio.file.Paths;
3234
import java.util.Locale;
35+
import org.opensearch.sql.datasource.model.DataSourceMetadata;
3336

3437
import static com.google.common.base.Strings.isNullOrEmpty;
3538
import static org.opensearch.sql.legacy.TestUtils.createIndexByRestClient;
@@ -441,6 +444,44 @@ protected JSONObject getSource(JSONObject hit) {
441444
return hit.getJSONObject("_source");
442445
}
443446

447+
protected static Request getCreateDataSourceRequest(DataSourceMetadata dataSourceMetadata) {
448+
Request request = new Request("POST", "/_plugins/_query/_datasources");
449+
request.setJsonEntity(new Gson().toJson(dataSourceMetadata));
450+
RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder();
451+
restOptionsBuilder.addHeader("Content-Type", "application/json");
452+
request.setOptions(restOptionsBuilder);
453+
return request;
454+
}
455+
456+
protected static Request getUpdateDataSourceRequest(DataSourceMetadata dataSourceMetadata) {
457+
Request request = new Request("PUT", "/_plugins/_query/_datasources");
458+
request.setJsonEntity(new Gson().toJson(dataSourceMetadata));
459+
RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder();
460+
restOptionsBuilder.addHeader("Content-Type", "application/json");
461+
request.setOptions(restOptionsBuilder);
462+
return request;
463+
}
464+
465+
protected static Request getFetchDataSourceRequest(String name) {
466+
Request request = new Request("GET", "/_plugins/_query/_datasources" + "/" + name);
467+
if (StringUtils.isEmpty(name)) {
468+
request = new Request("GET", "/_plugins/_query/_datasources");
469+
}
470+
RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder();
471+
restOptionsBuilder.addHeader("Content-Type", "application/json");
472+
request.setOptions(restOptionsBuilder);
473+
return request;
474+
}
475+
476+
477+
protected static Request getDeleteDataSourceRequest(String name) {
478+
Request request = new Request("DELETE", "/_plugins/_query/_datasources" + "/" + name);
479+
RequestOptions.Builder restOptionsBuilder = RequestOptions.DEFAULT.toBuilder();
480+
restOptionsBuilder.addHeader("Content-Type", "application/json");
481+
request.setOptions(restOptionsBuilder);
482+
return request;
483+
}
484+
444485
/**
445486
* Enum for associating test index with relevant mapping and data.
446487
*/
@@ -637,5 +678,7 @@ public String getMapping() {
637678
public String getDataSet() {
638679
return this.dataSet;
639680
}
681+
682+
640683
}
641684
}

integ-test/src/test/java/org/opensearch/sql/ppl/InformationSchemaCommandIT.java

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,31 @@
77

88
package org.opensearch.sql.ppl;
99

10+
import static org.opensearch.sql.legacy.TestUtils.getResponseBody;
1011
import static org.opensearch.sql.util.MatcherUtils.columnName;
1112
import static org.opensearch.sql.util.MatcherUtils.rows;
1213
import static org.opensearch.sql.util.MatcherUtils.verifyColumn;
1314
import static org.opensearch.sql.util.MatcherUtils.verifyDataRows;
1415

16+
import com.google.common.collect.ImmutableList;
17+
import com.google.common.collect.ImmutableMap;
1518
import java.io.IOException;
1619
import org.json.JSONObject;
1720
import org.junit.After;
1821
import org.junit.AfterClass;
22+
import org.junit.Assert;
23+
import org.junit.Before;
1924
import org.junit.BeforeClass;
2025
import org.junit.jupiter.api.AfterAll;
2126
import org.junit.jupiter.api.BeforeAll;
2227
import org.junit.jupiter.api.Test;
28+
import org.opensearch.client.Request;
29+
import org.opensearch.client.Response;
30+
import org.opensearch.sql.datasource.model.DataSourceMetadata;
31+
import org.opensearch.sql.datasource.model.DataSourceType;
2332

2433
public class InformationSchemaCommandIT extends PPLIntegTestCase {
2534

26-
27-
@Override
28-
protected void init() throws Exception {
29-
loadIndex(Index.DATASOURCES);
30-
}
31-
3235
/**
3336
* Integ tests are dependent on self generated metrics in prometheus instance.
3437
* When running individual integ tests there
@@ -41,6 +44,23 @@ protected static void metricGenerationWait() throws InterruptedException {
4144
Thread.sleep(10000);
4245
}
4346

47+
@Override
48+
protected void init() throws InterruptedException, IOException {
49+
DataSourceMetadata createDSM =
50+
new DataSourceMetadata("my_prometheus", DataSourceType.PROMETHEUS,
51+
ImmutableList.of(), ImmutableMap.of("prometheus.uri", "http://localhost:9090"));
52+
Request createRequest = getCreateDataSourceRequest(createDSM);
53+
Response response = client().performRequest(createRequest);
54+
Assert.assertEquals(201, response.getStatusLine().getStatusCode());
55+
}
56+
57+
@After
58+
protected void deleteDataSourceMetadata() throws IOException {
59+
Request deleteRequest = getDeleteDataSourceRequest("my_prometheus");
60+
Response deleteResponse = client().performRequest(deleteRequest);
61+
Assert.assertEquals(204, deleteResponse.getStatusLine().getStatusCode());
62+
}
63+
4464
@Test
4565
public void testSearchTablesFromPrometheusCatalog() throws IOException {
4666
JSONObject result =

integ-test/src/test/java/org/opensearch/sql/ppl/PrometheusDataSourceCommandsIT.java

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,28 @@
1212
import static org.opensearch.sql.util.MatcherUtils.schema;
1313
import static org.opensearch.sql.util.MatcherUtils.verifySchema;
1414

15+
import com.google.common.collect.ImmutableList;
16+
import com.google.common.collect.ImmutableMap;
17+
import java.io.IOException;
1518
import java.text.SimpleDateFormat;
1619
import java.util.Date;
1720
import lombok.SneakyThrows;
1821
import org.apache.commons.lang3.StringUtils;
1922
import org.json.JSONArray;
2023
import org.json.JSONObject;
24+
import org.junit.After;
25+
import org.junit.AfterClass;
26+
import org.junit.Assert;
2127
import org.junit.BeforeClass;
2228
import org.junit.jupiter.api.Assertions;
2329
import org.junit.jupiter.api.Test;
30+
import org.opensearch.client.Request;
31+
import org.opensearch.client.Response;
32+
import org.opensearch.sql.datasource.model.DataSourceMetadata;
33+
import org.opensearch.sql.datasource.model.DataSourceType;
2434

2535
public class PrometheusDataSourceCommandsIT extends PPLIntegTestCase {
2636

27-
28-
@Override
29-
protected void init() throws Exception {
30-
loadIndex(Index.DATASOURCES);
31-
}
32-
3337
/**
3438
* Integ tests are dependent on self generated metrics in prometheus instance.
3539
* When running individual integ tests there
@@ -42,6 +46,23 @@ protected static void metricGenerationWait() throws InterruptedException {
4246
Thread.sleep(10000);
4347
}
4448

49+
@Override
50+
protected void init() throws InterruptedException, IOException {
51+
DataSourceMetadata createDSM =
52+
new DataSourceMetadata("my_prometheus", DataSourceType.PROMETHEUS,
53+
ImmutableList.of(), ImmutableMap.of("prometheus.uri", "http://localhost:9090"));
54+
Request createRequest = getCreateDataSourceRequest(createDSM);
55+
Response response = client().performRequest(createRequest);
56+
Assert.assertEquals(201, response.getStatusLine().getStatusCode());
57+
}
58+
59+
@After
60+
protected void deleteDataSourceMetadata() throws IOException {
61+
Request deleteRequest = getDeleteDataSourceRequest("my_prometheus");
62+
Response deleteResponse = client().performRequest(deleteRequest);
63+
Assert.assertEquals(204, deleteResponse.getStatusLine().getStatusCode());
64+
}
65+
4566
@Test
4667
@SneakyThrows
4768
public void testSourceMetricCommand() {

integ-test/src/test/java/org/opensearch/sql/ppl/ShowDataSourcesCommandIT.java

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,27 @@
77

88
package org.opensearch.sql.ppl;
99

10+
import static org.opensearch.sql.legacy.TestUtils.getResponseBody;
1011
import static org.opensearch.sql.util.MatcherUtils.columnName;
1112
import static org.opensearch.sql.util.MatcherUtils.rows;
1213
import static org.opensearch.sql.util.MatcherUtils.verifyColumn;
1314
import static org.opensearch.sql.util.MatcherUtils.verifyDataRows;
1415

16+
import com.google.common.collect.ImmutableList;
17+
import com.google.common.collect.ImmutableMap;
1518
import java.io.IOException;
1619
import org.json.JSONObject;
20+
import org.junit.After;
21+
import org.junit.AfterClass;
22+
import org.junit.Assert;
1723
import org.junit.BeforeClass;
1824
import org.junit.jupiter.api.Test;
25+
import org.opensearch.client.Request;
26+
import org.opensearch.client.Response;
27+
import org.opensearch.sql.datasource.model.DataSourceMetadata;
28+
import org.opensearch.sql.datasource.model.DataSourceType;
1929

2030
public class ShowDataSourcesCommandIT extends PPLIntegTestCase {
21-
@Override
22-
protected void init() throws Exception {
23-
loadIndex(Index.DATASOURCES);
24-
}
2531

2632
/**
2733
* Integ tests are dependent on self generated metrics in prometheus instance.
@@ -35,6 +41,23 @@ protected static void metricGenerationWait() throws InterruptedException {
3541
Thread.sleep(10000);
3642
}
3743

44+
@Override
45+
protected void init() throws InterruptedException, IOException {
46+
DataSourceMetadata createDSM =
47+
new DataSourceMetadata("my_prometheus", DataSourceType.PROMETHEUS,
48+
ImmutableList.of(), ImmutableMap.of("prometheus.uri", "http://localhost:9090"));
49+
Request createRequest = getCreateDataSourceRequest(createDSM);
50+
Response response = client().performRequest(createRequest);
51+
Assert.assertEquals(201, response.getStatusLine().getStatusCode());
52+
}
53+
54+
@After
55+
protected void deleteDataSourceMetadata() throws IOException {
56+
Request deleteRequest = getDeleteDataSourceRequest("my_prometheus");
57+
Response deleteResponse = client().performRequest(deleteRequest);
58+
Assert.assertEquals(204, deleteResponse.getStatusLine().getStatusCode());
59+
}
60+
3861
@Test
3962
public void testShowDataSourcesCommands() throws IOException {
4063
JSONObject result = executeQuery("show datasources");

0 commit comments

Comments
 (0)