Skip to content
This repository was archived by the owner on Aug 2, 2022. It is now read-only.

Commit 72b5cf4

Browse files
dai-chenjoshuali925
authored andcommitted
Support security plugin in comparison test (#760)
* Support security plugin * Wipe index permission issue
1 parent 7c2e63a commit 72b5cf4

File tree

4 files changed

+40
-5
lines changed

4 files changed

+40
-5
lines changed

integ-test/src/test/java/com/amazon/opendistroforelasticsearch/sql/correctness/runner/connection/ESConnection.java

+16-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.amazon.opendistroforelasticsearch.sql.correctness.runner.resultset.DBResult;
1919
import java.io.IOException;
2020
import java.util.List;
21+
import java.util.Properties;
2122
import org.elasticsearch.client.Request;
2223
import org.elasticsearch.client.Response;
2324
import org.elasticsearch.client.RestClient;
@@ -39,7 +40,7 @@ public class ESConnection implements DBConnection {
3940
private final RestClient client;
4041

4142
public ESConnection(String connectionUrl, RestClient client) {
42-
this.connection = new JDBCConnection("Elasticsearch", connectionUrl);
43+
this.connection = new JDBCConnection("Elasticsearch", connectionUrl, populateProperties());
4344
this.client = client;
4445
}
4546

@@ -84,6 +85,20 @@ public void close() {
8485
connection.close();
8586
}
8687

88+
private Properties populateProperties() {
89+
Properties properties = new Properties();
90+
if (Boolean.parseBoolean(System.getProperty("https", "false"))) {
91+
properties.put("useSSL", "true");
92+
}
93+
if (!System.getProperty("user", "").isEmpty()) {
94+
properties.put("user", System.getProperty("user"));
95+
properties.put("password", System.getProperty("password", ""));
96+
properties.put("trustSelfSigned", "true");
97+
properties.put("hostnameVerification", "false");
98+
}
99+
return properties;
100+
}
101+
87102
private void performRequest(Request request) {
88103
try {
89104
Response response = client.performRequest(request);

integ-test/src/test/java/com/amazon/opendistroforelasticsearch/sql/correctness/runner/connection/JDBCConnection.java

+18-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.sql.Statement;
3030
import java.util.Arrays;
3131
import java.util.List;
32+
import java.util.Properties;
3233
import org.json.JSONObject;
3334

3435
/**
@@ -49,20 +50,36 @@ public class JDBCConnection implements DBConnection {
4950
*/
5051
private final String connectionUrl;
5152

53+
/**
54+
* JDBC driver config properties.
55+
*/
56+
private final Properties properties;
57+
5258
/**
5359
* Current live connection
5460
*/
5561
private Connection connection;
5662

5763
public JDBCConnection(String databaseName, String connectionUrl) {
64+
this(databaseName, connectionUrl, new Properties());
65+
}
66+
67+
/**
68+
* Create a JDBC connection with parameters given (but not connect to database at the moment).
69+
* @param databaseName database name
70+
* @param connectionUrl connection URL
71+
* @param properties config properties
72+
*/
73+
public JDBCConnection(String databaseName, String connectionUrl, Properties properties) {
5874
this.databaseName = databaseName;
5975
this.connectionUrl = connectionUrl;
76+
this.properties = properties;
6077
}
6178

6279
@Override
6380
public void connect() {
6481
try {
65-
connection = DriverManager.getConnection(connectionUrl);
82+
connection = DriverManager.getConnection(connectionUrl, properties);
6683
} catch (Exception e) {
6784
throw new IllegalStateException("Failed to open connection", e);
6885
}

integ-test/src/test/java/com/amazon/opendistroforelasticsearch/sql/legacy/RestIntegTestCase.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
import org.elasticsearch.common.xcontent.XContentBuilder;
5555
import org.elasticsearch.common.xcontent.XContentFactory;
5656
import org.elasticsearch.rest.RestStatus;
57-
import org.elasticsearch.test.rest.ESRestTestCase;
5857
import org.junit.AfterClass;
5958
import org.junit.Assert;
6059
import org.junit.Before;
@@ -72,7 +71,7 @@
7271
* <p>
7372
* TODO: this base class should extends ODFERestTestCase
7473
*/
75-
public abstract class RestIntegTestCase extends ESRestTestCase {
74+
public abstract class RestIntegTestCase extends ODFERestTestCase {
7675

7776
@Before
7877
public void setUpIndices() throws Exception {
@@ -134,7 +133,7 @@ public static void dumpCoverage() {
134133
*/
135134
@AfterClass
136135
public static void cleanUpIndices() throws IOException {
137-
wipeAllIndices();
136+
wipeAllODFEIndices();
138137
wipeAllClusterSettings();
139138
}
140139

integ-test/src/test/java/com/amazon/opendistroforelasticsearch/sql/sql/CorrectnessTestBase.java

+4
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ protected void init() throws Exception {
6767
*/
6868
@AfterClass
6969
public static void cleanUp() {
70+
if (runner == null) {
71+
return;
72+
}
73+
7074
try {
7175
TestConfig config = new TestConfig(emptyMap());
7276
for (TestDataSet dataSet : config.getTestDataSets()) {

0 commit comments

Comments
 (0)