You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/11/02 01:44:25 UTC
[shardingsphere] branch master updated: Add standalone mode for show processlist it. (#21893)
This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new ca9c162776c Add standalone mode for show processlist it. (#21893)
ca9c162776c is described below
commit ca9c162776c8514a4b8340a8fb18fa844e3f91f1
Author: Chuxin Chen <ch...@qq.com>
AuthorDate: Wed Nov 2 09:44:18 2022 +0800
Add standalone mode for show processlist it. (#21893)
---
.github/workflows/it-showprocesslist.yml | 5 ++++-
.../ClusterShowProcessListContainerComposer.java | 25 ++++++++++++++--------
.../showprocesslist/engine/ShowProcessListIT.java | 4 +++-
.../env/IntegrationTestEnvironment.java | 3 +++
.../parameter/ShowProcessListParameterized.java | 2 ++
.../src/test/resources/env/it-env.properties | 2 ++
6 files changed, 30 insertions(+), 11 deletions(-)
diff --git a/.github/workflows/it-showprocesslist.yml b/.github/workflows/it-showprocesslist.yml
index 0975f8899dc..60986eb8918 100644
--- a/.github/workflows/it-showprocesslist.yml
+++ b/.github/workflows/it-showprocesslist.yml
@@ -61,6 +61,9 @@ jobs:
env:
mysql_version: 5.7
timeout-minutes: 10
+ strategy:
+ matrix:
+ mode: [ Standalone, Cluster ]
steps:
- uses: actions/checkout@v3
- name: Cache Maven Repos
@@ -79,4 +82,4 @@ jobs:
- name: Build ShowProcesslist IT image
run: ./mvnw -B clean install -am -pl test/integration-test/showprocesslist -Pit.env.docker -DskipTests
- name: Run MySQL ShowProcesslist Integration Test
- run: ./mvnw -nsu -B install -f test/integration-test/showprocesslist/pom.xml -Dit.env.type=docker -Dit.scenarios=cluster_jdbc_proxy
+ run: ./mvnw -nsu -B install -f test/integration-test/showprocesslist/pom.xml -Dit.env.type=docker -Dit.scenarios=cluster_jdbc_proxy -Dit.run.modes=${{ matrix.mode }}
diff --git a/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/container/composer/ClusterShowProcessListContainerComposer.java b/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/container/composer/ClusterShowProcessListContainerComposer.java
index ce83d6c7efe..7722f52403f 100644
--- a/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/container/composer/ClusterShowProcessListContainerComposer.java
+++ b/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/container/composer/ClusterShowProcessListContainerComposer.java
@@ -51,34 +51,41 @@ public final class ClusterShowProcessListContainerComposer {
public ClusterShowProcessListContainerComposer(final ShowProcessListParameterized parameterized) {
containers = new ITContainers(parameterized.getScenario());
- governanceContainer = containers.registerContainer(GovernanceContainerFactory.newInstance("ZooKeeper"));
+ governanceContainer = isClusterMode(parameterized.getRunMode()) ? containers.registerContainer(GovernanceContainerFactory.newInstance("ZooKeeper")) : null;
StorageContainer storageContainer = containers.registerContainer(StorageContainerFactory.newInstance(parameterized.getDatabaseType(), "", parameterized.getScenario(),
StorageContainerConfigurationFactory.newInstance(parameterized.getDatabaseType())));
AdaptorContainerConfiguration containerConfig = new AdaptorContainerConfiguration(parameterized.getScenario(),
- getMountedResources(parameterized.getScenario(), parameterized.getDatabaseType()), AdapterContainerUtil.getAdapterContainerImage());
- jdbcContainer = AdapterContainerFactory.newInstance("cluster", "jdbc", parameterized.getDatabaseType(), storageContainer, parameterized.getScenario(), containerConfig);
- proxyContainer = AdapterContainerFactory.newInstance("cluster", "proxy", parameterized.getDatabaseType(), storageContainer, parameterized.getScenario(), containerConfig);
+ getMountedResources(parameterized.getScenario(), parameterized.getDatabaseType(), parameterized.getRunMode()), AdapterContainerUtil.getAdapterContainerImage());
+ jdbcContainer = AdapterContainerFactory.newInstance(parameterized.getRunMode(), "jdbc", parameterized.getDatabaseType(), storageContainer, parameterized.getScenario(), containerConfig);
+ proxyContainer = AdapterContainerFactory.newInstance(parameterized.getRunMode(), "proxy", parameterized.getDatabaseType(), storageContainer, parameterized.getScenario(), containerConfig);
if (proxyContainer instanceof DockerITContainer) {
- ((DockerITContainer) proxyContainer).dependsOn(governanceContainer, storageContainer);
+ if (isClusterMode(parameterized.getRunMode())) {
+ ((DockerITContainer) proxyContainer).dependsOn(governanceContainer);
+ }
+ ((DockerITContainer) proxyContainer).dependsOn(storageContainer);
}
containers.registerContainer(proxyContainer);
containers.registerContainer(jdbcContainer);
}
- private Map<String, String> getMountedResources(final String scenario, final DatabaseType databaseType) {
+ private Map<String, String> getMountedResources(final String scenario, final DatabaseType databaseType, final String runMode) {
Map<String, String> result = new HashMap<>(2, 1);
- result.put("/env/common/cluster/proxy/conf/", ProxyContainerConstants.CONFIG_PATH_IN_CONTAINER);
+ result.put(isClusterMode(runMode) ? "/env/common/cluster/proxy/conf/" : "/env/common/standalone/proxy/conf/", ProxyContainerConstants.CONFIG_PATH_IN_CONTAINER);
result.put("/env/scenario/" + scenario + "/proxy/conf/" + databaseType.getType().toLowerCase(), ProxyContainerConstants.CONFIG_PATH_IN_CONTAINER);
return result;
}
+ private boolean isClusterMode(final String runMode) {
+ return "Cluster".equals(runMode);
+ }
+
/**
* Get jdbc data source.
*
* @return data source
*/
public DataSource getJdbcDataSource() {
- return jdbcContainer.getTargetDataSource(governanceContainer.getServerLists());
+ return jdbcContainer.getTargetDataSource(null == governanceContainer ? null : governanceContainer.getServerLists());
}
/**
@@ -87,7 +94,7 @@ public final class ClusterShowProcessListContainerComposer {
* @return data source
*/
public DataSource getProxyDataSource() {
- return proxyContainer.getTargetDataSource(governanceContainer.getServerLists());
+ return proxyContainer.getTargetDataSource(null == governanceContainer ? null : governanceContainer.getServerLists());
}
/**
diff --git a/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/engine/ShowProcessListIT.java b/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/engine/ShowProcessListIT.java
index 74d57e2e965..1787ee10baa 100644
--- a/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/engine/ShowProcessListIT.java
+++ b/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/engine/ShowProcessListIT.java
@@ -60,7 +60,9 @@ public final class ShowProcessListIT {
Collection<ShowProcessListParameterized> result = new LinkedList<>();
ENV.getScenarios().forEach(each -> {
if (ITEnvTypeEnum.DOCKER == ENV.getItEnvType()) {
- result.add(new ShowProcessListParameterized(new MySQLDatabaseType(), each));
+ for (String runMode : ENV.getRunModes()) {
+ result.add(new ShowProcessListParameterized(new MySQLDatabaseType(), each, runMode));
+ }
}
});
return result;
diff --git a/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/env/IntegrationTestEnvironment.java b/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/env/IntegrationTestEnvironment.java
index c3395c84000..bd2605a2ca2 100644
--- a/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/env/IntegrationTestEnvironment.java
+++ b/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/env/IntegrationTestEnvironment.java
@@ -33,6 +33,8 @@ public final class IntegrationTestEnvironment {
private static final IntegrationTestEnvironment INSTANCE = new IntegrationTestEnvironment();
+ private final Collection<String> runModes;
+
private final Properties props;
private final ITEnvTypeEnum itEnvType;
@@ -41,6 +43,7 @@ public final class IntegrationTestEnvironment {
private IntegrationTestEnvironment() {
props = loadProperties();
+ runModes = Splitter.on(",").trimResults().splitToList(props.getProperty("it.run.modes"));
itEnvType = ITEnvTypeEnum.valueOf(props.getProperty("it.env.type", ITEnvTypeEnum.NONE.name()).toUpperCase());
scenarios = getScenarios(props);
}
diff --git a/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/parameter/ShowProcessListParameterized.java b/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/parameter/ShowProcessListParameterized.java
index bb39ecb04aa..93e13005f4b 100644
--- a/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/parameter/ShowProcessListParameterized.java
+++ b/test/integration-test/showprocesslist/src/test/java/org/apache/shardingsphere/test/integration/showprocesslist/parameter/ShowProcessListParameterized.java
@@ -30,4 +30,6 @@ public final class ShowProcessListParameterized {
private final DatabaseType databaseType;
private final String scenario;
+
+ private final String runMode;
}
diff --git a/test/integration-test/showprocesslist/src/test/resources/env/it-env.properties b/test/integration-test/showprocesslist/src/test/resources/env/it-env.properties
index b13f19d1b55..d21a0b45a8d 100644
--- a/test/integration-test/showprocesslist/src/test/resources/env/it-env.properties
+++ b/test/integration-test/showprocesslist/src/test/resources/env/it-env.properties
@@ -19,3 +19,5 @@
it.env.type=NONE
# it.scenarios=cluster_jdbc_proxy
it.scenarios=cluster_jdbc_proxy
+#it.run.modes=Standalone,Cluster
+it.run.modes=Standalone,Cluster