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

tanxinyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 686ae1b54ff [IOTDB-6303] Correct the default path of user, role and 
procedure folder (#12089)
686ae1b54ff is described below

commit 686ae1b54ffb13c4acd18073912eb71ecbe2eaf0
Author: Yongzao <[email protected]>
AuthorDate: Wed Feb 28 18:25:47 2024 +0800

    [IOTDB-6303] Correct the default path of user, role and procedure folder 
(#12089)
---
 .../procedure/store/ConfigProcedureStore.java      |  9 +++++
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 14 +++----
 .../commons/auth/role/LocalFileRoleAccessor.java   | 11 ++++++
 .../commons/auth/user/LocalFileUserAccessor.java   | 11 ++++++
 .../apache/iotdb/commons/conf/CommonConfig.java    | 43 +++++++++++++++++++---
 .../apache/iotdb/commons/conf/IoTDBConstant.java   |  3 +-
 6 files changed, 78 insertions(+), 13 deletions(-)

diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ConfigProcedureStore.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ConfigProcedureStore.java
index e2154903ae0..5e1dcd54041 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ConfigProcedureStore.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/store/ConfigProcedureStore.java
@@ -20,6 +20,7 @@
 package org.apache.iotdb.confignode.procedure.store;
 
 import org.apache.iotdb.commons.conf.CommonDescriptor;
+import org.apache.iotdb.commons.utils.FileUtils;
 import 
org.apache.iotdb.confignode.consensus.request.write.procedure.DeleteProcedurePlan;
 import 
org.apache.iotdb.confignode.consensus.request.write.procedure.UpdateProcedurePlan;
 import org.apache.iotdb.confignode.manager.ConfigManager;
@@ -138,6 +139,7 @@ public class ConfigProcedureStore implements 
IProcedureStore {
 
   private void checkProcWalDir(String procedureWalDir) throws IOException {
     File dir = new File(procedureWalDir);
+    checkOldProcWalDir(dir);
     if (!dir.exists()) {
       if (dir.mkdirs()) {
         LOG.info("Make procedure wal dir: {}", dir);
@@ -149,4 +151,11 @@ public class ConfigProcedureStore implements 
IProcedureStore {
       }
     }
   }
+
+  private void checkOldProcWalDir(File newDir) {
+    File oldDir = new 
File(CommonDescriptor.getInstance().getConfig().getOldProcedureWalFolder());
+    if (oldDir.exists()) {
+      FileUtils.moveFileSafe(oldDir, newDir);
+    }
+  }
 }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 854401d7b5e..8aba6ac18b3 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -258,11 +258,11 @@ public class IoTDBConfig {
 
   /** System directory, including version file for each database and metadata 
*/
   private String systemDir =
-      IoTDBConstant.DEFAULT_BASE_DIR + File.separator + 
IoTDBConstant.SYSTEM_FOLDER_NAME;
+      IoTDBConstant.DN_DEFAULT_DATA_DIR + File.separator + 
IoTDBConstant.SYSTEM_FOLDER_NAME;
 
   /** Schema directory, including storage set of values. */
   private String schemaDir =
-      IoTDBConstant.DEFAULT_BASE_DIR
+      IoTDBConstant.DN_DEFAULT_DATA_DIR
           + File.separator
           + IoTDBConstant.SYSTEM_FOLDER_NAME
           + File.separator
@@ -270,7 +270,7 @@ public class IoTDBConfig {
 
   /** Query directory, stores temporary files of query */
   private String queryDir =
-      IoTDBConstant.DEFAULT_BASE_DIR + File.separator + 
IoTDBConstant.QUERY_FOLDER_NAME;
+      IoTDBConstant.DN_DEFAULT_DATA_DIR + File.separator + 
IoTDBConstant.QUERY_FOLDER_NAME;
 
   /** External lib directory, stores user-uploaded JAR files */
   private String extDir = IoTDBConstant.EXT_FOLDER_NAME;
@@ -307,7 +307,7 @@ public class IoTDBConfig {
 
   /** Tiered data directories. It can be settled as dataDirs = {{"data1"}, 
{"data2", "data3"}}; */
   private String[][] tierDataDirs = {
-    {IoTDBConstant.DEFAULT_BASE_DIR + File.separator + 
IoTDBConstant.DATA_FOLDER_NAME}
+    {IoTDBConstant.DN_DEFAULT_DATA_DIR + File.separator + 
IoTDBConstant.DATA_FOLDER_NAME}
   };
 
   private String loadTsFileDir =
@@ -317,14 +317,14 @@ public class IoTDBConfig {
   private String multiDirStrategyClassName = null;
 
   private String ratisDataRegionSnapshotDir =
-      IoTDBConstant.DEFAULT_BASE_DIR
+      IoTDBConstant.DN_DEFAULT_DATA_DIR
           + File.separator
           + IoTDBConstant.DATA_FOLDER_NAME
           + File.separator
           + IoTDBConstant.SNAPSHOT_FOLDER_NAME;
 
   /** Consensus directory. */
-  private String consensusDir = IoTDBConstant.DEFAULT_BASE_DIR + 
File.separator + "consensus";
+  private String consensusDir = IoTDBConstant.DN_DEFAULT_DATA_DIR + 
File.separator + "consensus";
 
   private String dataRegionConsensusDir = consensusDir + File.separator + 
"data_region";
 
@@ -332,7 +332,7 @@ public class IoTDBConfig {
 
   /** temp result directory for sortOperator */
   private String sortTmpDir =
-      IoTDBConstant.DEFAULT_BASE_DIR + File.separator + 
IoTDBConstant.TMP_FOLDER_NAME;
+      IoTDBConstant.DN_DEFAULT_DATA_DIR + File.separator + 
IoTDBConstant.TMP_FOLDER_NAME;
 
   /** Maximum MemTable number. Invalid when enableMemControl is true. */
   private int maxMemtableNumber = 0;
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/role/LocalFileRoleAccessor.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/role/LocalFileRoleAccessor.java
index 2606db69aa4..530b09b05c9 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/role/LocalFileRoleAccessor.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/role/LocalFileRoleAccessor.java
@@ -20,6 +20,7 @@ package org.apache.iotdb.commons.auth.role;
 
 import org.apache.iotdb.commons.auth.entity.PathPrivilege;
 import org.apache.iotdb.commons.auth.entity.Role;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.file.SystemFileFactory;
 import org.apache.iotdb.commons.utils.FileUtils;
@@ -266,6 +267,7 @@ public class LocalFileRoleAccessor implements IRoleAccessor 
{
 
   @Override
   public void reset() {
+    checkOldRoleDir(SystemFileFactory.INSTANCE.getFile(roleDirPath));
     if (SystemFileFactory.INSTANCE.getFile(roleDirPath).mkdirs()) {
       LOGGER.info("role info dir {} is created", roleDirPath);
     } else if (!SystemFileFactory.INSTANCE.getFile(roleDirPath).exists()) {
@@ -273,6 +275,15 @@ public class LocalFileRoleAccessor implements 
IRoleAccessor {
     }
   }
 
+  private void checkOldRoleDir(File newDir) {
+    File oldDir = new 
File(CommonDescriptor.getInstance().getConfig().getOldRoleFolder());
+    if (oldDir.exists()) {
+      if (!FileUtils.moveFileSafe(oldDir, newDir)) {
+        LOGGER.error("move old role dir fail: {}", oldDir.getAbsolutePath());
+      }
+    }
+  }
+
   @Override
   public void cleanRoleFolder() {
     File[] files = SystemFileFactory.INSTANCE.getFile(roleDirPath).listFiles();
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/LocalFileUserAccessor.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/LocalFileUserAccessor.java
index d2030692df2..b59743161d2 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/LocalFileUserAccessor.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/LocalFileUserAccessor.java
@@ -20,6 +20,7 @@ package org.apache.iotdb.commons.auth.user;
 
 import org.apache.iotdb.commons.auth.entity.PathPrivilege;
 import org.apache.iotdb.commons.auth.entity.User;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.file.SystemFileFactory;
 import org.apache.iotdb.commons.utils.FileUtils;
@@ -395,6 +396,7 @@ public class LocalFileUserAccessor implements IUserAccessor 
{
 
   @Override
   public void reset() {
+    checkOldUserDir(SystemFileFactory.INSTANCE.getFile(userDirPath));
     if (SystemFileFactory.INSTANCE.getFile(userDirPath).mkdirs()) {
       LOGGER.info("user info dir {} is created", userDirPath);
     } else if (!SystemFileFactory.INSTANCE.getFile(userDirPath).exists()) {
@@ -402,6 +404,15 @@ public class LocalFileUserAccessor implements 
IUserAccessor {
     }
   }
 
+  private void checkOldUserDir(File newDir) {
+    File oldDir = new 
File(CommonDescriptor.getInstance().getConfig().getOldUserFolder());
+    if (oldDir.exists()) {
+      if (!FileUtils.moveFileSafe(oldDir, newDir)) {
+        LOGGER.error("move old user dir fail: {}", oldDir.getAbsolutePath());
+      }
+    }
+  }
+
   @Override
   public String getDirPath() {
     return userDirPath;
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
index 0a3d1381663..b22c39b0a13 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
@@ -55,22 +55,43 @@ public class CommonConfig {
 
   private String adminPassword = "root";
 
+  private String oldUserFolder =
+      IoTDBConstant.DN_DEFAULT_DATA_DIR
+          + File.separator
+          + IoTDBConstant.SYSTEM_FOLDER_NAME
+          + File.separator
+          + "users";
+
+  private String oldRoleFolder =
+      IoTDBConstant.DN_DEFAULT_DATA_DIR
+          + File.separator
+          + IoTDBConstant.SYSTEM_FOLDER_NAME
+          + File.separator
+          + "roles";
+
+  private String oldProcedureWalFolder =
+      IoTDBConstant.DN_DEFAULT_DATA_DIR
+          + File.separator
+          + IoTDBConstant.SYSTEM_FOLDER_NAME
+          + File.separator
+          + "procedure";
+
   private String userFolder =
-      IoTDBConstant.DEFAULT_BASE_DIR
+      IoTDBConstant.CN_DEFAULT_DATA_DIR
           + File.separator
           + IoTDBConstant.SYSTEM_FOLDER_NAME
           + File.separator
           + "users";
 
   private String roleFolder =
-      IoTDBConstant.DEFAULT_BASE_DIR
+      IoTDBConstant.CN_DEFAULT_DATA_DIR
           + File.separator
           + IoTDBConstant.SYSTEM_FOLDER_NAME
           + File.separator
           + "roles";
 
   private String procedureWalFolder =
-      IoTDBConstant.DEFAULT_BASE_DIR
+      IoTDBConstant.CN_DEFAULT_DATA_DIR
           + File.separator
           + IoTDBConstant.SYSTEM_FOLDER_NAME
           + File.separator
@@ -78,11 +99,11 @@ public class CommonConfig {
 
   /** Sync directory, including the log and hardlink tsFiles. */
   private String syncDir =
-      IoTDBConstant.DEFAULT_BASE_DIR + File.separator + 
IoTDBConstant.SYNC_FOLDER_NAME;
+      IoTDBConstant.DN_DEFAULT_DATA_DIR + File.separator + 
IoTDBConstant.SYNC_FOLDER_NAME;
 
   /** WAL directories. */
   private String[] walDirs = {
-    IoTDBConstant.DEFAULT_BASE_DIR + File.separator + 
IoTDBConstant.WAL_FOLDER_NAME
+    IoTDBConstant.DN_DEFAULT_DATA_DIR + File.separator + 
IoTDBConstant.WAL_FOLDER_NAME
   };
 
   /** Default system file storage is in local file system (unsupported). */
@@ -297,6 +318,18 @@ public class CommonConfig {
     this.adminPassword = adminPassword;
   }
 
+  public String getOldUserFolder() {
+    return oldUserFolder;
+  }
+
+  public String getOldRoleFolder() {
+    return oldRoleFolder;
+  }
+
+  public String getOldProcedureWalFolder() {
+    return oldProcedureWalFolder;
+  }
+
   public String getUserFolder() {
     return userFolder;
   }
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
index 9b7c37782b3..23bc7884345 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
@@ -221,7 +221,8 @@ public class IoTDBConstant {
               MAX_STRING_LENGTH));
 
   // default base dir, stores all IoTDB runtime files
-  public static final String DEFAULT_BASE_DIR = "data" + File.separator + 
DN_ROLE;
+  public static final String CN_DEFAULT_DATA_DIR = "data" + File.separator + 
CN_ROLE;
+  public static final String DN_DEFAULT_DATA_DIR = "data" + File.separator + 
DN_ROLE;
 
   // data folder name
   public static final String DATA_FOLDER_NAME = "data";

Reply via email to