Skip to content

Commit 512c0fa

Browse files
authored
ClickHouseIO - align the RM with the test containers upgrade (#37971)
* algin the RM with the test containers upgrade * stub mock values for username password
1 parent 4b60dae commit 512c0fa

File tree

2 files changed

+26
-14
lines changed

2 files changed

+26
-14
lines changed

it/clickhouse/src/main/java/org/apache/beam/it/clickhouse/ClickHouseResourceManager.java

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.sql.ResultSetMetaData;
2424
import java.sql.SQLException;
2525
import java.sql.Statement;
26-
import java.time.Duration;
2726
import java.util.ArrayList;
2827
import java.util.Arrays;
2928
import java.util.Collections;
@@ -38,7 +37,6 @@
3837
import org.slf4j.LoggerFactory;
3938
import org.testcontainers.clickhouse.ClickHouseContainer;
4039
import org.testcontainers.containers.GenericContainer;
41-
import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;
4240
import org.testcontainers.utility.DockerImageName;
4341

4442
/**
@@ -61,6 +59,8 @@ public class ClickHouseResourceManager extends TestContainerResourceManager<Gene
6159
private static final String DEFAULT_CLICKHOUSE_CONTAINER_TAG = "23.8";
6260

6361
private final String jdbcConnectionString;
62+
private final String username;
63+
private final String password;
6464

6565
final List<String> managedTableNames = new ArrayList<>();
6666

@@ -69,16 +69,9 @@ public class ClickHouseResourceManager extends TestContainerResourceManager<Gene
6969
}
7070

7171
private static ClickHouseContainer buildContainer(Builder builder) {
72-
ClickHouseContainer container =
73-
new ClickHouseContainer(
74-
DockerImageName.parse(builder.containerImageName)
75-
.withTag(builder.containerImageTag))
76-
.withStartupAttempts(10);
77-
78-
Duration startupTimeout = Duration.ofMinutes(2);
79-
container.setWaitStrategy(new LogMessageWaitStrategy().withStartupTimeout(startupTimeout));
80-
81-
return container;
72+
return new ClickHouseContainer(
73+
DockerImageName.parse(builder.containerImageName).withTag(builder.containerImageTag))
74+
.withStartupAttempts(10);
8275
}
8376

8477
// @VisibleForTesting
@@ -88,12 +81,18 @@ private static ClickHouseContainer buildContainer(Builder builder) {
8881
throws SQLException {
8982
super(container, builder);
9083

84+
this.username = container.getUsername();
85+
this.password = container.getPassword();
9186
this.jdbcConnectionString =
9287
"jdbc:clickhouse://"
9388
+ this.getHost()
9489
+ ":"
9590
+ this.getPort(CLICKHOUSE_INTERNAL_PORT)
96-
+ "/default";
91+
+ "/default"
92+
+ "?user="
93+
+ this.username
94+
+ "&password="
95+
+ this.password;
9796

9897
this.connection =
9998
clickHosueConnection != null ? clickHosueConnection : container.createConnection("");
@@ -126,6 +125,16 @@ public synchronized String getJdbcConnectionString() {
126125
return jdbcConnectionString;
127126
}
128127

128+
/** Returns the username for the ClickHouse service. */
129+
public synchronized String getUsername() {
130+
return username;
131+
}
132+
133+
/** Returns the password for the ClickHouse service. */
134+
public synchronized String getPassword() {
135+
return password;
136+
}
137+
129138
synchronized boolean tableExists(String tableName) throws SQLException {
130139

131140
ClickHouseUtils.checkValidTableName(tableName);

it/clickhouse/src/test/java/org/apache/beam/it/clickhouse/ClickHouseResourceManagerTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,11 +194,14 @@ public void testInsertRowsWithInvalidData() {
194194
public void testGetUriShouldReturnCorrectValue() throws SQLException {
195195
when(mockContainer.getHost()).thenReturn(HOST);
196196
when(mockContainer.getMappedPort(CLICKHOUSE_PORT)).thenReturn(MAPPED_PORT);
197+
when(mockContainer.getUsername()).thenReturn("test");
198+
when(mockContainer.getPassword()).thenReturn("test");
197199

198200
assertThat(
199201
new ClickHouseResourceManager(
200202
mockConnection, mockContainer, ClickHouseResourceManager.builder(TEST_ID))
201203
.getJdbcConnectionString())
202-
.matches("jdbc:clickhouse://" + HOST + ":" + MAPPED_PORT + "/default");
204+
.matches(
205+
"jdbc:clickhouse://" + HOST + ":" + MAPPED_PORT + "/default\\?user=test&password=test");
203206
}
204207
}

0 commit comments

Comments
 (0)