This is an automated email from the ASF dual-hosted git repository.
fanjia pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new 70a3980050 [HotFix][E2E][JDBC] Fix not remove docker image after test
finish on jdbc suite (#5586)
70a3980050 is described below
commit 70a39800504a229a1f266616b461f14715fdb938
Author: Chengyu Yan <[email protected]>
AuthorDate: Wed Oct 4 09:11:56 2023 +0800
[HotFix][E2E][JDBC] Fix not remove docker image after test finish on jdbc
suite (#5586)
---
release-note.md | 1 +
.../connectors/seatunnel/jdbc/AbstractJdbcIT.java | 27 ++++++++++++++--------
.../connectors/seatunnel/jdbc/JdbcDb2IT.java | 6 +++++
.../connectors/seatunnel/jdbc/JdbcPhoenixIT.java | 6 +++++
4 files changed, 31 insertions(+), 9 deletions(-)
diff --git a/release-note.md b/release-note.md
index 8566680d4e..d60b94b9a5 100644
--- a/release-note.md
+++ b/release-note.md
@@ -85,6 +85,7 @@
- [Container Version] Fix risk of unreproducible test cases #4591
- [E2e] [Mysql-cdc] Removing the excess MySqlIncrementalSourceIT e2e reduces
the CI time (#4738)
- [E2E] [Common] Update test container version of seatunnel engine (#5323)
+- [E2E] [Jdbc] Fix not remove docker image after test finish on jdbc suite
(#5586)
## Improve
diff --git
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-common/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/AbstractJdbcIT.java
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-common/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/AbstractJdbcIT.java
index 4f3da34175..2738f5ccc3 100644
---
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-common/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/AbstractJdbcIT.java
+++
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-common/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/AbstractJdbcIT.java
@@ -32,12 +32,14 @@ import
org.apache.seatunnel.e2e.common.junit.TestContainerExtension;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
+import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestTemplate;
import org.testcontainers.containers.Container;
import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.images.PullPolicy;
import org.testcontainers.lifecycle.Startables;
import com.github.dockerjava.api.model.Image;
@@ -194,7 +196,13 @@ public abstract class AbstractJdbcIT extends TestSuiteBase
implements TestResour
public void clearTable(String schema, String table) {
try (Statement statement = connection.createStatement()) {
statement.execute("TRUNCATE TABLE " +
buildTableInfoWithSchema(schema, table));
+ connection.commit();
} catch (SQLException e) {
+ try {
+ connection.rollback();
+ } catch (SQLException exception) {
+ throw new
SeaTunnelRuntimeException(JdbcITErrorCode.CLEAR_TABLE_FAILED, exception);
+ }
throw new
SeaTunnelRuntimeException(JdbcITErrorCode.CLEAR_TABLE_FAILED, e);
}
}
@@ -220,7 +228,7 @@ public abstract class AbstractJdbcIT extends TestSuiteBase
implements TestResour
@BeforeAll
@Override
public void startUp() {
- dbServer = initContainer();
+ dbServer =
initContainer().withImagePullPolicy(PullPolicy.alwaysPull());
jdbcCase = getJdbcCase();
Startables.deepStart(Stream.of(dbServer)).join();
@@ -236,8 +244,17 @@ public abstract class AbstractJdbcIT extends TestSuiteBase
implements TestResour
initCatalog();
}
+ @AfterAll
@Override
public void tearDown() throws SQLException {
+ if (catalog != null) {
+ catalog.close();
+ }
+
+ if (connection != null) {
+ connection.close();
+ }
+
if (dbServer != null) {
dbServer.close();
String images =
@@ -258,14 +275,6 @@ public abstract class AbstractJdbcIT extends TestSuiteBase
implements TestResour
dbServer.getDockerImageName(),
images);
}
-
- if (connection != null) {
- connection.close();
- }
-
- if (catalog != null) {
- catalog.close();
- }
}
@TestTemplate
diff --git
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-1/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcDb2IT.java
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-1/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcDb2IT.java
index b181531282..f258faa75f 100644
---
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-1/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcDb2IT.java
+++
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-1/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcDb2IT.java
@@ -207,7 +207,13 @@ public class JdbcDb2IT extends AbstractJdbcIT {
try (Statement statement = connection.createStatement()) {
String truncate = String.format("delete from \"%s\".%s where
1=1;", schema, table);
statement.execute(truncate);
+ connection.commit();
} catch (SQLException e) {
+ try {
+ connection.rollback();
+ } catch (SQLException exception) {
+ throw new
SeaTunnelRuntimeException(JdbcITErrorCode.CLEAR_TABLE_FAILED, exception);
+ }
throw new
SeaTunnelRuntimeException(JdbcITErrorCode.CLEAR_TABLE_FAILED, e);
}
}
diff --git
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-2/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcPhoenixIT.java
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-2/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcPhoenixIT.java
index a775f19efc..34283f20d4 100644
---
a/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-2/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcPhoenixIT.java
+++
b/seatunnel-e2e/seatunnel-connector-v2-e2e/connector-jdbc-e2e/connector-jdbc-e2e-part-2/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/JdbcPhoenixIT.java
@@ -110,7 +110,13 @@ public class JdbcPhoenixIT extends AbstractJdbcIT {
String.format(
"delete from %s where 1=1",
buildTableInfoWithSchema(schema, table));
statement.execute(truncate);
+ connection.commit();
} catch (SQLException e) {
+ try {
+ connection.rollback();
+ } catch (SQLException exception) {
+ throw new
SeaTunnelRuntimeException(JdbcITErrorCode.CLEAR_TABLE_FAILED, exception);
+ }
throw new
SeaTunnelRuntimeException(JdbcITErrorCode.CLEAR_TABLE_FAILED, e);
}
}