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