Skip to content

Commit ea5494b

Browse files
committed
feat(testcontainers): edit vshard
1 parent 81234ce commit ea5494b

File tree

13 files changed

+111
-158
lines changed

13 files changed

+111
-158
lines changed

tarantool-client/src/test/java/io/tarantool/client/integration/TarantoolCrudClientTest.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,11 @@
4545
import org.msgpack.value.ValueFactory;
4646
import org.slf4j.LoggerFactory;
4747
import org.testcontainers.containers.ClusterContainer;
48+
import org.testcontainers.containers.Network;
4849
import org.testcontainers.containers.TarantoolCartridgeContainer;
4950
import org.testcontainers.containers.VshardClusterContainer;
5051
import org.testcontainers.containers.output.Slf4jLogConsumer;
52+
import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy;
5153
import org.testcontainers.junit.jupiter.Testcontainers;
5254

5355
import static io.tarantool.client.crud.ConditionOperator.EQ;
@@ -102,6 +104,7 @@ public class TarantoolCrudClientTest extends BaseTest {
102104
private static TarantoolCartridgeContainer cartridgeContainer;
103105
private static VshardClusterContainer vshardClusterContainer;
104106
private static ClusterContainer clusterContainer;
107+
private static final Network NETWORK = Network.newNetwork();
105108
public static final String ROUTER_1 = "ROUTER_1";
106109
public static final String ROUTER_2 = "ROUTER_2";
107110
private static TarantoolCrudClient client;
@@ -131,16 +134,19 @@ public static void setUp() throws Exception {
131134
if (!isCartridgeAvailable()) {
132135
vshardClusterContainer =
133136
new VshardClusterContainer(
134-
"vshard_cluster/Dockerfile",
135-
dockerRegistry + "vshard-cluster-java",
136-
"vshard_cluster/instances.yaml",
137-
"vshard_cluster/config.yaml",
138-
"tarantool/tarantool");
137+
"vshard_cluster/Dockerfile",
138+
dockerRegistry + "vshard-cluster-java",
139+
"vshard_cluster/instances.yaml",
140+
"vshard_cluster/config.yaml",
141+
"tarantool/tarantool")
142+
.withNetwork(NETWORK)
143+
.withWaitingStrategy(new HostPortWaitStrategy().forPorts(3301));
139144

140145
if (!vshardClusterContainer.isRunning()) {
141146
vshardClusterContainer
142147
.withCreateContainerCmdModifier(cmd -> cmd.withUser("root"))
143-
.withPrivilegedMode(true);
148+
.withPrivilegedMode(true)
149+
.withStartupTimeout(Duration.ofMinutes(5));
144150
vshardClusterContainer.start();
145151
}
146152
clusterContainer = vshardClusterContainer;

tarantool-shared-resources/vshard_cluster/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ COPY "cluster" "$TARANTOOL_WORKDIR"
1010

1111
# install dependencies
1212
RUN apt-get -y update && \
13-
apt-get -y install build-essential cmake make gcc git unzip cartridge-cli && \
13+
apt-get -y install build-essential cmake make gcc git unzip && \
1414
apt-get -y clean
1515

1616
CMD tt init && tt build && tt start && sleep infinity

tarantool-shared-resources/vshard_cluster/config.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ sharding:
2222

2323
groups:
2424
storages:
25+
roles:
26+
- roles.crud-storage
2527
app:
2628
module: storage
2729
sharding:
@@ -52,6 +54,8 @@ groups:
5254
listen:
5355
- uri: "3306"
5456
routers:
57+
roles:
58+
- roles.crud-router
5559
app:
5660
module: router
5761
sharding:
Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,6 @@
1-
local vshard = require('vshard')
2-
local log = require('log')
3-
local crud = require('crud')
41
local crud_aux = require('crud_aux')
52
local helpers = require('helpers')
63

7-
-- Bootstrap the vshard router.
8-
while true do
9-
local ok, err = vshard.router.bootstrap({
10-
if_not_bootstrapped = true,
11-
})
12-
if ok then
13-
crud.init_router()
14-
rawset(_G, 'crud_aux', crud_aux)
15-
crud_aux.init_module()
16-
helpers.init_module()
17-
break
18-
end
19-
log.info(('Router bootstrap error: %s'):format(err))
20-
end
4+
rawset(_G, 'crud_aux', crud_aux)
5+
crud_aux.init_module()
6+
helpers.init_module()

tarantool-shared-resources/vshard_cluster/storage.lua

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
local vshard = require('vshard')
2-
local crud = require('crud')
3-
4-
crud.init_storage()
51
box.once('person', function()
62
local space = box.schema.space.create("person", {
73
if_not_exists = true,

tarantool-spring-data/tarantool-spring-data-27/src/test/java/io/tarantool/spring/data27/integration/BaseIntegrationTest.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
import org.junit.jupiter.api.Timeout;
1515
import org.slf4j.LoggerFactory;
1616
import org.testcontainers.containers.ClusterContainer;
17+
import org.testcontainers.containers.Network;
1718
import org.testcontainers.containers.TarantoolCartridgeContainer;
1819
import org.testcontainers.containers.VshardClusterContainer;
1920
import org.testcontainers.containers.output.Slf4jLogConsumer;
21+
import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy;
2022

2123
import static io.tarantool.spring.data.utils.Constants.DEFAULT_PROPERTY_FILE_NAME;
2224
import static io.tarantool.spring.data27.utils.TarantoolTestSupport.DEFAULT_TEST_PROPERTY_DIR;
@@ -28,6 +30,8 @@ public abstract class BaseIntegrationTest {
2830

2931
protected static ClusterContainer clusterContainer;
3032

33+
private static final Network NETWORK = Network.newNetwork();
34+
3135
private static final String dockerRegistry =
3236
System.getenv().getOrDefault("TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX", "");
3337

@@ -41,14 +45,18 @@ private static void configureContainer() {
4145
if (!isCartridgeAvailable()) {
4246
VshardClusterContainer vshardClusterContainer =
4347
new VshardClusterContainer(
44-
"vshard_cluster/Dockerfile",
45-
dockerRegistry + "vshard-cluster-java",
46-
"vshard_cluster/instances.yaml",
47-
"vshard_cluster/config.yaml",
48-
"tarantool/tarantool");
48+
"vshard_cluster/Dockerfile",
49+
dockerRegistry + "vshard-cluster-java",
50+
"vshard_cluster/instances.yaml",
51+
"vshard_cluster/config.yaml",
52+
"tarantool/tarantool")
53+
.withNetwork(NETWORK)
54+
.withWaitingStrategy(new HostPortWaitStrategy().forPorts(3301));
4955

5056
if (!vshardClusterContainer.isRunning()) {
51-
vshardClusterContainer.withPrivilegedMode(true);
57+
vshardClusterContainer
58+
.withPrivilegedMode(true)
59+
.withStartupTimeout(Duration.ofMinutes(5));
5260
vshardClusterContainer.start();
5361
}
5462
clusterContainer = vshardClusterContainer;

tarantool-spring-data/tarantool-spring-data-31/src/test/java/io/tarantool/spring/data31/integration/BaseIntegrationTest.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
import org.junit.jupiter.api.Timeout;
1515
import org.slf4j.LoggerFactory;
1616
import org.testcontainers.containers.ClusterContainer;
17+
import org.testcontainers.containers.Network;
1718
import org.testcontainers.containers.TarantoolCartridgeContainer;
1819
import org.testcontainers.containers.VshardClusterContainer;
1920
import org.testcontainers.containers.output.Slf4jLogConsumer;
21+
import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy;
2022

2123
import static io.tarantool.spring.data.utils.Constants.DEFAULT_PROPERTY_FILE_NAME;
2224
import static io.tarantool.spring.data31.utils.TarantoolTestSupport.DEFAULT_TEST_PROPERTY_DIR;
@@ -28,6 +30,8 @@ public abstract class BaseIntegrationTest {
2830

2931
protected static ClusterContainer clusterContainer;
3032

33+
private static final Network NETWORK = Network.newNetwork();
34+
3135
private static final String dockerRegistry =
3236
System.getenv().getOrDefault("TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX", "");
3337

@@ -41,14 +45,18 @@ private static void configureContainer() {
4145
if (!isCartridgeAvailable()) {
4246
VshardClusterContainer vshardClusterContainer =
4347
new VshardClusterContainer(
44-
"vshard_cluster/Dockerfile",
45-
dockerRegistry + "vshard-cluster-java",
46-
"vshard_cluster/instances.yaml",
47-
"vshard_cluster/config.yaml",
48-
"tarantool/tarantool");
48+
"vshard_cluster/Dockerfile",
49+
dockerRegistry + "vshard-cluster-java",
50+
"vshard_cluster/instances.yaml",
51+
"vshard_cluster/config.yaml",
52+
"tarantool/tarantool")
53+
.withNetwork(NETWORK)
54+
.withWaitingStrategy(new HostPortWaitStrategy().forPorts(3301));
4955

5056
if (!vshardClusterContainer.isRunning()) {
51-
vshardClusterContainer.withPrivilegedMode(true);
57+
vshardClusterContainer
58+
.withPrivilegedMode(true)
59+
.withStartupTimeout(Duration.ofMinutes(5));
5260
vshardClusterContainer.start();
5361
}
5462
clusterContainer = vshardClusterContainer;

tarantool-spring-data/tarantool-spring-data-32/src/test/java/io/tarantool/spring/data32/integration/BaseIntegrationTest.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
import org.junit.jupiter.api.Timeout;
1515
import org.slf4j.LoggerFactory;
1616
import org.testcontainers.containers.ClusterContainer;
17+
import org.testcontainers.containers.Network;
1718
import org.testcontainers.containers.TarantoolCartridgeContainer;
1819
import org.testcontainers.containers.VshardClusterContainer;
1920
import org.testcontainers.containers.output.Slf4jLogConsumer;
21+
import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy;
2022

2123
import static io.tarantool.spring.data.utils.Constants.DEFAULT_PROPERTY_FILE_NAME;
2224
import static io.tarantool.spring.data32.utils.TarantoolTestSupport.DEFAULT_TEST_PROPERTY_DIR;
@@ -28,6 +30,8 @@ public abstract class BaseIntegrationTest {
2830

2931
protected static ClusterContainer clusterContainer;
3032

33+
private static final Network NETWORK = Network.newNetwork();
34+
3135
private static final String dockerRegistry =
3236
System.getenv().getOrDefault("TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX", "");
3337

@@ -41,14 +45,18 @@ private static void configureContainer() {
4145
if (!isCartridgeAvailable()) {
4246
VshardClusterContainer vshardClusterContainer =
4347
new VshardClusterContainer(
44-
"vshard_cluster/Dockerfile",
45-
dockerRegistry + "vshard-cluster-java",
46-
"vshard_cluster/instances.yaml",
47-
"vshard_cluster/config.yaml",
48-
"tarantool/tarantool");
48+
"vshard_cluster/Dockerfile",
49+
dockerRegistry + "vshard-cluster-java",
50+
"vshard_cluster/instances.yaml",
51+
"vshard_cluster/config.yaml",
52+
"tarantool/tarantool")
53+
.withNetwork(NETWORK)
54+
.withWaitingStrategy(new HostPortWaitStrategy().forPorts(3301));
4955

5056
if (!vshardClusterContainer.isRunning()) {
51-
vshardClusterContainer.withPrivilegedMode(true);
57+
vshardClusterContainer
58+
.withPrivilegedMode(true)
59+
.withStartupTimeout(Duration.ofMinutes(5));
5260
vshardClusterContainer.start();
5361
}
5462
clusterContainer = vshardClusterContainer;

tarantool-spring-data/tarantool-spring-data-33/src/test/java/io/tarantool/spring/data33/integration/BaseIntegrationTest.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
import org.junit.jupiter.api.Timeout;
1515
import org.slf4j.LoggerFactory;
1616
import org.testcontainers.containers.ClusterContainer;
17+
import org.testcontainers.containers.Network;
1718
import org.testcontainers.containers.TarantoolCartridgeContainer;
1819
import org.testcontainers.containers.VshardClusterContainer;
1920
import org.testcontainers.containers.output.Slf4jLogConsumer;
21+
import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy;
2022

2123
import static io.tarantool.spring.data.utils.Constants.DEFAULT_PROPERTY_FILE_NAME;
2224
import static io.tarantool.spring.data33.utils.TarantoolTestSupport.DEFAULT_TEST_PROPERTY_DIR;
@@ -28,6 +30,8 @@ public abstract class BaseIntegrationTest {
2830

2931
protected static ClusterContainer clusterContainer;
3032

33+
private static final Network NETWORK = Network.newNetwork();
34+
3135
private static final String dockerRegistry =
3236
System.getenv().getOrDefault("TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX", "");
3337

@@ -41,14 +45,18 @@ private static void configureContainer() {
4145
if (!isCartridgeAvailable()) {
4246
VshardClusterContainer vshardClusterContainer =
4347
new VshardClusterContainer(
44-
"vshard_cluster/Dockerfile",
45-
dockerRegistry + "vshard-cluster-java",
46-
"vshard_cluster/instances.yaml",
47-
"vshard_cluster/config.yaml",
48-
"tarantool/tarantool");
48+
"vshard_cluster/Dockerfile",
49+
dockerRegistry + "vshard-cluster-java",
50+
"vshard_cluster/instances.yaml",
51+
"vshard_cluster/config.yaml",
52+
"tarantool/tarantool")
53+
.withNetwork(NETWORK)
54+
.withWaitingStrategy(new HostPortWaitStrategy().forPorts(3301));
4955

5056
if (!vshardClusterContainer.isRunning()) {
51-
vshardClusterContainer.withPrivilegedMode(true);
57+
vshardClusterContainer
58+
.withPrivilegedMode(true)
59+
.withStartupTimeout(Duration.ofMinutes(5));
5260
vshardClusterContainer.start();
5361
}
5462
clusterContainer = vshardClusterContainer;

tarantool-spring-data/tarantool-spring-data-34/src/test/java/io/tarantool/spring/data34/integration/BaseIntegrationTest.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@
1414
import org.junit.jupiter.api.Timeout;
1515
import org.slf4j.LoggerFactory;
1616
import org.testcontainers.containers.ClusterContainer;
17+
import org.testcontainers.containers.Network;
1718
import org.testcontainers.containers.TarantoolCartridgeContainer;
1819
import org.testcontainers.containers.VshardClusterContainer;
1920
import org.testcontainers.containers.output.Slf4jLogConsumer;
21+
import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy;
2022

2123
import static io.tarantool.spring.data.utils.Constants.DEFAULT_PROPERTY_FILE_NAME;
2224
import static io.tarantool.spring.data34.utils.TarantoolTestSupport.DEFAULT_TEST_PROPERTY_DIR;
@@ -28,6 +30,8 @@ public abstract class BaseIntegrationTest {
2830

2931
protected static ClusterContainer clusterContainer;
3032

33+
private static final Network NETWORK = Network.newNetwork();
34+
3135
private static final String dockerRegistry =
3236
System.getenv().getOrDefault("TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX", "");
3337

@@ -41,14 +45,18 @@ private static void configureContainer() {
4145
if (!isCartridgeAvailable()) {
4246
VshardClusterContainer vshardClusterContainer =
4347
new VshardClusterContainer(
44-
"vshard_cluster/Dockerfile",
45-
dockerRegistry + "vshard-cluster-java",
46-
"vshard_cluster/instances.yaml",
47-
"vshard_cluster/config.yaml",
48-
"tarantool/tarantool");
48+
"vshard_cluster/Dockerfile",
49+
dockerRegistry + "vshard-cluster-java",
50+
"vshard_cluster/instances.yaml",
51+
"vshard_cluster/config.yaml",
52+
"tarantool/tarantool")
53+
.withNetwork(NETWORK)
54+
.withWaitingStrategy(new HostPortWaitStrategy().forPorts(3301));
4955

5056
if (!vshardClusterContainer.isRunning()) {
51-
vshardClusterContainer.withPrivilegedMode(true);
57+
vshardClusterContainer
58+
.withPrivilegedMode(true)
59+
.withStartupTimeout(Duration.ofMinutes(5));
5260
vshardClusterContainer.start();
5361
}
5462
clusterContainer = vshardClusterContainer;

0 commit comments

Comments
 (0)