This is an automated email from the ASF dual-hosted git repository.

zhonghongsheng 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 062dda00b0a Add encrypt rule at migration IT case (#20550)
062dda00b0a is described below

commit 062dda00b0a16c1fd44a47c0e20ab1ec27130472
Author: Xinze Guo <[email protected]>
AuthorDate: Fri Aug 26 15:15:34 2022 +0800

    Add encrypt rule at migration IT case (#20550)
---
 .../integration/data/pipeline/cases/base/BaseITCase.java      | 11 ++++++++---
 .../data/pipeline/cases/command/MigrationDistSQLCommand.java  |  3 +++
 .../data/pipeline/cases/general/MySQLMigrationGeneralIT.java  |  1 +
 .../data/pipeline/cases/task/MySQLIncrementTask.java          | 10 +++++-----
 .../data/pipeline/framework/helper/ScalingCaseHelper.java     |  6 +++---
 .../src/test/resources/env/common/command.xml                 |  6 ++++++
 6 files changed, 26 insertions(+), 11 deletions(-)

diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
index 7092d4bc933..43018a2beb8 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
@@ -218,11 +218,15 @@ public abstract class BaseITCase {
     }
     
     protected void createTargetOrderTableRule() throws SQLException {
-        
proxyExecuteWithLog(migrationDistSQLCommand.getCreateTargetOrderTableRule(), 3);
+        
proxyExecuteWithLog(migrationDistSQLCommand.getCreateTargetOrderTableRule(), 2);
+    }
+    
+    protected void createTargetOrderTableEncryptRule() throws SQLException {
+        
proxyExecuteWithLog(migrationDistSQLCommand.getCreateTargetOrderTableEncryptRule(),
 2);
     }
     
     protected void createTargetOrderItemTableRule() throws SQLException {
-        
proxyExecuteWithLog(migrationDistSQLCommand.getCreateTargetOrderItemTableRule(),
 3);
+        
proxyExecuteWithLog(migrationDistSQLCommand.getCreateTargetOrderItemTableRule(),
 2);
     }
     
     protected void startMigrationOrder(final boolean withSchema) throws 
SQLException {
@@ -245,8 +249,9 @@ public abstract class BaseITCase {
         try {
             
proxyExecuteWithLog(migrationDistSQLCommand.getAddMigrationProcessConfig(), 0);
         } catch (final SQLException ex) {
-            if ("58000".equals(ex.getSQLState())) {
+            if ("58000".equals(ex.getSQLState()) || 
"42000".equals(ex.getSQLState())) {
                 log.warn(ex.getMessage());
+                return;
             }
             throw ex;
         }
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/command/MigrationDistSQLCommand.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/command/MigrationDistSQLCommand.java
index 260b660e41c..bc873e505e0 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/command/MigrationDistSQLCommand.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/command/MigrationDistSQLCommand.java
@@ -32,6 +32,9 @@ public final class MigrationDistSQLCommand {
     @XmlElement(name = "add-migration-process-config")
     private String addMigrationProcessConfig;
     
+    @XmlElement(name = "create-target-order-table-encrypt-rule")
+    private String createTargetOrderTableEncryptRule;
+    
     @XmlElement(name = "create-target-order-table-rule")
     private String createTargetOrderTableRule;
     
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/general/MySQLMigrationGeneralIT.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/general/MySQLMigrationGeneralIT.java
index d54f9b67e49..813973da71d 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/general/MySQLMigrationGeneralIT.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/general/MySQLMigrationGeneralIT.java
@@ -78,6 +78,7 @@ public final class MySQLMigrationGeneralIT extends 
BaseExtraSQLITCase {
         addSourceResource();
         addTargetResource();
         createTargetOrderTableRule();
+        createTargetOrderTableEncryptRule();
         createTargetOrderItemTableRule();
         SnowflakeKeyGenerateAlgorithm keyGenerateAlgorithm = new 
SnowflakeKeyGenerateAlgorithm();
         JdbcTemplate jdbcTemplate = new JdbcTemplate(getSourceDataSource());
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/task/MySQLIncrementTask.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/task/MySQLIncrementTask.java
index 14bebdc5c5f..a0a049bc846 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/task/MySQLIncrementTask.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/task/MySQLIncrementTask.java
@@ -19,6 +19,7 @@ package 
org.apache.shardingsphere.integration.data.pipeline.cases.task;
 
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.RandomStringUtils;
 import 
org.apache.shardingsphere.integration.data.pipeline.cases.base.BaseIncrementTask;
 import 
org.apache.shardingsphere.integration.data.pipeline.framework.helper.ScalingCaseHelper;
 import org.apache.shardingsphere.sharding.spi.KeyGenerateAlgorithm;
@@ -61,9 +62,8 @@ public final class MySQLIncrementTask extends 
BaseIncrementTask {
     
     private Object insertOrder() {
         ThreadLocalRandom random = ThreadLocalRandom.current();
-        String status = random.nextInt() % 2 == 0 ? null : "NOT-NULL";
         Object[] orderInsertDate = new 
Object[]{primaryKeyGenerateAlgorithm.generateKey(), 
ScalingCaseHelper.generateSnowflakeKey(), random.nextInt(0, 6),
-                random.nextInt(1, 99), status};
+                random.nextInt(1, 99), RandomStringUtils.randomAlphabetic(10)};
         jdbcTemplate.update("INSERT INTO t_order 
(id,order_id,user_id,t_unsigned_int,status) VALUES (?, ?, ?, ?, ?)", 
orderInsertDate);
         return orderInsertDate[0];
     }
@@ -78,11 +78,11 @@ public final class MySQLIncrementTask extends 
BaseIncrementTask {
     
     private void updateOrderByPrimaryKey(final Object primaryKey) {
         Object[] updateData = {"updated" + Instant.now().getEpochSecond(), 
ThreadLocalRandom.current().nextInt(0, 100), primaryKey};
-        jdbcTemplate.update("UPDATE t_order SET status = ?,t_unsigned_int = ? 
WHERE id = ?", updateData);
-        jdbcTemplate.update("UPDATE t_order SET status = null,t_unsigned_int = 
299,t_datetime='0000-00-00 00:00:00' WHERE id = ?", primaryKey);
+        jdbcTemplate.update("UPDATE t_order SET t_char = ?,t_unsigned_int = ? 
WHERE id = ?", updateData);
+        jdbcTemplate.update("UPDATE t_order SET t_char = null,t_unsigned_int = 
299,t_datetime='0000-00-00 00:00:00' WHERE id = ?", primaryKey);
     }
     
     private void setNullToOrderFields(final Object primaryKey) {
-        jdbcTemplate.update("UPDATE t_order SET status = null, t_unsigned_int 
= null WHERE id = ?", primaryKey);
+        jdbcTemplate.update("UPDATE t_order SET t_char = null, t_unsigned_int 
= null WHERE id = ?", primaryKey);
     }
 }
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/helper/ScalingCaseHelper.java
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/helper/ScalingCaseHelper.java
index 6a658b291ea..b0531fb2503 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/helper/ScalingCaseHelper.java
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/helper/ScalingCaseHelper.java
@@ -27,6 +27,7 @@ import 
org.apache.shardingsphere.sharding.spi.KeyGenerateAlgorithm;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.OffsetDateTime;
+import java.time.Year;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ThreadLocalRandom;
@@ -70,9 +71,8 @@ public final class ScalingCaseHelper {
             if (databaseType instanceof MySQLDatabaseType) {
                 Object[] addObjs = {keyGenerateAlgorithm.generateKey(), 
orderId, userId, generateString(6), randomInt, randomInt, randomInt,
                         randomUnsignedInt, randomUnsignedInt, 
randomUnsignedInt, randomUnsignedInt, generateFloat(), generateDouble(-1000, 
100000),
-                        // TODO year should not be always null
-                        BigDecimal.valueOf(generateDouble(1, 100)), now, now, 
now.toLocalDate(), now.toLocalTime(), null, "1", "t", "e", "s", "t", 
generateString(2), generateString(1),
-                        generateString(1), "1", "2", generateJsonString(1024)};
+                        BigDecimal.valueOf(generateDouble(1, 100)), now, now, 
now.toLocalDate(), now.toLocalTime(), Year.now().getValue(), "1", "t", "e", 
"s", "t", generateString(2),
+                        generateString(1), generateString(1), "1", "2", 
generateJsonString(1024)};
                 orderData.add(addObjs);
             } else {
                 orderData.add(new Object[]{keyGenerateAlgorithm.generateKey(), 
orderId, userId, generateString(6), randomInt,
diff --git 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/common/command.xml
 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/common/command.xml
index 6b54bf4614b..fea5de0e5c4 100644
--- 
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/common/command.xml
+++ 
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/common/command.xml
@@ -57,6 +57,12 @@
         )
     </add-migration-target-resource-template>
     
+    <create-target-order-table-encrypt-rule>
+        CREATE ENCRYPT RULE t_order (
+        COLUMNS((NAME=status, 
CIPHER=status,TYPE(NAME='AES',PROPERTIES('aes-key-value'='123456abc')))),
+        QUERY_WITH_CIPHER_COLUMN=true)
+    </create-target-order-table-encrypt-rule>
+    
     <create-target-order-table-rule>
         CREATE SHARDING TABLE RULE t_order(
         RESOURCES(ds_2,ds_3,ds_4),

Reply via email to