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

east pushed a commit to branch cluster
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/cluster by this push:
     new 5948e96  delete useless fields of RaftService update 
MetadataStateMachine
     new 68ffd9d  Merge remote-tracking branch 'origin/cluster' into cluster
5948e96 is described below

commit 5948e96a0c36ca7d4782813bc606812b54d3e213
Author: mdf369 <[email protected]>
AuthorDate: Tue Mar 26 14:07:01 2019 +0800

    delete useless fields of RaftService
    update MetadataStateMachine
---
 .../main/java/org/apache/iotdb/cluster/App.java    |  3 +-
 .../org/apache/iotdb/cluster/entity/Server.java    |  7 ++--
 .../entity/raft/DataPartitionRaftHolder.java       |  4 +-
 .../cluster/entity/raft/MetadataRaftHolder.java    |  5 ++-
 .../cluster/entity/raft/MetadataStateManchine.java | 45 +++++++++++++---------
 .../iotdb/cluster/entity/raft/RaftService.java     |  5 +--
 6 files changed, 38 insertions(+), 31 deletions(-)

diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/App.java 
b/cluster/src/main/java/org/apache/iotdb/cluster/App.java
index 56429f9..8930c41 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/App.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/App.java
@@ -19,10 +19,11 @@
 package org.apache.iotdb.cluster;
 
 import org.apache.iotdb.cluster.entity.Server;
+import org.apache.iotdb.db.auth.AuthException;
 
 public class App {
 
-  public static void main(String[] args){
+  public static void main(String[] args) throws AuthException {
     Server server = new Server();
     server.start();
   }
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/entity/Server.java 
b/cluster/src/main/java/org/apache/iotdb/cluster/entity/Server.java
index b12654b..a93d1af 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/entity/Server.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/entity/Server.java
@@ -30,6 +30,7 @@ import 
org.apache.iotdb.cluster.entity.metadata.MetadataHolder;
 import org.apache.iotdb.cluster.entity.raft.DataPartitionRaftHolder;
 import org.apache.iotdb.cluster.entity.raft.MetadataRaftHolder;
 import org.apache.iotdb.cluster.entity.raft.RaftNode;
+import org.apache.iotdb.db.auth.AuthException;
 import org.apache.iotdb.db.service.IoTDB;
 import org.apache.iotdb.tsfile.utils.Pair;
 
@@ -40,13 +41,13 @@ public class Server {
   private MetadataHolder metadataHolder;
   private Map<Integer, DataPartitionHolder> dataPartitionHolderMap;
 
-  public void start() {
+  public void start() throws AuthException {
     // Stand-alone version of IoTDB, be careful to replace the internal JDBC 
Server with a cluster version
     IoTDB iotdb = new IoTDB();
     iotdb.active();
 
     List<RaftNode> nodeList = 
Utils.convertNodesToRaftNodeList(ClusterConf.getNodes());
-    metadataHolder = new MetadataRaftHolder(nodeList, null);
+    metadataHolder = new MetadataRaftHolder(nodeList);
     metadataHolder.init();
     metadataHolder.start();
 
@@ -55,7 +56,7 @@ public class Server {
     List<Pair<Integer, List<RaftNode>>> groupNodeList = 
getDataPartitonNodeList(index, nodeList);
     for(int i = 0; i < groupNodeList.size(); i++) {
       Pair<Integer, List<RaftNode>> pair = groupNodeList.get(i);
-      DataPartitionHolder dataPartitionHolder = new 
DataPartitionRaftHolder(pair.left, pair.right, null);
+      DataPartitionHolder dataPartitionHolder = new 
DataPartitionRaftHolder(pair.left, pair.right);
       dataPartitionHolder.init();
       dataPartitionHolder.start();
       dataPartitionHolderMap.put(pair.left, dataPartitionHolder);
diff --git 
a/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/DataPartitionRaftHolder.java
 
b/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/DataPartitionRaftHolder.java
index 8a0680f..a6e9ab9 100644
--- 
a/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/DataPartitionRaftHolder.java
+++ 
b/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/DataPartitionRaftHolder.java
@@ -27,9 +27,9 @@ public class DataPartitionRaftHolder extends 
DataPartitionHolder {
   private int groupId;
   private DataStateMachine fsm;
 
-  public DataPartitionRaftHolder(int groupId, List<RaftNode> nodeList, 
LogStorage logStorage) {
+  public DataPartitionRaftHolder(int groupId, List<RaftNode> nodeList) {
     this.groupId = groupId;
     fsm = new DataStateMachine();
-    service = new RaftService(nodeList, logStorage);
+    service = new RaftService(nodeList);
   }
 }
diff --git 
a/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/MetadataRaftHolder.java
 
b/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/MetadataRaftHolder.java
index 93bb7ce..960fa2b 100644
--- 
a/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/MetadataRaftHolder.java
+++ 
b/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/MetadataRaftHolder.java
@@ -21,13 +21,14 @@ package org.apache.iotdb.cluster.entity.raft;
 import com.alipay.sofa.jraft.storage.LogStorage;
 import java.util.List;
 import org.apache.iotdb.cluster.entity.metadata.MetadataHolder;
+import org.apache.iotdb.db.auth.AuthException;
 
 public class MetadataRaftHolder extends MetadataHolder {
 
   private MetadataStateManchine fsm;
 
-  public MetadataRaftHolder(List<RaftNode> nodeList, LogStorage logStorage) {
+  public MetadataRaftHolder(List<RaftNode> nodeList) throws AuthException {
     fsm = new MetadataStateManchine();
-    service = new RaftService(nodeList, logStorage);
+    service = new RaftService(nodeList);
   }
 }
diff --git 
a/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/MetadataStateManchine.java
 
b/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/MetadataStateManchine.java
index d1b13c0..42df035 100644
--- 
a/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/MetadataStateManchine.java
+++ 
b/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/MetadataStateManchine.java
@@ -21,21 +21,29 @@ package org.apache.iotdb.cluster.entity.raft;
 import com.alipay.sofa.jraft.Iterator;
 import com.alipay.sofa.jraft.core.StateMachineAdapter;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
+import org.apache.iotdb.db.auth.AuthException;
+import org.apache.iotdb.db.auth.authorizer.IAuthorizer;
+import org.apache.iotdb.db.auth.authorizer.LocalFileAuthorizer;
 
 public class MetadataStateManchine extends StateMachineAdapter {
 
-  // All Storage Groups in Cluster
+  /** All Storage Groups in Cluster **/
   private List<String> storageGroupList;
 
-  // Map<username, password>
-  Map<String, String> userProfileMap;
+  /** manager of user profile **/
+  private IAuthorizer authorizer = LocalFileAuthorizer.getInstance();
 
-  public MetadataStateManchine() {
+  public MetadataStateManchine() throws AuthException {
     storageGroupList = new ArrayList<>();
-    userProfileMap = new HashMap<>();
+    updateStorageGroupList();
+  }
+
+  /**
+   * update @code{storageGroupList} from IoTDB instance
+   */
+  private void updateStorageGroupList() {
+
   }
 
   // Update StrageGroup List and userProfileMap based on Task read from raft 
log
@@ -48,12 +56,8 @@ public class MetadataStateManchine extends 
StateMachineAdapter {
     return storageGroupList.contains(sg);
   }
 
-  public boolean isUerProfileLegal(String username, String password) {
-    if (userProfileMap.containsKey(username)) {
-      return password.equals(userProfileMap.get(username));
-    } else {
-      return false;
-    }
+  public boolean isUerProfileLegal(String username, String password) throws 
AuthException {
+    return authorizer.login(username, password);
   }
 
   public void addStorageGroup(String sg) {
@@ -64,17 +68,20 @@ public class MetadataStateManchine extends 
StateMachineAdapter {
     storageGroupList.remove(sg);
   }
 
-  public void addUser(String username, String password) {
-    userProfileMap.put(username, password);
+  public void addUser(String username, String password) throws AuthException {
+    authorizer.createUser(username, password);
   }
 
-  public void deleteUSer(String username, String password) {
-    userProfileMap.remove(username, password);
+  public void deleteUSer(String username, String password) throws 
AuthException {
+    if (isUerProfileLegal(username, password)) {
+      authorizer.deleteUser(username);
+    }
   }
 
-  public void updateUser(String username, String oldPassword, String 
newPassword) {
+  public void updateUser(String username, String oldPassword, String 
newPassword)
+      throws AuthException {
     if (isUerProfileLegal(username, oldPassword)) {
-      userProfileMap.put(username, newPassword);
+      authorizer.updateUserPassword(username, newPassword);
     }
   }
 }
diff --git 
a/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/RaftService.java 
b/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/RaftService.java
index ee75b1a..631c805 100644
--- 
a/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/RaftService.java
+++ 
b/cluster/src/main/java/org/apache/iotdb/cluster/entity/raft/RaftService.java
@@ -25,13 +25,10 @@ import org.apache.iotdb.cluster.entity.service.IService;
 public class RaftService implements IService {
 
   private List<RaftNode> nodeList;
-  private LogStorage logStorage;
-  private State state;
   private RaftNode leader;
 
-  public RaftService(List<RaftNode> nodeList, LogStorage logStorage) {
+  public RaftService(List<RaftNode> nodeList) {
     this.nodeList = nodeList;
-    this.logStorage = logStorage;
   }
 
   @Override

Reply via email to