This is an automated email from the ASF dual-hosted git repository.
jin pushed a commit to branch pd-store
in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph.git
The following commit(s) were added to refs/heads/pd-store by this push:
new 67aba571c fix(pd-store): intro `Useless` annotation & refactor and
mark the failed tests in `hg-pd-test` (#2480)
67aba571c is described below
commit 67aba571ccc0ca575eabe6292d604be40b720edf
Author: V_Galaxy <[email protected]>
AuthorDate: Tue Mar 19 15:58:56 2024 +0800
fix(pd-store): intro `Useless` annotation & refactor and mark the failed
tests in `hg-pd-test` (#2480)
* add value for Useless annotation
---------
Co-authored-by: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
---
.github/workflows/pd-store.yml | 25 +-
.../apache/hugegraph/pd/client/Discoverable.java | 2 +
.../hugegraph/pd/client/DiscoveryClient.java | 2 +
.../hugegraph/pd/client/DiscoveryClientImpl.java | 2 +
.../apache/hugegraph/pd/client/LicenseClient.java | 2 +
.../org/apache/hugegraph/pd/common/Useless.java} | 35 +-
.../org/apache/hugegraph/pd/ConfigService.java | 7 +-
.../org/apache/hugegraph/pd/raft/RaftEngine.java | 3 +
hugegraph-pd/hg-pd-test/pom.xml | 4 +-
.../apache/hugegraph/pd/PartitionCacheTest.java | 2 +
.../apache/hugegraph/pd/PartitionServiceTest.java | 45 --
.../apache/hugegraph/pd/StoreNodeServiceTest.java | 485 ---------------------
.../java/org/apache/hugegraph/pd/UnitTestBase.java | 3 +
.../apache/hugegraph/pd/client/PDClientTest.java | 3 +
.../pd/{ => client}/StoreRegisterTest.java | 6 +-
.../org/apache/hugegraph/pd/clitools/MainTest.java | 4 +-
.../hugegraph/pd/common/CommonSuiteTest.java | 5 -
.../hugegraph/pd/common/MetadataKeyHelperTest.java | 217 ---------
.../org/apache/hugegraph/pd/core/BaseCoreTest.java | 3 +-
.../pd/{service => core}/ConfigServiceTest.java | 3 +-
.../pd/{service => core}/IdServiceTest.java | 3 +-
.../pd/{service => core}/KvServiceTest.java | 3 +-
.../pd/{service => core}/LogServiceTest.java | 3 +-
.../pd/{ => core}/MonitorServiceTest.java | 18 +-
.../apache/hugegraph/pd/core/PDCoreSuiteTest.java | 14 +-
.../PdTestBase.java => core/PDCoreTestBase.java} | 4 +-
.../pd/{service => core}/PartitionServiceTest.java | 24 +-
.../StoreMonitorDataServiceTest.java | 4 +-
.../{service => core}/StoreNodeServiceNewTest.java | 4 +-
.../hugegraph/pd/core/StoreNodeServiceTest.java | 374 +++++++++++++++-
.../pd/{service => core}/StoreServiceTest.java | 6 +-
.../{service => core}/TaskScheduleServiceTest.java | 4 +-
.../pd/core/meta/MetadataKeyHelperTest.java | 192 ++++++++
.../pd/{ => core}/store/HgKVStoreImplTest.java | 13 +-
.../org/apache/hugegraph/pd/grpc/BaseGrpcTest.java | 3 +-
.../apache/hugegraph/pd/grpc/GrpcSuiteTest.java | 3 +-
.../pd/{service => rest}/BaseServerTest.java | 2 +-
.../PDRestSuiteTest.java} | 6 +-
.../pd/{service => rest}/RestApiTest.java | 2 +-
.../hugegraph/pd/service/ServerSuiteTest.java | 42 --
hugegraph-pd/pom.xml | 4 +-
41 files changed, 709 insertions(+), 877 deletions(-)
diff --git a/.github/workflows/pd-store.yml b/.github/workflows/pd-store.yml
index 2a8469666..b3abff59d 100644
--- a/.github/workflows/pd-store.yml
+++ b/.github/workflows/pd-store.yml
@@ -45,29 +45,30 @@ jobs:
run: |
mvn clean package -U -Dmaven.javadoc.skip=true
-Dmaven.test.skip=true -ntp
- - name: Prepare env and service
+ - name: Run common test
run: |
- $TRAVIS_DIR/start-pd.sh
+ mvn test -pl hugegraph-pd/hg-pd-test -am -P pd-common-test
- - name: Run client test
+ - name: Run core test
run: |
- mvn test -pl hugegraph-pd/hg-pd-test -am -P pd-client-test
-Dmaven.test.failure.ignore=true
+ mvn test -pl hugegraph-pd/hg-pd-test -am -P pd-core-test
- - name: Run core test
+ # The above tests do not require starting a PD instance.
+ - name: Prepare env and service
run: |
- mvn test -pl hugegraph-pd/hg-pd-test -am -P pd-core-test
-Dmaven.test.failure.ignore=true
+ $TRAVIS_DIR/start-pd.sh
- - name: Run cli-tools test
+ - name: Run client test
run: |
- mvn test -pl hugegraph-pd/hg-pd-test -am -P pd-cli-tools-test
-Dmaven.test.failure.ignore=true
+ mvn test -pl hugegraph-pd/hg-pd-test -am -P pd-client-test
- - name: Run common test
+ - name: Run cli-tools test
run: |
- mvn test -pl hugegraph-pd/hg-pd-test -am -P pd-common-test
-Dmaven.test.failure.ignore=true
+ mvn test -pl hugegraph-pd/hg-pd-test -am -P pd-cli-tools-test
- - name: Run service test
+ - name: Run rest test
run: |
- mvn test -pl hugegraph-pd/hg-pd-test -am -P pd-service-test
-Dmaven.test.failure.ignore=true
+ mvn test -pl hugegraph-pd/hg-pd-test -am -P pd-rest-test
- name: Upload coverage to Codecov
uses: codecov/[email protected]
diff --git
a/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/Discoverable.java
b/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/Discoverable.java
index abdcac414..713657bd5 100644
---
a/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/Discoverable.java
+++
b/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/Discoverable.java
@@ -17,9 +17,11 @@
package org.apache.hugegraph.pd.client;
+import org.apache.hugegraph.pd.common.Useless;
import org.apache.hugegraph.pd.grpc.discovery.NodeInfos;
import org.apache.hugegraph.pd.grpc.discovery.Query;
+@Useless
public interface Discoverable {
NodeInfos getNodeInfos(Query query);
diff --git
a/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/DiscoveryClient.java
b/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/DiscoveryClient.java
index 890e9e586..fe1546ae6 100644
---
a/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/DiscoveryClient.java
+++
b/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/DiscoveryClient.java
@@ -28,6 +28,7 @@ import java.util.function.Consumer;
import java.util.function.Function;
import org.apache.hugegraph.pd.common.PDException;
+import org.apache.hugegraph.pd.common.Useless;
import org.apache.hugegraph.pd.grpc.discovery.DiscoveryServiceGrpc;
import org.apache.hugegraph.pd.grpc.discovery.NodeInfo;
import org.apache.hugegraph.pd.grpc.discovery.NodeInfos;
@@ -38,6 +39,7 @@ import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
import lombok.extern.slf4j.Slf4j;
+@Useless
@Slf4j
public abstract class DiscoveryClient implements Closeable, Discoverable {
diff --git
a/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/DiscoveryClientImpl.java
b/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/DiscoveryClientImpl.java
index 1208370d3..b6b3e9820 100644
---
a/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/DiscoveryClientImpl.java
+++
b/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/DiscoveryClientImpl.java
@@ -20,9 +20,11 @@ package org.apache.hugegraph.pd.client;
import java.util.Map;
import java.util.function.Consumer;
+import org.apache.hugegraph.pd.common.Useless;
import org.apache.hugegraph.pd.grpc.discovery.NodeInfo;
import org.apache.hugegraph.pd.grpc.discovery.RegisterType;
+@Useless
public class DiscoveryClientImpl extends DiscoveryClient {
private final String id;
diff --git
a/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/LicenseClient.java
b/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/LicenseClient.java
index a96185e5a..d9a2ef5fe 100644
---
a/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/LicenseClient.java
+++
b/hugegraph-pd/hg-pd-client/src/main/java/org/apache/hugegraph/pd/client/LicenseClient.java
@@ -18,6 +18,7 @@
package org.apache.hugegraph.pd.client;
import org.apache.hugegraph.pd.common.KVPair;
+import org.apache.hugegraph.pd.common.Useless;
import org.apache.hugegraph.pd.grpc.PDGrpc;
import org.apache.hugegraph.pd.grpc.Pdpb;
@@ -27,6 +28,7 @@ import io.grpc.stub.AbstractBlockingStub;
import io.grpc.stub.AbstractStub;
import lombok.extern.slf4j.Slf4j;
+@Useless
@Slf4j
public class LicenseClient extends AbstractClient {
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/common/CommonSuiteTest.java
b/hugegraph-pd/hg-pd-common/src/main/java/org/apache/hugegraph/pd/common/Useless.java
similarity index 60%
copy from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/common/CommonSuiteTest.java
copy to
hugegraph-pd/hg-pd-common/src/main/java/org/apache/hugegraph/pd/common/Useless.java
index 6f676c606..ec000f750 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/common/CommonSuiteTest.java
+++
b/hugegraph-pd/hg-pd-common/src/main/java/org/apache/hugegraph/pd/common/Useless.java
@@ -17,27 +17,18 @@
package org.apache.hugegraph.pd.common;
-import org.apache.hugegraph.pd.service.IdServiceTest;
-import org.apache.hugegraph.pd.service.KvServiceTest;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-import lombok.extern.slf4j.Slf4j;
-
-
-@RunWith(Suite.class)
[email protected]({
- PartitionUtilsTest.class,
- PartitionCacheTest.class,
- MetadataKeyHelperTest.class,
- KvServiceTest.class,
- HgAssertTest.class,
- KVPairTest.class,
- IdServiceTest.class
-})
-
-@Slf4j
-public class CommonSuiteTest {
-
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * The "Useless" annotation indicates that the annotated object can be safely
removed without
+ * affecting existing functionality, including objects that are only
referenced in tests.
+ */
+@Target({ElementType.FIELD, ElementType.METHOD, ElementType.CONSTRUCTOR,
ElementType.TYPE})
+@Retention(RetentionPolicy.SOURCE)
+public @interface Useless {
+ String value() default "Remove or handle it later";
}
diff --git
a/hugegraph-pd/hg-pd-core/src/main/java/org/apache/hugegraph/pd/ConfigService.java
b/hugegraph-pd/hg-pd-core/src/main/java/org/apache/hugegraph/pd/ConfigService.java
index 2557745c8..4a05b57ee 100644
---
a/hugegraph-pd/hg-pd-core/src/main/java/org/apache/hugegraph/pd/ConfigService.java
+++
b/hugegraph-pd/hg-pd-core/src/main/java/org/apache/hugegraph/pd/ConfigService.java
@@ -18,6 +18,7 @@
package org.apache.hugegraph.pd;
import java.util.List;
+import java.util.Objects;
import org.apache.hugegraph.pd.common.PDException;
import org.apache.hugegraph.pd.config.PDConfig;
@@ -128,7 +129,11 @@ public class ConfigService implements RaftStateListener {
* @throws PDException when io error
*/
public int getPartitionCount() throws PDException {
- return getPDConfig().getPartitionCount();
+ Metapb.PDConfig config = getPDConfig();
+ if (Objects.nonNull(config)) {
+ return config.getPartitionCount();
+ }
+ return pdConfig.getInitialPartitionCount();
}
@Override
diff --git
a/hugegraph-pd/hg-pd-core/src/main/java/org/apache/hugegraph/pd/raft/RaftEngine.java
b/hugegraph-pd/hg-pd-core/src/main/java/org/apache/hugegraph/pd/raft/RaftEngine.java
index f3089ed07..6882585a0 100644
---
a/hugegraph-pd/hg-pd-core/src/main/java/org/apache/hugegraph/pd/raft/RaftEngine.java
+++
b/hugegraph-pd/hg-pd-core/src/main/java/org/apache/hugegraph/pd/raft/RaftEngine.java
@@ -159,6 +159,9 @@ public class RaftEngine {
}
public boolean isLeader() {
+ if (Objects.isNull(this.raftNode)) {
+ return false;
+ }
return this.raftNode.isLeader(true);
}
diff --git a/hugegraph-pd/hg-pd-test/pom.xml b/hugegraph-pd/hg-pd-test/pom.xml
index 19e1855d8..b41c5a2a2 100644
--- a/hugegraph-pd/hg-pd-test/pom.xml
+++ b/hugegraph-pd/hg-pd-test/pom.xml
@@ -292,14 +292,14 @@
</configuration>
</execution>
<execution>
- <id>pd-service-test</id>
+ <id>pd-rest-test</id>
<configuration>
<testSourceDirectory>${basedir}/src/main/java/
</testSourceDirectory>
<testClassesDirectory>${basedir}/target/classes/
</testClassesDirectory>
<includes>
- <include>**/ServerSuiteTest.java</include>
+ <include>**/PDRestSuiteTest.java</include>
</includes>
</configuration>
</execution>
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/PartitionCacheTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/PartitionCacheTest.java
index 71efa70ec..f01ba966d 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/PartitionCacheTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/PartitionCacheTest.java
@@ -24,12 +24,14 @@ import java.util.Map;
import org.apache.hugegraph.pd.common.KVPair;
import org.apache.hugegraph.pd.common.PartitionCache;
+import org.apache.hugegraph.pd.common.Useless;
import org.apache.hugegraph.pd.grpc.Metapb;
import com.google.common.collect.Range;
import com.google.common.collect.RangeMap;
import com.google.common.collect.TreeRangeMap;
+@Useless("can be merged to org.apache.hugegraph.pd.common.PartitionCacheTest")
public class PartitionCacheTest {
// @Test
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/PartitionServiceTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/PartitionServiceTest.java
deleted file mode 100644
index 82fd4c9bd..000000000
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/PartitionServiceTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hugegraph.pd;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.apache.hugegraph.pd.grpc.Metapb;
-import org.junit.Test;
-
-public class PartitionServiceTest {
- @Test
- public void testPartitionHeartbeat() {
- List<Metapb.Shard> shardList = new ArrayList<>();
- shardList.add(Metapb.Shard.newBuilder().setStoreId(1).build());
- shardList.add(Metapb.Shard.newBuilder().setStoreId(2).build());
- shardList.add(Metapb.Shard.newBuilder().setStoreId(3).build());
- shardList = new ArrayList<>(shardList);
- Metapb.PartitionStats stats = Metapb.PartitionStats.newBuilder()
-
.addAllShard(shardList).build();
- List<Metapb.Shard> shardList2 = new ArrayList<>(stats.getShardList());
- Collections.shuffle(shardList2);
- shardList2.forEach(shard -> {
- System.out.println(shard.getStoreId());
- });
-
-
- }
-}
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/StoreNodeServiceTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/StoreNodeServiceTest.java
deleted file mode 100644
index c8f0ce39e..000000000
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/StoreNodeServiceTest.java
+++ /dev/null
@@ -1,485 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hugegraph.pd;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.atomic.AtomicReference;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.hugegraph.pd.common.PDException;
-import org.apache.hugegraph.pd.config.PDConfig;
-import org.apache.hugegraph.pd.grpc.Metapb;
-import org.apache.hugegraph.pd.grpc.pulse.ChangeShard;
-import org.apache.hugegraph.pd.grpc.pulse.CleanPartition;
-import org.apache.hugegraph.pd.grpc.pulse.DbCompaction;
-import org.apache.hugegraph.pd.grpc.pulse.MovePartition;
-import org.apache.hugegraph.pd.grpc.pulse.PartitionKeyRange;
-import org.apache.hugegraph.pd.grpc.pulse.SplitPartition;
-import org.apache.hugegraph.pd.grpc.pulse.TransferLeader;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-
-public class StoreNodeServiceTest {
- static PDConfig pdConfig;
-
- @BeforeClass
- public static void init() throws Exception {
- String path = "tmp/unitTest";
- deleteDirectory(new File(path));
- pdConfig = new PDConfig() {{
- this.setClusterId(100);
- this.setInitialStoreList(
-
"127.0.0.1:8500,127.0.0.1:8501,127.0.0.1:8502,127.0.0.1:8503,127.0.0.1:8504," +
- "127.0.0.1:8505");
- }};
-
- pdConfig.setStore(new PDConfig().new Store() {{
- this.setMaxDownTime(3600);
- this.setKeepAliveTimeout(3600);
- }});
-
- pdConfig.setPartition(new PDConfig().new Partition() {{
- this.setShardCount(3);
- this.setMaxShardsPerStore(3);
- }});
- pdConfig.setRaft(new PDConfig().new Raft() {{
- this.setEnable(false);
- }});
- pdConfig.setDiscovery(new PDConfig().new Discovery());
- pdConfig.setDataPath(path);
- ConfigService configService = new ConfigService(pdConfig);
- pdConfig = configService.loadConfig();
- }
-
- public static byte[] intToByteArray(int i) {
- byte[] result = new byte[4];
- result[0] = (byte) ((i >> 24) & 0xFF);
- result[1] = (byte) ((i >> 16) & 0xFF);
- result[2] = (byte) ((i >> 8) & 0xFF);
- result[3] = (byte) (i & 0xFF);
- return result;
- }
-
- public static void deleteDirectory(File dir) {
- try {
- FileUtils.deleteDirectory(dir);
- } catch (IOException e) {
- System.out.printf("Failed to start ....,%s%n", e.getMessage());
- }
- }
-
- // @Test
- public void testStoreNodeService() throws PDException {
- Assert.assertEquals(pdConfig.getPartition().getTotalCount(),
- (long) pdConfig.getInitialStoreMap().size() *
- pdConfig.getPartition().getMaxShardsPerStore()
- / pdConfig.getPartition().getShardCount());
- StoreNodeService storeService = new StoreNodeService(pdConfig);
- int count = 6;
- Metapb.Store[] stores = new Metapb.Store[count];
- for (int i = 0; i < count; i++) {
- Metapb.Store store = Metapb.Store.newBuilder()
- .setId(0)
- .setAddress("127.0.0.1:850" + i)
- .setDeployPath("/data")
-
.addLabels(Metapb.StoreLabel.newBuilder()
-
.setKey("namespace")
-
.setValue("default")
-
.build())
- .build();
- stores[i] = storeService.register(store);
- System.out.println("新注册store, id = " + stores[i].getId());
- }
- Assert.assertEquals(count, storeService.getStores("").size());
-
- for (Metapb.Store store : stores) {
- Metapb.StoreStats stats = Metapb.StoreStats.newBuilder()
-
.setStoreId(store.getId())
- .build();
- storeService.heartBeat(stats);
- }
-
- Assert.assertEquals(6, storeService.getActiveStores("").size());
-
- Metapb.Graph graph = Metapb.Graph.newBuilder()
- .setGraphName("defaultGH")
- .setPartitionCount(10)
- .build();
- // 分配shard
- List<Metapb.Shard> shards = storeService.allocShards(graph, 1);
-
-
- Assert.assertEquals(3, shards.size());
-
- Assert.assertEquals(pdConfig.getPartition().getTotalCount(),
- storeService.getShardGroups().size()); //
设置leader
- Metapb.Shard leader = Metapb.Shard.newBuilder(shards.get(0))
-
.setRole(Metapb.ShardRole.Leader).build();
- shards = new ArrayList<>(shards);
- shards.set(0, leader);
- // 增加shard
- pdConfig.getPartition().setShardCount(5);
-
- Metapb.ShardGroup shardGroup = Metapb.ShardGroup.newBuilder()
- .setId(1)
-
.addAllShards(shards).build();
- shards = storeService.reallocShards(shardGroup);
-
- Assert.assertEquals(5, shards.size());
- // 减少shard
- pdConfig.getPartition().setShardCount(3);
- shards = storeService.reallocShards(shardGroup);
- Assert.assertEquals(3, shards.size());
- // 包含leader,leader不能被删除
- Assert.assertTrue(shards.contains(leader));
-
- // 减少shard
- pdConfig.getPartition().setShardCount(1);
- graph = Metapb.Graph.newBuilder(graph).build();
- shards = storeService.reallocShards(shardGroup);
- Assert.assertEquals(1, shards.size());
- // 包含leader,leader不能被删除
- Assert.assertTrue(shards.contains(leader));
-
- for (Metapb.Store store : stores) {
- storeService.removeStore(store.getId());
- }
- Assert.assertEquals(0, storeService.getStores("").size());
-
-
- }
-
- // @Test
- public void testSplitPartition() throws PDException {
- StoreNodeService storeService = new StoreNodeService(pdConfig);
- PartitionService partitionService = new PartitionService(pdConfig,
storeService);
-
- storeService.init(partitionService);
- partitionService.addInstructionListener(new
PartitionInstructionListener() {
-
- @Override
- public void changeShard(Metapb.Partition partition, ChangeShard
changeShard) throws
-
PDException {
-
- }
-
- @Override
- public void transferLeader(Metapb.Partition partition,
- TransferLeader transferLeader) throws
PDException {
-
- }
-
- @Override
- public void splitPartition(Metapb.Partition partition,
- SplitPartition splitPartition) throws
PDException {
- splitPartition.getNewPartitionList().forEach(p -> {
- System.out.println("SplitPartition " + p.getId() + " " +
p.getStartKey() + "," +
- p.getEndKey());
- });
- }
-
- @Override
- public void dbCompaction(Metapb.Partition partition, DbCompaction
dbCompaction) throws
-
PDException {
-
- }
-
- @Override
- public void movePartition(Metapb.Partition partition,
- MovePartition movePartition) throws
PDException {
-
- }
-
- @Override
- public void cleanPartition(Metapb.Partition partition,
- CleanPartition cleanPartition) throws
PDException {
-
- }
-
- @Override
- public void changePartitionKeyRange(Metapb.Partition partition,
- PartitionKeyRange
partitionKeyRange) throws
-
PDException {
-
- }
- });
- int count = 6;
- Metapb.Store[] stores = new Metapb.Store[count];
- for (int i = 0; i < count; i++) {
- Metapb.Store store = Metapb.Store.newBuilder()
- .setId(0)
- .setAddress("127.0.0.1:850" + i)
- .setDeployPath("/data")
-
.addLabels(Metapb.StoreLabel.newBuilder()
-
.setKey("namespace")
-
.setValue("default")
-
.build())
- .build();
- stores[i] = storeService.register(store);
- System.out.println("新注册store, id = " +
Long.toHexString(stores[i].getId()));
- }
- Assert.assertEquals(count, storeService.getStores().size());
-
- Metapb.Graph graph = Metapb.Graph.newBuilder()
- .setGraphName("defaultGH")
- .build();
- Metapb.PartitionShard ptShard =
- partitionService.getPartitionByCode(graph.getGraphName(), 0);
- System.out.println(ptShard.getPartition().getId());
- {
- Metapb.Partition pt = ptShard.getPartition();
- System.out.println(pt.getId() + " " + pt.getStartKey() + "," +
pt.getEndKey());
- }
-
- Assert.assertEquals(6, storeService.getShardGroups().size());
- // storeService.splitShardGroups(ptShard.getPartition().getId(), 4);
- Assert.assertEquals(9, storeService.getShardGroups().size());
- storeService.getShardGroups().forEach(shardGroup -> {
- System.out.println("shardGroup id = " + shardGroup.getId());
- });
- }
-
- // @Test
- public void testPartitionService() throws PDException, ExecutionException,
- InterruptedException {
- StoreNodeService storeService = new StoreNodeService(pdConfig);
- int count = 6;
- Metapb.Store[] stores = new Metapb.Store[count];
- for (int i = 0; i < count; i++) {
- Metapb.Store store = Metapb.Store.newBuilder()
- .setId(0)
- .setAddress(String.valueOf(i))
- .setDeployPath("/data")
-
.addLabels(Metapb.StoreLabel.newBuilder()
-
.setKey("namespace")
-
.setValue("default")
-
.build())
- .build();
- stores[i] = storeService.register(store);
- System.out.println("新注册store, id = " +
Long.toHexString(stores[i].getId()));
- }
- Assert.assertEquals(count, storeService.getStores("").size());
-
-
- PartitionService partitionService = new PartitionService(pdConfig,
storeService);
-
- Metapb.Graph graph = Metapb.Graph.newBuilder()
- .setGraphName("defaultGH")
-
- .setPartitionCount(10)
- .build();
- // 申请分区
- Metapb.PartitionShard[] partitions = new Metapb.PartitionShard[10];
- for (int i = 0; i < partitions.length; i++) {
- partitions[i] =
- partitionService.getPartitionShard(graph.getGraphName(),
intToByteArray(i));
- Assert.assertEquals(3,
storeService.getShardGroup(i).getShardsCount());
- }
- System.out.println(
- "分区数量: " +
partitionService.getPartitions(graph.getGraphName()).size());
-
- int[] caseNo = {0}; //1 测试增加shard, 2 //测试store下线
-
- Metapb.Shard leader = null;
- int[] finalCaseNo = caseNo;
-
- partitionService.addInstructionListener(new
PartitionInstructionListener() {
-
- @Override
- public void changeShard(Metapb.Partition partition, ChangeShard
changeShard) throws
-
PDException {
- switch (finalCaseNo[0]) {
- case 2:
- Assert.assertEquals(5,
storeService.getShardGroup(partition.getId())
- .getShardsCount());
- break;
- case 3:
-
storeService.getShardGroup(partition.getId()).getShardsList()
- .forEach(shard -> {
-
Assert.assertNotEquals(shard.getStoreId(),
-
stores[0].getId());
- });
- break;
- }
-
- }
-
- @Override
- public void transferLeader(Metapb.Partition partition,
TransferLeader transferLeader) {
-
- }
-
- @Override
- public void splitPartition(Metapb.Partition partition,
SplitPartition splitPartition) {
- }
-
- @Override
- public void dbCompaction(Metapb.Partition partition, DbCompaction
dbCompaction) throws
-
PDException {
-
- }
-
- @Override
- public void movePartition(Metapb.Partition partition,
- MovePartition movePartition) throws
PDException {
-
- }
-
- @Override
- public void cleanPartition(Metapb.Partition partition,
- CleanPartition cleanPartition) throws
PDException {
-
- }
-
- @Override
- public void changePartitionKeyRange(Metapb.Partition partition,
- PartitionKeyRange
partitionKeyRange)
- throws PDException {
-
- }
- });
- Metapb.Partition partition = partitions[0].getPartition();
- leader = Metapb.Shard.newBuilder(
-
storeService.getShardGroup(partition.getId()).getShardsList().get(0)).build();
- Metapb.Shard finalLeader = leader;
- partitionService.addStatusListener(new PartitionStatusListener() {
- @Override
- public void onPartitionChanged(Metapb.Partition partition,
- Metapb.Partition newPartition) {
-
- }
-
- @Override
- public void onPartitionRemoved(Metapb.Partition partition) {
-
- }
- });
- // 测试修改图
- caseNo[0] = 1;
- partitionService.updateGraph(graph);
- for (int i = 0; i < partitions.length; i++) {
- partitions[i] =
- partitionService.getPartitionShard(graph.getGraphName(),
intToByteArray(i));
- Assert.assertEquals(3,
storeService.getShardGroup(i).getShardsCount());
- }
-
- graph = Metapb.Graph.newBuilder(graph)
- .setGraphName("defaultGH")
-
- .setPartitionCount(10)
- .build();
- caseNo[0] = 2;
- partitionService.updateGraph(graph);
-
- // 测试store离线
- caseNo[0] = 3;
- partitionService.storeOffline(stores[0]);
-
-
- Metapb.PartitionStats stats = Metapb.PartitionStats.newBuilder()
-
.addGraphName(partition.getGraphName())
-
.setId(partition.getId())
- .setLeader(
-
Metapb.Shard.newBuilder(leader)
-
.setRole(
-
Metapb.ShardRole.Leader))
- .build();
- // 测试leader飘移
- caseNo[0] = 4;
- partitionService.partitionHeartbeat(stats);
- AtomicReference<Metapb.Shard> shard = new AtomicReference<>();
- Metapb.PartitionShard ss =
-
partitionService.getPartitionShardById(partition.getGraphName(),
partition.getId());
- storeService.getShardList(partition.getId()).forEach(s -> {
- if (s.getRole() == Metapb.ShardRole.Leader) {
- Assert.assertNull(shard.get());
- shard.set(s);
- }
- });
-
- Assert.assertEquals(leader.getStoreId(), shard.get().getStoreId());
-
- }
-
- // @Test
- public void testMergeGraphParams() throws PDException {
- StoreNodeService storeService = new StoreNodeService(pdConfig);
- PartitionService partitionService = new PartitionService(pdConfig,
storeService);
-
- Metapb.Graph dfGraph = Metapb.Graph.newBuilder()
-
- .setPartitionCount(
-
pdConfig.getPartition().getTotalCount())
-
- .build();
-
- Metapb.Graph graph1 = Metapb.Graph.newBuilder()
- .setGraphName("test")
- .setPartitionCount(20)
-
- .build();
-
- Metapb.Graph graph2 = Metapb.Graph.newBuilder()
- .setGraphName("test")
- .setPartitionCount(7).build();
- Metapb.Graph graph3 = Metapb.Graph.newBuilder()
- .setGraphName("test")
- .build();
- Metapb.Graph graph4 = Metapb.Graph.newBuilder()
- .setGraphName("test")
- .build();
-
- Metapb.Graph graph =
Metapb.Graph.newBuilder(dfGraph).mergeFrom(graph2).build();
- Assert.assertEquals(graph2.getGraphName(), graph.getGraphName());
-
- Assert.assertEquals(graph2.getPartitionCount(),
graph.getPartitionCount());
-
-
- graph = Metapb.Graph.newBuilder(dfGraph).mergeFrom(graph3).build();
- Assert.assertEquals(graph3.getGraphName(), graph.getGraphName());
-
- Assert.assertEquals(dfGraph.getPartitionCount(),
graph.getPartitionCount());
-
-
- graph = Metapb.Graph.newBuilder(dfGraph).mergeFrom(graph4).build();
- Assert.assertEquals(graph4.getGraphName(), graph.getGraphName());
-
- Assert.assertEquals(dfGraph.getPartitionCount(),
graph.getPartitionCount());
-
- }
-
- // @Test
- public void test() {
- int[] n = new int[3];
-
-
- if (++n[2] > 1) {
- System.out.println(n[2]);
- }
- if (++n[2] > 1) {
- System.out.println(n[2]);
- }
- if (++n[2] > 1) {
- System.out.println(n[2]);
- }
- }
-}
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/UnitTestBase.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/UnitTestBase.java
index 35ada8416..e1ca5adaf 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/UnitTestBase.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/UnitTestBase.java
@@ -19,6 +19,9 @@ package org.apache.hugegraph.pd;
import java.io.File;
+import org.apache.hugegraph.pd.common.Useless;
+
+@Useless
public class UnitTestBase {
public static boolean deleteDir(File dir) {
if (dir.isDirectory()) {
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/client/PDClientTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/client/PDClientTest.java
index 5d068c02f..470e3548f 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/client/PDClientTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/client/PDClientTest.java
@@ -25,6 +25,7 @@ import org.apache.hugegraph.pd.common.PDException;
import org.apache.hugegraph.pd.grpc.MetaTask;
import org.apache.hugegraph.pd.grpc.Metapb;
import org.apache.hugegraph.pd.grpc.Pdpb;
+import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mockito;
@@ -161,6 +162,7 @@ public class PDClientTest extends BaseClientTest {
}
}
+ @Ignore
@Test
public void testUpdatePartitionLeader() {
System.out.println("updatePartitionLeader start");
@@ -398,6 +400,7 @@ public class PDClientTest extends BaseClientTest {
}
}
+ @Ignore
@Test
public void testDelPartition() {
try {
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/StoreRegisterTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/client/StoreRegisterTest.java
similarity index 95%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/StoreRegisterTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/client/StoreRegisterTest.java
index 48877273f..5826b3858 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/StoreRegisterTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/client/StoreRegisterTest.java
@@ -15,15 +15,11 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd;
+package org.apache.hugegraph.pd.client;
import java.nio.charset.StandardCharsets;
import java.util.List;
-import org.apache.hugegraph.pd.client.PDClient;
-import org.apache.hugegraph.pd.client.PDConfig;
-import org.apache.hugegraph.pd.client.PDPulse;
-import org.apache.hugegraph.pd.client.PDPulseImpl;
import org.apache.hugegraph.pd.common.KVPair;
import org.apache.hugegraph.pd.common.PDException;
import org.apache.hugegraph.pd.grpc.Metapb;
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/clitools/MainTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/clitools/MainTest.java
index 526558ac9..8b2f5f831 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/clitools/MainTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/clitools/MainTest.java
@@ -20,8 +20,8 @@ package org.apache.hugegraph.pd.clitools;
import java.util.Arrays;
import java.util.List;
-import org.apache.hugegraph.pd.clitools.Main;
import org.apache.hugegraph.pd.common.PDException;
+import org.junit.Ignore;
import org.junit.Test;
import lombok.extern.slf4j.Slf4j;
@@ -48,6 +48,7 @@ public class MainTest extends BaseCliToolsTest {
}
}
+ @Ignore
@Test
public void getConfig() throws PDException {
Main.main(new String[]{"127.0.0.1:8686", "config", "enableBatchLoad"});
@@ -63,6 +64,7 @@ public class MainTest extends BaseCliToolsTest {
Main.main(new String[]{"127.0.0.1:8686", "config",
"enableBatchLoad=false"});
}
+ @Ignore
@Test
public void getConfig2() throws PDException {
Main.main(new String[]{"127.0.0.1:8686", "config", "shardCount"});
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/common/CommonSuiteTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/common/CommonSuiteTest.java
index 6f676c606..0395711ca 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/common/CommonSuiteTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/common/CommonSuiteTest.java
@@ -17,8 +17,6 @@
package org.apache.hugegraph.pd.common;
-import org.apache.hugegraph.pd.service.IdServiceTest;
-import org.apache.hugegraph.pd.service.KvServiceTest;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@@ -29,11 +27,8 @@ import lombok.extern.slf4j.Slf4j;
@Suite.SuiteClasses({
PartitionUtilsTest.class,
PartitionCacheTest.class,
- MetadataKeyHelperTest.class,
- KvServiceTest.class,
HgAssertTest.class,
KVPairTest.class,
- IdServiceTest.class
})
@Slf4j
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/common/MetadataKeyHelperTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/common/MetadataKeyHelperTest.java
deleted file mode 100644
index ea239ed93..000000000
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/common/MetadataKeyHelperTest.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hugegraph.pd.common;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.apache.hugegraph.pd.grpc.Metapb;
-import org.apache.hugegraph.pd.meta.MetadataKeyHelper;
-import org.junit.Test;
-
-public class MetadataKeyHelperTest {
-
- @Test
- public void testGetStoreInfoKey() {
- assertThat(MetadataKeyHelper.getStoreInfoKey(0L)).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetActiveStoreKey() {
- assertThat(MetadataKeyHelper.getActiveStoreKey(0L)).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetActiveStorePrefix() {
- assertThat(MetadataKeyHelper.getActiveStorePrefix()).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetStorePrefix() {
- assertThat(MetadataKeyHelper.getStorePrefix()).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetStoreStatusKey() {
- assertThat(MetadataKeyHelper.getStoreStatusKey(0L)).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetShardGroupKey() {
- assertThat(MetadataKeyHelper.getShardGroupKey(0L)).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetShardGroupPrefix() {
- assertThat(MetadataKeyHelper.getShardGroupPrefix()).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetPartitionKey() {
- assertThat(MetadataKeyHelper.getPartitionKey("graphName", 0)).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetPartitionPrefix() {
- assertThat(MetadataKeyHelper.getPartitionPrefix("graphName")).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetShardKey() {
- assertThat(MetadataKeyHelper.getShardKey(0L, 0)).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetShardPrefix() {
- assertThat(MetadataKeyHelper.getShardPrefix(0L)).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetGraphKey() {
- assertThat(MetadataKeyHelper.getGraphKey("graphName")).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetGraphPrefix() {
- assertThat(MetadataKeyHelper.getGraphPrefix()).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetPartitionStatusKey() {
- assertThat(MetadataKeyHelper.getPartitionStatusKey("graphName",
- 0)).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetPartitionStatusPrefixKey() {
- assertThat(MetadataKeyHelper.getPartitionStatusPrefixKey(
- "graphName")).contains(MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetGraphSpaceKey() {
- assertThat(MetadataKeyHelper.getGraphSpaceKey("graphSpace")).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetPdConfigKey() {
- assertThat(MetadataKeyHelper.getPdConfigKey("configKey")).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetQueueItemPrefix() {
- assertThat(MetadataKeyHelper.getQueueItemPrefix()).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetQueueItemKey() {
- assertThat(MetadataKeyHelper.getQueueItemKey("itemId")).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetSpitTaskKey() {
- assertThat(MetadataKeyHelper.getSplitTaskKey("graphName", 0)).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetSpitTaskPrefix() {
- assertThat(MetadataKeyHelper.getSplitTaskPrefix("graph0")).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetLogKey() {
- // Setup
- final Metapb.LogRecord record = Metapb.LogRecord.newBuilder()
- .setAction("value")
- .setTimestamp(0L)
- .build();
-
- // Run the test
- final byte[] result = MetadataKeyHelper.getLogKey(record);
-
- // Verify the results
- assertThat(result).contains(MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetLogKeyPrefix() {
- assertThat(MetadataKeyHelper.getLogKeyPrefix("action", 0L)).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetKVPrefix() {
- assertThat(MetadataKeyHelper.getKVPrefix("prefix", "key")).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetKVTTLPrefix() {
- assertThat(MetadataKeyHelper.getKVTTLPrefix("ttlPrefix", "prefix",
- "key")).contains(
- MetadataKeyHelper.getDelimiter());
- }
-
- @Test
- public void testGetKVWatchKeyPrefix1() {
- assertThat(
- MetadataKeyHelper.getKVWatchKeyPrefix("key", "watchDelimiter",
- 0L)).contains(
- String.valueOf(MetadataKeyHelper.getDelimiter()));
- }
-
- @Test
- public void testGetKVWatchKeyPrefix2() {
- assertThat(MetadataKeyHelper.getKVWatchKeyPrefix("key",
-
"watchDelimiter")).contains(
- String.valueOf(MetadataKeyHelper.getDelimiter()));
- }
-
- @Test
- public void testGetDelimiter() {
- assertThat(MetadataKeyHelper.getDelimiter()).isEqualTo('/');
- }
-
- @Test
- public void testGetStringBuilderHelper() {
- try {
- MetadataKeyHelper.getStringBuilderHelper();
- } catch (Exception e) {
-
- }
- }
-}
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/BaseCoreTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/BaseCoreTest.java
index dddbffb08..c2e7f652a 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/BaseCoreTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/BaseCoreTest.java
@@ -22,11 +22,12 @@ import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.hugegraph.pd.ConfigService;
+import org.apache.hugegraph.pd.common.Useless;
import org.apache.hugegraph.pd.config.PDConfig;
import org.junit.After;
import org.junit.BeforeClass;
-
+@Useless
public class BaseCoreTest {
static org.apache.hugegraph.pd.config.PDConfig pdConfig;
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/ConfigServiceTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/ConfigServiceTest.java
similarity index 97%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/ConfigServiceTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/ConfigServiceTest.java
index faeacd834..c6a7c12c8 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/ConfigServiceTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/ConfigServiceTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.service;
+package org.apache.hugegraph.pd.core;
import java.util.List;
@@ -23,6 +23,7 @@ import org.apache.hugegraph.pd.ConfigService;
import org.apache.hugegraph.pd.IdService;
import org.apache.hugegraph.pd.config.PDConfig;
import org.apache.hugegraph.pd.grpc.Metapb;
+import org.apache.hugegraph.pd.rest.BaseServerTest;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/IdServiceTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/IdServiceTest.java
similarity index 97%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/IdServiceTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/IdServiceTest.java
index dd0d3feb2..dae690d89 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/IdServiceTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/IdServiceTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.service;
+package org.apache.hugegraph.pd.core;
import java.io.File;
@@ -23,6 +23,7 @@ import org.apache.commons.io.FileUtils;
import org.apache.hugegraph.pd.IdService;
import org.apache.hugegraph.pd.config.PDConfig;
import org.apache.hugegraph.pd.meta.IdMetaStore;
+import org.apache.hugegraph.pd.rest.BaseServerTest;
import org.junit.Assert;
import org.junit.Test;
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/KvServiceTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/KvServiceTest.java
similarity index 95%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/KvServiceTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/KvServiceTest.java
index 02870b219..8b8175013 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/KvServiceTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/KvServiceTest.java
@@ -15,10 +15,11 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.service;
+package org.apache.hugegraph.pd.core;
import org.apache.hugegraph.pd.KvService;
import org.apache.hugegraph.pd.config.PDConfig;
+import org.apache.hugegraph.pd.rest.BaseServerTest;
import org.junit.Assert;
import org.junit.Test;
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/LogServiceTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/LogServiceTest.java
similarity index 95%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/LogServiceTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/LogServiceTest.java
index 266db76c5..ad6c7bfbb 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/LogServiceTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/LogServiceTest.java
@@ -15,13 +15,14 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.service;
+package org.apache.hugegraph.pd.core;
import java.util.List;
import org.apache.hugegraph.pd.LogService;
import org.apache.hugegraph.pd.config.PDConfig;
import org.apache.hugegraph.pd.grpc.Metapb;
+import org.apache.hugegraph.pd.rest.BaseServerTest;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/MonitorServiceTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/MonitorServiceTest.java
similarity index 89%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/MonitorServiceTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/MonitorServiceTest.java
index 25272127f..546d288f2 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/MonitorServiceTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/MonitorServiceTest.java
@@ -15,17 +15,20 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd;
+package org.apache.hugegraph.pd.core;
import java.util.concurrent.ExecutionException;
+import org.apache.hugegraph.pd.PartitionService;
+import org.apache.hugegraph.pd.StoreNodeService;
+import org.apache.hugegraph.pd.TaskScheduleService;
import org.apache.hugegraph.pd.common.PDException;
import org.apache.hugegraph.pd.config.PDConfig;
import org.apache.hugegraph.pd.grpc.Metapb;
import org.junit.Assert;
import org.junit.BeforeClass;
-
-// import org.junit.Test;
+import org.junit.Ignore;
+import org.junit.Test;
public class MonitorServiceTest {
static PDConfig pdConfig;
@@ -35,6 +38,8 @@ public class MonitorServiceTest {
pdConfig = new PDConfig() {{
this.setClusterId(100);
this.setPatrolInterval(1);
+
this.setInitialStoreList("127.0.0.1:8500,127.0.0.1:8501,127.0.0.1:8502," +
+
"127.0.0.1:8503,127.0.0.1:8504,127.0.0.1:8505");
}};
//pdConfig.setEtcd(new PDConfig().new Etcd() {{
@@ -51,6 +56,10 @@ public class MonitorServiceTest {
this.setTotalCount(10);
}});
+ pdConfig.setRaft(new PDConfig().new Raft() {{
+ this.setEnable(false);
+ }});
+
clearClusterData();
}
@@ -67,7 +76,8 @@ public class MonitorServiceTest {
//client.close();
}
- // @Test
+ @Ignore
+ @Test
public void testPatrolStores() throws PDException, InterruptedException {
StoreNodeService storeService = new StoreNodeService(pdConfig);
PartitionService partitionService = new PartitionService(pdConfig,
storeService);
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/PDCoreSuiteTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/PDCoreSuiteTest.java
index 3f616e212..71a8d972a 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/PDCoreSuiteTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/PDCoreSuiteTest.java
@@ -18,6 +18,7 @@
package org.apache.hugegraph.pd.core;
import org.apache.hugegraph.pd.core.meta.MetadataKeyHelperTest;
+import org.apache.hugegraph.pd.core.store.HgKVStoreImplTest;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@@ -26,8 +27,19 @@ import lombok.extern.slf4j.Slf4j;
@RunWith(Suite.class)
@Suite.SuiteClasses({
+ MetadataKeyHelperTest.class,
+ HgKVStoreImplTest.class,
+ ConfigServiceTest.class,
+ IdServiceTest.class,
+ KvServiceTest.class,
+ LogServiceTest.class,
+ MonitorServiceTest.class,
+ PartitionServiceTest.class,
+ StoreMonitorDataServiceTest.class,
+ StoreNodeServiceNewTest.class,
StoreNodeServiceTest.class,
- MetadataKeyHelperTest.class
+ StoreServiceTest.class,
+ TaskScheduleServiceTest.class
})
@Slf4j
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/PdTestBase.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/PDCoreTestBase.java
similarity index 99%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/PdTestBase.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/PDCoreTestBase.java
index 50eadb3a6..244fe2e9b 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/PdTestBase.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/PDCoreTestBase.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.service;
+package org.apache.hugegraph.pd.core;
import java.io.File;
@@ -42,7 +42,7 @@ import org.apache.hugegraph.pd.raft.RaftEngine;
import org.junit.AfterClass;
import org.junit.BeforeClass;
-public class PdTestBase {
+public class PDCoreTestBase {
private static final String DATA_PATH = "/tmp/pd_data";
private static PDConfig pdConfig;
private static StoreNodeService storeNodeService;
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/PartitionServiceTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/PartitionServiceTest.java
similarity index 85%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/PartitionServiceTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/PartitionServiceTest.java
index 0a16402d3..47815318a 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/PartitionServiceTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/PartitionServiceTest.java
@@ -15,10 +15,12 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.service;
+package org.apache.hugegraph.pd.core;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import org.apache.hugegraph.pd.PartitionService;
@@ -30,7 +32,7 @@ import org.apache.hugegraph.pd.grpc.pulse.CleanType;
import org.junit.Before;
import org.junit.Test;
-public class PartitionServiceTest extends PdTestBase {
+public class PartitionServiceTest extends PDCoreTestBase {
private PartitionService service;
@@ -130,4 +132,22 @@ public class PartitionServiceTest extends PdTestBase {
}
}
+
+ @Test
+ public void testPartitionHeartbeat() {
+ List<Metapb.Shard> shardList = new ArrayList<>();
+ shardList.add(Metapb.Shard.newBuilder().setStoreId(1).build());
+ shardList.add(Metapb.Shard.newBuilder().setStoreId(2).build());
+ shardList.add(Metapb.Shard.newBuilder().setStoreId(3).build());
+ shardList = new ArrayList<>(shardList);
+ Metapb.PartitionStats stats = Metapb.PartitionStats.newBuilder()
+
.addAllShard(shardList).build();
+ List<Metapb.Shard> shardList2 = new ArrayList<>(stats.getShardList());
+ Collections.shuffle(shardList2);
+ shardList2.forEach(shard -> {
+ System.out.println(shard.getStoreId());
+ });
+
+
+ }
}
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/StoreMonitorDataServiceTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/StoreMonitorDataServiceTest.java
similarity index 96%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/StoreMonitorDataServiceTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/StoreMonitorDataServiceTest.java
index 21a2a37dd..8b17a38eb 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/StoreMonitorDataServiceTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/StoreMonitorDataServiceTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.service;
+package org.apache.hugegraph.pd.core;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
@@ -29,7 +29,7 @@ import org.apache.hugegraph.pd.grpc.Metapb;
import org.junit.Before;
import org.junit.Test;
-public class StoreMonitorDataServiceTest extends PdTestBase {
+public class StoreMonitorDataServiceTest extends PDCoreTestBase {
StoreMonitorDataService service;
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/StoreNodeServiceNewTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/StoreNodeServiceNewTest.java
similarity index 95%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/StoreNodeServiceNewTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/StoreNodeServiceNewTest.java
index 10d098d1f..199a02e65 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/StoreNodeServiceNewTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/StoreNodeServiceNewTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.service;
+package org.apache.hugegraph.pd.core;
import static org.junit.Assert.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -26,7 +26,7 @@ import org.apache.hugegraph.pd.grpc.Metapb;
import org.junit.Before;
import org.junit.Test;
-public class StoreNodeServiceNewTest extends PdTestBase {
+public class StoreNodeServiceNewTest extends PDCoreTestBase {
private StoreNodeService service;
@Before
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/StoreNodeServiceTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/StoreNodeServiceTest.java
index c8c7bcf15..8180ab862 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/StoreNodeServiceTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/StoreNodeServiceTest.java
@@ -17,30 +17,94 @@
package org.apache.hugegraph.pd.core;
+import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.atomic.AtomicReference;
+import org.apache.commons.io.FileUtils;
+import org.apache.hugegraph.pd.ConfigService;
+import org.apache.hugegraph.pd.PartitionInstructionListener;
import org.apache.hugegraph.pd.PartitionService;
+import org.apache.hugegraph.pd.PartitionStatusListener;
import org.apache.hugegraph.pd.StoreNodeService;
import org.apache.hugegraph.pd.common.PDException;
+import org.apache.hugegraph.pd.config.PDConfig;
import org.apache.hugegraph.pd.grpc.Metapb;
+import org.apache.hugegraph.pd.grpc.pulse.ChangeShard;
+import org.apache.hugegraph.pd.grpc.pulse.CleanPartition;
+import org.apache.hugegraph.pd.grpc.pulse.DbCompaction;
+import org.apache.hugegraph.pd.grpc.pulse.MovePartition;
+import org.apache.hugegraph.pd.grpc.pulse.PartitionKeyRange;
+import org.apache.hugegraph.pd.grpc.pulse.SplitPartition;
+import org.apache.hugegraph.pd.grpc.pulse.TransferLeader;
import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
-import lombok.extern.slf4j.Slf4j;
+public class StoreNodeServiceTest {
+ static PDConfig pdConfig;
-@Slf4j
-public class StoreNodeServiceTest extends BaseCoreTest {
+ @BeforeClass
+ public static void init() throws Exception {
+ String path = "tmp/unitTest";
+ deleteDirectory(new File(path));
+ pdConfig = new PDConfig() {{
+ this.setClusterId(100);
+ this.setInitialStoreList(
+
"127.0.0.1:8500,127.0.0.1:8501,127.0.0.1:8502,127.0.0.1:8503,127.0.0.1:8504," +
+ "127.0.0.1:8505");
+ }};
+ pdConfig.setStore(new PDConfig().new Store() {{
+ this.setMaxDownTime(3600);
+ this.setKeepAliveTimeout(3600);
+ }});
+ pdConfig.setPartition(new PDConfig().new Partition() {{
+ this.setShardCount(3);
+ this.setMaxShardsPerStore(3);
+ }});
+ pdConfig.setRaft(new PDConfig().new Raft() {{
+ this.setEnable(false);
+ }});
+ pdConfig.setDiscovery(new PDConfig().new Discovery());
+ pdConfig.setDataPath(path);
+ ConfigService configService = new ConfigService(pdConfig);
+ pdConfig = configService.loadConfig();
+ }
+
+ public static byte[] intToByteArray(int i) {
+ byte[] result = new byte[4];
+ result[0] = (byte) ((i >> 24) & 0xFF);
+ result[1] = (byte) ((i >> 16) & 0xFF);
+ result[2] = (byte) ((i >> 8) & 0xFF);
+ result[3] = (byte) (i & 0xFF);
+ return result;
+ }
+
+ public static void deleteDirectory(File dir) {
+ try {
+ FileUtils.deleteDirectory(dir);
+ } catch (IOException e) {
+ System.out.printf("Failed to start ....,%s%n", e.getMessage());
+ }
+ }
+
+ @Ignore
@Test
public void testStoreNodeService() throws PDException {
Assert.assertEquals(pdConfig.getPartition().getTotalCount(),
- pdConfig.getInitialStoreMap().size() *
+ (long) pdConfig.getInitialStoreMap().size() *
pdConfig.getPartition().getMaxShardsPerStore()
/ pdConfig.getPartition().getShardCount());
StoreNodeService storeService = new StoreNodeService(pdConfig);
- storeService.init(new PartitionService(pdConfig, storeService));
+ PartitionService partitionService = new PartitionService(pdConfig,
storeService);
+ storeService.init(partitionService);
+
int count = 6;
Metapb.Store[] stores = new Metapb.Store[count];
for (int i = 0; i < count; i++) {
@@ -76,9 +140,9 @@ public class StoreNodeServiceTest extends BaseCoreTest {
Assert.assertEquals(3, shards.size());
- // 设置leader
+
Assert.assertEquals(pdConfig.getPartition().getTotalCount(),
- storeService.getShardGroups().size());
+ storeService.getShardGroups().size()); //
设置leader
Metapb.Shard leader = Metapb.Shard.newBuilder(shards.get(0))
.setRole(Metapb.ShardRole.Leader).build();
shards = new ArrayList<>(shards);
@@ -115,5 +179,301 @@ public class StoreNodeServiceTest extends BaseCoreTest {
}
+ // @Test
+ public void testSplitPartition() throws PDException {
+ StoreNodeService storeService = new StoreNodeService(pdConfig);
+ PartitionService partitionService = new PartitionService(pdConfig,
storeService);
+ storeService.init(partitionService);
+ partitionService.addInstructionListener(new
PartitionInstructionListener() {
+
+ @Override
+ public void changeShard(Metapb.Partition partition, ChangeShard
changeShard) throws
+
PDException {
+
+ }
+
+ @Override
+ public void transferLeader(Metapb.Partition partition,
+ TransferLeader transferLeader) throws
PDException {
+
+ }
+
+ @Override
+ public void splitPartition(Metapb.Partition partition,
+ SplitPartition splitPartition) throws
PDException {
+ splitPartition.getNewPartitionList().forEach(p -> {
+ System.out.println("SplitPartition " + p.getId() + " " +
p.getStartKey() + "," +
+ p.getEndKey());
+ });
+ }
+
+ @Override
+ public void dbCompaction(Metapb.Partition partition, DbCompaction
dbCompaction) throws
+
PDException {
+
+ }
+
+ @Override
+ public void movePartition(Metapb.Partition partition,
+ MovePartition movePartition) throws
PDException {
+
+ }
+
+ @Override
+ public void cleanPartition(Metapb.Partition partition,
+ CleanPartition cleanPartition) throws
PDException {
+
+ }
+
+ @Override
+ public void changePartitionKeyRange(Metapb.Partition partition,
+ PartitionKeyRange
partitionKeyRange) throws
+
PDException {
+
+ }
+ });
+ int count = 6;
+ Metapb.Store[] stores = new Metapb.Store[count];
+ for (int i = 0; i < count; i++) {
+ Metapb.Store store = Metapb.Store.newBuilder()
+ .setId(0)
+ .setAddress("127.0.0.1:850" + i)
+ .setDeployPath("/data")
+
.addLabels(Metapb.StoreLabel.newBuilder()
+
.setKey("namespace")
+
.setValue("default")
+
.build())
+ .build();
+ stores[i] = storeService.register(store);
+ System.out.println("新注册store, id = " +
Long.toHexString(stores[i].getId()));
+ }
+ Assert.assertEquals(count, storeService.getStores().size());
+
+ Metapb.Graph graph = Metapb.Graph.newBuilder()
+ .setGraphName("defaultGH")
+ .build();
+ Metapb.PartitionShard ptShard =
+ partitionService.getPartitionByCode(graph.getGraphName(), 0);
+ System.out.println(ptShard.getPartition().getId());
+ {
+ Metapb.Partition pt = ptShard.getPartition();
+ System.out.println(pt.getId() + " " + pt.getStartKey() + "," +
pt.getEndKey());
+ }
+
+ Assert.assertEquals(6, storeService.getShardGroups().size());
+ // storeService.splitShardGroups(ptShard.getPartition().getId(), 4);
+ Assert.assertEquals(9, storeService.getShardGroups().size());
+ storeService.getShardGroups().forEach(shardGroup -> {
+ System.out.println("shardGroup id = " + shardGroup.getId());
+ });
+ }
+ // @Test
+ public void testPartitionService() throws PDException, ExecutionException,
+ InterruptedException {
+ StoreNodeService storeService = new StoreNodeService(pdConfig);
+ int count = 6;
+ Metapb.Store[] stores = new Metapb.Store[count];
+ for (int i = 0; i < count; i++) {
+ Metapb.Store store = Metapb.Store.newBuilder()
+ .setId(0)
+ .setAddress("127.0.0.1:850" + i)
+ .setDeployPath("/data")
+
.addLabels(Metapb.StoreLabel.newBuilder()
+
.setKey("namespace")
+
.setValue("default")
+
.build())
+ .build();
+ stores[i] = storeService.register(store);
+ System.out.println("新注册store, id = " +
Long.toHexString(stores[i].getId()));
+ }
+ Assert.assertEquals(count, storeService.getStores("").size());
+
+
+ PartitionService partitionService = new PartitionService(pdConfig,
storeService);
+
+ Metapb.Graph graph = Metapb.Graph.newBuilder()
+ .setGraphName("defaultGH")
+
+ .setPartitionCount(10)
+ .build();
+ // 申请分区
+ Metapb.PartitionShard[] partitions = new Metapb.PartitionShard[10];
+ for (int i = 0; i < partitions.length; i++) {
+ partitions[i] =
+ partitionService.getPartitionShard(graph.getGraphName(),
intToByteArray(i));
+ Assert.assertEquals(3,
storeService.getShardGroup(i).getShardsCount());
+ }
+ System.out.println(
+ "分区数量: " +
partitionService.getPartitions(graph.getGraphName()).size());
+
+ int[] caseNo = {0}; //1 测试增加shard, 2 //测试store下线
+
+ Metapb.Shard leader = null;
+ int[] finalCaseNo = caseNo;
+
+ partitionService.addInstructionListener(new
PartitionInstructionListener() {
+
+ @Override
+ public void changeShard(Metapb.Partition partition, ChangeShard
changeShard) throws
+
PDException {
+ switch (finalCaseNo[0]) {
+ case 2:
+ Assert.assertEquals(5,
storeService.getShardGroup(partition.getId())
+ .getShardsCount());
+ break;
+ case 3:
+
storeService.getShardGroup(partition.getId()).getShardsList()
+ .forEach(shard -> {
+
Assert.assertNotEquals(shard.getStoreId(),
+
stores[0].getId());
+ });
+ break;
+ }
+
+ }
+
+ @Override
+ public void transferLeader(Metapb.Partition partition,
TransferLeader transferLeader) {
+
+ }
+
+ @Override
+ public void splitPartition(Metapb.Partition partition,
SplitPartition splitPartition) {
+ }
+
+ @Override
+ public void dbCompaction(Metapb.Partition partition, DbCompaction
dbCompaction) throws
+
PDException {
+
+ }
+
+ @Override
+ public void movePartition(Metapb.Partition partition,
+ MovePartition movePartition) throws
PDException {
+
+ }
+
+ @Override
+ public void cleanPartition(Metapb.Partition partition,
+ CleanPartition cleanPartition) throws
PDException {
+
+ }
+
+ @Override
+ public void changePartitionKeyRange(Metapb.Partition partition,
+ PartitionKeyRange
partitionKeyRange)
+ throws PDException {
+
+ }
+ });
+ Metapb.Partition partition = partitions[0].getPartition();
+ leader = Metapb.Shard.newBuilder(
+
storeService.getShardGroup(partition.getId()).getShardsList().get(0)).build();
+ Metapb.Shard finalLeader = leader;
+ partitionService.addStatusListener(new PartitionStatusListener() {
+ @Override
+ public void onPartitionChanged(Metapb.Partition partition,
+ Metapb.Partition newPartition) {
+
+ }
+
+ @Override
+ public void onPartitionRemoved(Metapb.Partition partition) {
+
+ }
+ });
+ // 测试修改图
+ caseNo[0] = 1;
+ partitionService.updateGraph(graph);
+ for (int i = 0; i < partitions.length; i++) {
+ partitions[i] =
+ partitionService.getPartitionShard(graph.getGraphName(),
intToByteArray(i));
+ Assert.assertEquals(3,
storeService.getShardGroup(i).getShardsCount());
+ }
+
+ graph = Metapb.Graph.newBuilder(graph)
+ .setGraphName("defaultGH")
+
+ .setPartitionCount(10)
+ .build();
+ caseNo[0] = 2;
+ partitionService.updateGraph(graph);
+
+ // 测试store离线
+ caseNo[0] = 3;
+ partitionService.storeOffline(stores[0]);
+
+
+ Metapb.PartitionStats stats = Metapb.PartitionStats.newBuilder()
+
.addGraphName(partition.getGraphName())
+
.setId(partition.getId())
+ .setLeader(
+
Metapb.Shard.newBuilder(leader)
+
.setRole(
+
Metapb.ShardRole.Leader))
+ .build();
+ // 测试leader飘移
+ caseNo[0] = 4;
+ partitionService.partitionHeartbeat(stats);
+ AtomicReference<Metapb.Shard> shard = new AtomicReference<>();
+ Metapb.PartitionShard ss =
+
partitionService.getPartitionShardById(partition.getGraphName(),
partition.getId());
+ storeService.getShardList(partition.getId()).forEach(s -> {
+ if (s.getRole() == Metapb.ShardRole.Leader) {
+ Assert.assertNull(shard.get());
+ shard.set(s);
+ }
+ });
+
+ Assert.assertEquals(leader.getStoreId(), shard.get().getStoreId());
+
+ }
+
+ // @Test
+ public void testMergeGraphParams() throws PDException {
+ StoreNodeService storeService = new StoreNodeService(pdConfig);
+ PartitionService partitionService = new PartitionService(pdConfig,
storeService);
+
+ Metapb.Graph dfGraph = Metapb.Graph.newBuilder()
+
+ .setPartitionCount(
+
pdConfig.getPartition().getTotalCount())
+
+ .build();
+
+ Metapb.Graph graph1 = Metapb.Graph.newBuilder()
+ .setGraphName("test")
+ .setPartitionCount(20)
+
+ .build();
+
+ Metapb.Graph graph2 = Metapb.Graph.newBuilder()
+ .setGraphName("test")
+ .setPartitionCount(7).build();
+ Metapb.Graph graph3 = Metapb.Graph.newBuilder()
+ .setGraphName("test")
+ .build();
+ Metapb.Graph graph4 = Metapb.Graph.newBuilder()
+ .setGraphName("test")
+ .build();
+
+ Metapb.Graph graph =
Metapb.Graph.newBuilder(dfGraph).mergeFrom(graph2).build();
+ Assert.assertEquals(graph2.getGraphName(), graph.getGraphName());
+
+ Assert.assertEquals(graph2.getPartitionCount(),
graph.getPartitionCount());
+
+
+ graph = Metapb.Graph.newBuilder(dfGraph).mergeFrom(graph3).build();
+ Assert.assertEquals(graph3.getGraphName(), graph.getGraphName());
+
+ Assert.assertEquals(dfGraph.getPartitionCount(),
graph.getPartitionCount());
+
+
+ graph = Metapb.Graph.newBuilder(dfGraph).mergeFrom(graph4).build();
+ Assert.assertEquals(graph4.getGraphName(), graph.getGraphName());
+
+ Assert.assertEquals(dfGraph.getPartitionCount(),
graph.getPartitionCount());
+
+ }
}
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/StoreServiceTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/StoreServiceTest.java
similarity index 99%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/StoreServiceTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/StoreServiceTest.java
index af17db1c7..73f8b6223 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/StoreServiceTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/StoreServiceTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.service;
+package org.apache.hugegraph.pd.core;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
@@ -33,7 +33,9 @@ import org.apache.hugegraph.pd.StoreStatusListener;
import org.apache.hugegraph.pd.config.PDConfig;
import org.apache.hugegraph.pd.grpc.MetaTask;
import org.apache.hugegraph.pd.grpc.Metapb;
+import org.apache.hugegraph.pd.rest.BaseServerTest;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
public class StoreServiceTest {
@@ -287,6 +289,7 @@ public class StoreServiceTest {
final Metapb.Store result = this.service.updateStore(store);
}
+ @Ignore
@Test
public void testStoreTurnoff() throws Exception {
// Setup
@@ -491,6 +494,7 @@ public class StoreServiceTest {
}
}
+ @Ignore
@Test
public void testGetTombStores() throws Exception {
// Setup
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/TaskScheduleServiceTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/TaskScheduleServiceTest.java
similarity index 97%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/TaskScheduleServiceTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/TaskScheduleServiceTest.java
index d4686f0c5..4b70845ad 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/TaskScheduleServiceTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/TaskScheduleServiceTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.service;
+package org.apache.hugegraph.pd.core;
import static org.junit.Assert.assertTrue;
@@ -28,7 +28,7 @@ import org.apache.hugegraph.pd.grpc.Metapb;
import org.junit.Before;
import org.junit.Test;
-public class TaskScheduleServiceTest extends PdTestBase {
+public class TaskScheduleServiceTest extends PDCoreTestBase {
TaskScheduleService service;
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/meta/MetadataKeyHelperTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/meta/MetadataKeyHelperTest.java
index 7d38b9e13..03aa0e785 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/meta/MetadataKeyHelperTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/meta/MetadataKeyHelperTest.java
@@ -17,8 +17,10 @@
package org.apache.hugegraph.pd.core.meta;
+import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertArrayEquals;
+import org.apache.hugegraph.pd.grpc.Metapb;
import org.apache.hugegraph.pd.meta.MetadataKeyHelper;
import org.junit.Test;
@@ -31,4 +33,194 @@ public class MetadataKeyHelperTest {
var key2 = MetadataKeyHelper.getMoveTaskPrefix("foo");
assertArrayEquals(key2, "TASK_MOVE/foo".getBytes());
}
+
+ @Test
+ public void testGetStoreInfoKey() {
+ assertThat(MetadataKeyHelper.getStoreInfoKey(0L)).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetActiveStoreKey() {
+ assertThat(MetadataKeyHelper.getActiveStoreKey(0L)).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetActiveStorePrefix() {
+ assertThat(MetadataKeyHelper.getActiveStorePrefix()).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetStorePrefix() {
+ assertThat(MetadataKeyHelper.getStorePrefix()).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetStoreStatusKey() {
+ assertThat(MetadataKeyHelper.getStoreStatusKey(0L)).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetShardGroupKey() {
+ assertThat(MetadataKeyHelper.getShardGroupKey(0L)).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetShardGroupPrefix() {
+ assertThat(MetadataKeyHelper.getShardGroupPrefix()).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetPartitionKey() {
+ assertThat(MetadataKeyHelper.getPartitionKey("graphName", 0)).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetPartitionPrefix() {
+ assertThat(MetadataKeyHelper.getPartitionPrefix("graphName")).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetShardKey() {
+ assertThat(MetadataKeyHelper.getShardKey(0L, 0)).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetShardPrefix() {
+ assertThat(MetadataKeyHelper.getShardPrefix(0L)).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetGraphKey() {
+ assertThat(MetadataKeyHelper.getGraphKey("graphName")).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetGraphPrefix() {
+ assertThat(MetadataKeyHelper.getGraphPrefix()).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetPartitionStatusKey() {
+ assertThat(MetadataKeyHelper.getPartitionStatusKey("graphName",
+ 0)).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetPartitionStatusPrefixKey() {
+ assertThat(MetadataKeyHelper.getPartitionStatusPrefixKey(
+ "graphName")).contains(MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetGraphSpaceKey() {
+ assertThat(MetadataKeyHelper.getGraphSpaceKey("graphSpace")).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetPdConfigKey() {
+ assertThat(MetadataKeyHelper.getPdConfigKey("configKey")).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetQueueItemPrefix() {
+ assertThat(MetadataKeyHelper.getQueueItemPrefix()).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetQueueItemKey() {
+ assertThat(MetadataKeyHelper.getQueueItemKey("itemId")).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetSpitTaskKey() {
+ assertThat(MetadataKeyHelper.getSplitTaskKey("graphName", 0)).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetSpitTaskPrefix() {
+ assertThat(MetadataKeyHelper.getSplitTaskPrefix("graph0")).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetLogKey() {
+ // Setup
+ final Metapb.LogRecord record = Metapb.LogRecord.newBuilder()
+ .setAction("value")
+ .setTimestamp(0L)
+ .build();
+
+ // Run the test
+ final byte[] result = MetadataKeyHelper.getLogKey(record);
+
+ // Verify the results
+ assertThat(result).contains(MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetLogKeyPrefix() {
+ assertThat(MetadataKeyHelper.getLogKeyPrefix("action", 0L)).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetKVPrefix() {
+ assertThat(MetadataKeyHelper.getKVPrefix("prefix", "key")).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetKVTTLPrefix() {
+ assertThat(MetadataKeyHelper.getKVTTLPrefix("ttlPrefix", "prefix",
+ "key")).contains(
+ MetadataKeyHelper.getDelimiter());
+ }
+
+ @Test
+ public void testGetKVWatchKeyPrefix1() {
+ assertThat(
+ MetadataKeyHelper.getKVWatchKeyPrefix("key", "watchDelimiter",
+ 0L)).contains(
+ String.valueOf(MetadataKeyHelper.getDelimiter()));
+ }
+
+ @Test
+ public void testGetKVWatchKeyPrefix2() {
+ assertThat(MetadataKeyHelper.getKVWatchKeyPrefix("key",
+
"watchDelimiter")).contains(
+ String.valueOf(MetadataKeyHelper.getDelimiter()));
+ }
+
+ @Test
+ public void testGetDelimiter() {
+ assertThat(MetadataKeyHelper.getDelimiter()).isEqualTo('/');
+ }
+
+ @Test
+ public void testGetStringBuilderHelper() {
+ try {
+ MetadataKeyHelper.getStringBuilderHelper();
+ } catch (Exception e) {
+
+ }
+ }
}
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/store/HgKVStoreImplTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/store/HgKVStoreImplTest.java
similarity index 93%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/store/HgKVStoreImplTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/store/HgKVStoreImplTest.java
index 342ac9bc4..cfd5299ea 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/store/HgKVStoreImplTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/core/store/HgKVStoreImplTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.store;
+package org.apache.hugegraph.pd.core.store;
import java.io.File;
import java.io.IOException;
@@ -24,8 +24,11 @@ import java.nio.file.Paths;
import org.apache.commons.io.FileUtils;
import org.apache.hugegraph.pd.common.PDException;
import org.apache.hugegraph.pd.config.PDConfig;
+import org.apache.hugegraph.pd.store.HgKVStore;
+import org.apache.hugegraph.pd.store.HgKVStoreImpl;
import org.junit.Assert;
import org.junit.BeforeClass;
+import org.junit.Test;
public class HgKVStoreImplTest {
static final String testPath = "tmp/test";
@@ -43,7 +46,7 @@ public class HgKVStoreImplTest {
}};
}
- // @Test
+ @Test
public void Test() throws PDException {
HgKVStore kvStore = new HgKVStoreImpl();
kvStore.init(pdConfig);
@@ -63,9 +66,11 @@ public class HgKVStoreImplTest {
kvStore.removeByPrefix("k".getBytes());
Assert.assertEquals(0, kvStore.scanPrefix("k".getBytes()).size());
+
+ kvStore.close();
}
- // @Test
+ @Test
public void TestSnapshot() throws PDException {
HgKVStore kvStore = new HgKVStoreImpl();
kvStore.init(pdConfig);
@@ -101,5 +106,7 @@ public class HgKVStoreImplTest {
kvStore.put(key, value);
}
Assert.assertEquals(200, kvStore.scanPrefix("k".getBytes()).size());
+
+ kvStore.close();
}
}
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/grpc/BaseGrpcTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/grpc/BaseGrpcTest.java
index 0e768d611..4ed8b3935 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/grpc/BaseGrpcTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/grpc/BaseGrpcTest.java
@@ -17,10 +17,11 @@
package org.apache.hugegraph.pd.grpc;
+import org.apache.hugegraph.pd.common.Useless;
import org.junit.After;
import org.junit.BeforeClass;
-
+@Useless
public class BaseGrpcTest {
@BeforeClass
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/grpc/GrpcSuiteTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/grpc/GrpcSuiteTest.java
index b994a1fd2..44ffdf064 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/grpc/GrpcSuiteTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/grpc/GrpcSuiteTest.java
@@ -17,12 +17,13 @@
package org.apache.hugegraph.pd.grpc;
+import org.apache.hugegraph.pd.common.Useless;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import lombok.extern.slf4j.Slf4j;
-
+@Useless
@RunWith(Suite.class)
@Suite.SuiteClasses({
})
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/BaseServerTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/rest/BaseServerTest.java
similarity index 97%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/BaseServerTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/rest/BaseServerTest.java
index e9092a631..5c397e809 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/BaseServerTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/rest/BaseServerTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.service;
+package org.apache.hugegraph.pd.rest;
import java.io.File;
import java.net.http.HttpClient;
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/grpc/GrpcSuiteTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/rest/PDRestSuiteTest.java
similarity index 90%
copy from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/grpc/GrpcSuiteTest.java
copy to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/rest/PDRestSuiteTest.java
index b994a1fd2..d16d21208 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/grpc/GrpcSuiteTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/rest/PDRestSuiteTest.java
@@ -15,19 +15,19 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.grpc;
+package org.apache.hugegraph.pd.rest;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import lombok.extern.slf4j.Slf4j;
-
@RunWith(Suite.class)
@Suite.SuiteClasses({
+ RestApiTest.class,
})
@Slf4j
-public class GrpcSuiteTest {
+public class PDRestSuiteTest {
}
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/RestApiTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/rest/RestApiTest.java
similarity index 99%
rename from
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/RestApiTest.java
rename to
hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/rest/RestApiTest.java
index 7e5fec381..b3165ab30 100644
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/RestApiTest.java
+++
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/rest/RestApiTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.hugegraph.pd.service;
+package org.apache.hugegraph.pd.rest;
import java.io.IOException;
import java.net.URI;
diff --git
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/ServerSuiteTest.java
b/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/ServerSuiteTest.java
deleted file mode 100644
index fe8c0ed04..000000000
---
a/hugegraph-pd/hg-pd-test/src/main/java/org/apache/hugegraph/pd/service/ServerSuiteTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.hugegraph.pd.service;
-
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-import lombok.extern.slf4j.Slf4j;
-
-
-@RunWith(Suite.class)
[email protected]({
- RestApiTest.class,
- ConfigServiceTest.class,
- IdServiceTest.class,
- KvServiceTest.class,
- LogServiceTest.class,
- StoreServiceTest.class,
- StoreNodeServiceNewTest.class,
- StoreMonitorDataServiceTest.class,
- TaskScheduleServiceTest.class,
- PartitionServiceTest.class
-})
-
-@Slf4j
-public class ServerSuiteTest {
-}
diff --git a/hugegraph-pd/pom.xml b/hugegraph-pd/pom.xml
index e7ccdce9b..11b508024 100644
--- a/hugegraph-pd/pom.xml
+++ b/hugegraph-pd/pom.xml
@@ -245,7 +245,7 @@
</build>
</profile>
<profile>
- <id>pd-service-test</id>
+ <id>pd-rest-test</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
@@ -257,7 +257,7 @@
<version>2.20</version>
<executions>
<execution>
- <id>pd-service-test</id>
+ <id>pd-rest-test</id>
<goals>
<goal>test</goal>
</goals>