This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 8343882a38b Refactor ComputeNodePath (#34257)
8343882a38b is described below
commit 8343882a38bd76649dd2d2f9b3e755f4927b3739
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Jan 5 23:14:39 2025 +0800
Refactor ComputeNodePath (#34257)
---
.../metadata/persist/node/ComputeNode.java | 178 --------------------
.../metadata/persist/node/ComputeNodePath.java | 179 +++++++++++++++++++++
.../metadata/persist/node/ComputeNodePathTest.java | 101 ++++++++++++
.../metadata/persist/node/ComputeNodeTest.java | 84 ----------
.../service/unified/ComputeNodePersistService.java | 28 ++--
.../handler/global/ComputeNodeOnlineHandler.java | 6 +-
.../global/ComputeNodeStateChangedHandler.java | 20 +--
.../handler/global/KillProcessHandler.java | 6 +-
.../handler/global/ShowProcessListHandler.java | 6 +-
.../ClusterProcessPersistCoordinator.java | 6 +-
.../service/ClusterProcessPersistService.java | 6 +-
.../service/ClusterProcessPersistServiceTest.java | 10 +-
12 files changed, 324 insertions(+), 306 deletions(-)
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/ComputeNode.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/ComputeNode.java
deleted file mode 100644
index dff3b04abd1..00000000000
---
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/ComputeNode.java
+++ /dev/null
@@ -1,178 +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.shardingsphere.metadata.persist.node;
-
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.infra.instance.metadata.InstanceType;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * Compute node.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class ComputeNode {
-
- private static final String ROOT_NODE = "nodes";
-
- private static final String COMPUTE_NODE = "compute_nodes";
-
- private static final String ONLINE_NODE = "online";
-
- private static final String LABELS_NODE = "labels";
-
- private static final String SHOW_PROCESS_LIST_TRIGGER =
"show_process_list_trigger";
-
- private static final String KILL_PROCESS_TRIGGER = "kill_process_trigger";
-
- private static final String STATUS_NODE = "status";
-
- private static final String WORKER_ID = "worker_id";
-
- /**
- * Get online compute node path.
- *
- * @param instanceType instance type
- * @return path of online compute node
- */
- public static String getOnlineNodePath(final InstanceType instanceType) {
- return String.join("/", "", ROOT_NODE, COMPUTE_NODE, ONLINE_NODE,
instanceType.name().toLowerCase());
- }
-
- /**
- * Get online compute node instance path.
- *
- * @param instanceId instance id
- * @param instanceType instance type
- * @return path of online compute node instance
- */
- public static String getOnlineInstanceNodePath(final String instanceId,
final InstanceType instanceType) {
- return String.join("/", "", ROOT_NODE, COMPUTE_NODE, ONLINE_NODE,
instanceType.name().toLowerCase(), instanceId);
- }
-
- /**
- * Get online compute node path.
- *
- * @return path of online compute node
- */
- public static String getOnlineInstanceNodePath() {
- return String.join("/", "", ROOT_NODE, COMPUTE_NODE, ONLINE_NODE);
- }
-
- /**
- * Get show process list trigger node path.
- *
- * @return show process list trigger node path
- */
- public static String getShowProcessListTriggerNodePath() {
- return String.join("/", "", ROOT_NODE, COMPUTE_NODE,
SHOW_PROCESS_LIST_TRIGGER);
- }
-
- /**
- * Get kill process trigger node path.
- *
- * @return kill process trigger node path
- */
- public static String getKillProcessTriggerNodePath() {
- return String.join("/", "", ROOT_NODE, COMPUTE_NODE,
KILL_PROCESS_TRIGGER);
- }
-
- /**
- * Get process trigger instance node path.
- *
- * @param instanceId instance id
- * @param taskId show process list task id
- * @return path of process trigger instance node path
- */
- public static String getProcessTriggerInstanceNodePath(final String
instanceId, final String taskId) {
- return String.join("/", "", ROOT_NODE, COMPUTE_NODE,
SHOW_PROCESS_LIST_TRIGGER, String.join(":", instanceId, taskId));
- }
-
- /**
- * Get process kill instance id node path.
- *
- * @param instanceId instance id
- * @param processId process id
- * @return path of process kill instance id node path
- */
- public static String getProcessKillInstanceIdNodePath(final String
instanceId, final String processId) {
- return String.join("/", "", ROOT_NODE, COMPUTE_NODE,
KILL_PROCESS_TRIGGER, String.join(":", instanceId, processId));
- }
-
- /**
- * Get compute node instance labels path.
- *
- * @param instanceId instance id
- * @return path of compute node instance labels
- */
- public static String getInstanceLabelsNodePath(final String instanceId) {
- return String.join("/", "", ROOT_NODE, COMPUTE_NODE, LABELS_NODE,
instanceId);
- }
-
- /**
- * Get compute node path.
- *
- * @return compute node path
- */
- public static String getComputeNodePath() {
- return String.join("/", "", ROOT_NODE, COMPUTE_NODE);
- }
-
- /**
- * Get instance worker id node path.
- *
- * @param instanceId instance id
- * @return worker id path
- */
- public static String getInstanceWorkerIdNodePath(final String instanceId) {
- return String.join("/", "", ROOT_NODE, COMPUTE_NODE, WORKER_ID,
instanceId);
- }
-
- /**
- * Get instance worker id root node path.
- *
- * @return worker id root node path
- */
- public static String getInstanceWorkerIdRootNodePath() {
- return String.join("/", "", ROOT_NODE, COMPUTE_NODE, WORKER_ID);
- }
-
- /**
- * Get instance id by compute node path.
- *
- * @param computeNodePath compute node path
- * @return instance id
- */
- public static String getInstanceIdByComputeNode(final String
computeNodePath) {
- Pattern pattern = Pattern.compile(getComputeNodePath() +
"(/status|/worker_id|/labels)" + "/([\\S]+)$", Pattern.CASE_INSENSITIVE);
- Matcher matcher = pattern.matcher(computeNodePath);
- return matcher.find() ? matcher.group(2) : "";
- }
-
- /**
- * Get compute node state node path.
- *
- * @param instanceId instance id
- * @return compute node state node path
- */
- public static String getComputeNodeStateNodePath(final String instanceId) {
- return String.join("/", "", ROOT_NODE, COMPUTE_NODE, STATUS_NODE,
instanceId);
- }
-}
diff --git
a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/ComputeNodePath.java
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/ComputeNodePath.java
new file mode 100644
index 00000000000..4a2f536ff52
--- /dev/null
+++
b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/ComputeNodePath.java
@@ -0,0 +1,179 @@
+/*
+ * 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.shardingsphere.metadata.persist.node;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.infra.instance.metadata.InstanceType;
+
+import java.util.Optional;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Compute node path.
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class ComputeNodePath {
+
+ private static final String ROOT_NODE = "nodes/compute_nodes";
+
+ private static final String ONLINE_NODE = "online";
+
+ private static final String SHOW_PROCESS_LIST_TRIGGER_NODE =
"show_process_list_trigger";
+
+ private static final String KILL_PROCESS_TRIGGER_NODE =
"kill_process_trigger";
+
+ private static final String STATUS_NODE = "status";
+
+ private static final String WORKER_ID_NODE = "worker_id";
+
+ private static final String LABELS_NODE = "labels";
+
+ private static final String INSTANCE_ID_PATTERN = "([\\S]+)";
+
+ /**
+ * Get compute node root path.
+ *
+ * @return compute node root path
+ */
+ public static String getRootPath() {
+ return String.join("/", "", ROOT_NODE);
+ }
+
+ /**
+ * Get online root path.
+ *
+ * @return online root path
+ */
+ public static String getOnlineRootPath() {
+ return String.join("/", "", ROOT_NODE, ONLINE_NODE);
+ }
+
+ /**
+ * Get online path.
+ *
+ * @param instanceType instance type
+ * @return online path
+ */
+ public static String getOnlinePath(final InstanceType instanceType) {
+ return String.join("/", getOnlineRootPath(),
instanceType.name().toLowerCase());
+ }
+
+ /**
+ * Get online path.
+ *
+ * @param instanceId instance ID
+ * @param instanceType instance type
+ * @return online path
+ */
+ public static String getOnlinePath(final String instanceId, final
InstanceType instanceType) {
+ return String.join("/", getOnlinePath(instanceType), instanceId);
+ }
+
+ /**
+ * Get show process list trigger root path.
+ *
+ * @return show process list trigger root path
+ */
+ public static String getShowProcessListTriggerRootPath() {
+ return String.join("/", "", ROOT_NODE, SHOW_PROCESS_LIST_TRIGGER_NODE);
+ }
+
+ /**
+ * Get show process list trigger path.
+ *
+ * @param instanceId instance ID
+ * @param taskId show process list task ID
+ * @return show process list trigger path
+ */
+ public static String getShowProcessListTriggerPath(final String
instanceId, final String taskId) {
+ return String.join("/", getShowProcessListTriggerRootPath(),
String.join(":", instanceId, taskId));
+ }
+
+ /**
+ * Get kill process trigger root path.
+ *
+ * @return kill process trigger root path
+ */
+ public static String getKillProcessTriggerRootPath() {
+ return String.join("/", "", ROOT_NODE, KILL_PROCESS_TRIGGER_NODE);
+ }
+
+ /**
+ * Get kill process trigger path.
+ *
+ * @param instanceId instance ID
+ * @param processId process ID
+ * @return kill process trigger path
+ */
+ public static String getKillProcessTriggerPath(final String instanceId,
final String processId) {
+ return String.join("/", getKillProcessTriggerRootPath(),
String.join(":", instanceId, processId));
+ }
+
+ /**
+ * Get state path.
+ *
+ * @param instanceId instance ID
+ * @return state path
+ */
+ public static String getStatePath(final String instanceId) {
+ return String.join("/", "", ROOT_NODE, STATUS_NODE, instanceId);
+ }
+
+ /**
+ * Get worker ID root path.
+ *
+ * @return worker ID root path
+ */
+ public static String getWorkerIdRootPath() {
+ return String.join("/", "", ROOT_NODE, WORKER_ID_NODE);
+ }
+
+ /**
+ * Get worker ID path.
+ *
+ * @param instanceId instance ID
+ * @return worker ID path
+ */
+ public static String getWorkerIdPath(final String instanceId) {
+ return String.join("/", getWorkerIdRootPath(), instanceId);
+ }
+
+ /**
+ * Get labels path.
+ *
+ * @param instanceId instance ID
+ * @return labels path
+ */
+ public static String getLabelsPath(final String instanceId) {
+ return String.join("/", "", ROOT_NODE, LABELS_NODE, instanceId);
+ }
+
+ /**
+ * Find instance id by compute node path.
+ *
+ * @param computeNodePath compute node path
+ * @return found instance ID
+ */
+ public static Optional<String> findInstanceId(final String
computeNodePath) {
+ Pattern pattern = Pattern.compile(getRootPath() +
"(/status|/worker_id|/labels)" + "/" + INSTANCE_ID_PATTERN + "$",
Pattern.CASE_INSENSITIVE);
+ Matcher matcher = pattern.matcher(computeNodePath);
+ return matcher.find() ? Optional.of(matcher.group(2)) :
Optional.empty();
+ }
+}
diff --git
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/ComputeNodePathTest.java
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/ComputeNodePathTest.java
new file mode 100644
index 00000000000..b75ac6269b3
--- /dev/null
+++
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/ComputeNodePathTest.java
@@ -0,0 +1,101 @@
+/*
+ * 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.shardingsphere.metadata.persist.node;
+
+import org.apache.shardingsphere.infra.instance.metadata.InstanceType;
+import org.junit.jupiter.api.Test;
+
+import java.util.Optional;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+
+class ComputeNodePathTest {
+
+ @Test
+ void assertGetRootPath() {
+ assertThat(ComputeNodePath.getRootPath(), is("/nodes/compute_nodes"));
+ }
+
+ @Test
+ void assertGetOnlineRootPath() {
+ assertThat(ComputeNodePath.getOnlineRootPath(),
is("/nodes/compute_nodes/online"));
+ }
+
+ @Test
+ void assertGetOnlinePathWithInstanceType() {
+ assertThat(ComputeNodePath.getOnlinePath(InstanceType.PROXY),
is("/nodes/compute_nodes/online/proxy"));
+ assertThat(ComputeNodePath.getOnlinePath(InstanceType.JDBC),
is("/nodes/compute_nodes/online/jdbc"));
+ }
+
+ @Test
+ void assertGetOnlinePathWithInstanceId() {
+ assertThat(ComputeNodePath.getOnlinePath("foo_instance_1",
InstanceType.PROXY), is("/nodes/compute_nodes/online/proxy/foo_instance_1"));
+ assertThat(ComputeNodePath.getOnlinePath("foo_instance_2",
InstanceType.JDBC), is("/nodes/compute_nodes/online/jdbc/foo_instance_2"));
+ }
+
+ @Test
+ void assertGetShowProcessListTriggerRootPath() {
+ assertThat(ComputeNodePath.getShowProcessListTriggerRootPath(),
is("/nodes/compute_nodes/show_process_list_trigger"));
+ }
+
+ @Test
+ void assertGetShowProcessListTriggerPathWithInstanceId() {
+
assertThat(ComputeNodePath.getShowProcessListTriggerPath("foo_instance",
"foo_process_id"),
is("/nodes/compute_nodes/show_process_list_trigger/foo_instance:foo_process_id"));
+
assertThat(ComputeNodePath.getShowProcessListTriggerPath("foo_instance",
"foo_process_id"),
is("/nodes/compute_nodes/show_process_list_trigger/foo_instance:foo_process_id"));
+ }
+
+ @Test
+ void assertGetKillProcessTriggerRootPath() {
+ assertThat(ComputeNodePath.getKillProcessTriggerRootPath(),
is("/nodes/compute_nodes/kill_process_trigger"));
+ }
+
+ @Test
+ void assertGetKillProcessTriggerPathWithInstanceId() {
+ assertThat(ComputeNodePath.getKillProcessTriggerPath("foo_instance",
"foo_process_id"),
is("/nodes/compute_nodes/kill_process_trigger/foo_instance:foo_process_id"));
+ }
+
+ @Test
+ void assertGetStatePath() {
+ assertThat(ComputeNodePath.getStatePath("foo_instance"),
is("/nodes/compute_nodes/status/foo_instance"));
+ }
+
+ @Test
+ void assertGetWorkerIdRootPath() {
+ assertThat(ComputeNodePath.getWorkerIdRootPath(),
is("/nodes/compute_nodes/worker_id"));
+ }
+
+ @Test
+ void assertGetWorkerIdPathWithInstanceId() {
+ assertThat(ComputeNodePath.getWorkerIdPath("foo_instance"),
is("/nodes/compute_nodes/worker_id/foo_instance"));
+ }
+
+ @Test
+ void assertGetLabelsPath() {
+ assertThat(ComputeNodePath.getLabelsPath("foo_instance"),
is("/nodes/compute_nodes/labels/foo_instance"));
+ }
+
+ @Test
+ void assertFindInstanceId() {
+
assertThat(ComputeNodePath.findInstanceId("/nodes/compute_nodes/status/foo_instance_1"),
is(Optional.of("foo_instance_1")));
+
assertThat(ComputeNodePath.findInstanceId("/nodes/compute_nodes/worker_id/foo_instance_2"),
is(Optional.of("foo_instance_2")));
+
assertThat(ComputeNodePath.findInstanceId("/nodes/compute_nodes/labels/foo_instance_3"),
is(Optional.of("foo_instance_3")));
+
assertFalse(ComputeNodePath.findInstanceId("/nodes/compute_nodes/invalid/foo_instance_4").isPresent());
+ }
+}
diff --git
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/ComputeNodeTest.java
b/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/ComputeNodeTest.java
deleted file mode 100644
index 4cbbe400922..00000000000
---
a/kernel/metadata/core/src/test/java/org/apache/shardingsphere/metadata/persist/node/ComputeNodeTest.java
+++ /dev/null
@@ -1,84 +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.shardingsphere.metadata.persist.node;
-
-import org.apache.shardingsphere.infra.instance.metadata.InstanceType;
-import org.junit.jupiter.api.Test;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-class ComputeNodeTest {
-
- @Test
- void assertGetOnlineNodePath() {
- assertThat(ComputeNode.getOnlineNodePath(InstanceType.PROXY),
is("/nodes/compute_nodes/online/proxy"));
- assertThat(ComputeNode.getOnlineNodePath(InstanceType.JDBC),
is("/nodes/compute_nodes/online/jdbc"));
- }
-
- @Test
- void assertGetOnlineInstanceNodePath() {
- assertThat(ComputeNode.getOnlineInstanceNodePath("foo_instance_1",
InstanceType.PROXY), is("/nodes/compute_nodes/online/proxy/foo_instance_1"));
- assertThat(ComputeNode.getOnlineInstanceNodePath("foo_instance_2",
InstanceType.JDBC), is("/nodes/compute_nodes/online/jdbc/foo_instance_2"));
- }
-
- @Test
- void assertGetProcessTriggerNodePatch() {
- assertThat(ComputeNode.getShowProcessListTriggerNodePath(),
is("/nodes/compute_nodes/show_process_list_trigger"));
- }
-
- @Test
- void assertGetProcessTriggerInstanceIdNodePath() {
-
assertThat(ComputeNode.getProcessTriggerInstanceNodePath("foo_instance",
"foo_process_id"),
-
is("/nodes/compute_nodes/show_process_list_trigger/foo_instance:foo_process_id"));
-
assertThat(ComputeNode.getProcessTriggerInstanceNodePath("foo_instance",
"foo_process_id"),
-
is("/nodes/compute_nodes/show_process_list_trigger/foo_instance:foo_process_id"));
- }
-
- @Test
- void assertGetInstanceLabelsNodePath() {
- assertThat(ComputeNode.getInstanceLabelsNodePath("foo_instance"),
is("/nodes/compute_nodes/labels/foo_instance"));
- }
-
- @Test
- void assertGetInstanceWorkerIdNodePath() {
- assertThat(ComputeNode.getInstanceWorkerIdNodePath("foo_instance"),
is("/nodes/compute_nodes/worker_id/foo_instance"));
- }
-
- @Test
- void assertGetInstanceWorkerIdRootNodePath() {
- assertThat(ComputeNode.getInstanceWorkerIdRootNodePath(),
is("/nodes/compute_nodes/worker_id"));
- }
-
- @Test
- void assertGetInstanceIdByComputeNodePath() {
-
assertThat(ComputeNode.getInstanceIdByComputeNode("/nodes/compute_nodes/status/foo_instance_1"),
is("foo_instance_1"));
-
assertThat(ComputeNode.getInstanceIdByComputeNode("/nodes/compute_nodes/worker_id/foo_instance_2"),
is("foo_instance_2"));
-
assertThat(ComputeNode.getInstanceIdByComputeNode("/nodes/compute_nodes/labels/foo_instance_3"),
is("foo_instance_3"));
- }
-
- @Test
- void assertGetComputeNodeStateNodePath() {
- assertThat(ComputeNode.getComputeNodeStateNodePath("foo_instance"),
is("/nodes/compute_nodes/status/foo_instance"));
- }
-
- @Test
- void assertGetComputeNodePath() {
- assertThat(ComputeNode.getComputeNodePath(),
is("/nodes/compute_nodes"));
- }
-}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/ComputeNodePersistService.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/ComputeNodePersistService.java
index 9c37b094ad2..38af55fcd4e 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/ComputeNodePersistService.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/unified/ComputeNodePersistService.java
@@ -29,7 +29,7 @@ import
org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeData;
import
org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeDataSwapper;
import org.apache.shardingsphere.infra.state.instance.InstanceState;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.metadata.persist.node.ComputeNode;
+import org.apache.shardingsphere.metadata.persist.node.ComputeNodePath;
import org.apache.shardingsphere.mode.spi.PersistRepository;
import java.util.Arrays;
@@ -55,10 +55,10 @@ public final class ComputeNodePersistService {
*/
public void registerOnline(final ComputeNodeInstance computeNodeInstance) {
String instanceId = computeNodeInstance.getMetaData().getId();
-
repository.persistEphemeral(ComputeNode.getOnlineInstanceNodePath(instanceId,
computeNodeInstance.getMetaData().getType()), YamlEngine.marshal(
+ repository.persistEphemeral(ComputeNodePath.getOnlinePath(instanceId,
computeNodeInstance.getMetaData().getType()), YamlEngine.marshal(
new YamlComputeNodeDataSwapper().swapToYamlConfiguration(new
ComputeNodeData(computeNodeInstance.getMetaData().getAttributes(),
computeNodeInstance.getMetaData().getVersion(),
computeNodeInstance.getMetaData().getDatabaseName()))));
-
repository.persistEphemeral(ComputeNode.getComputeNodeStateNodePath(instanceId),
computeNodeInstance.getState().getCurrentState().name());
+ repository.persistEphemeral(ComputeNodePath.getStatePath(instanceId),
computeNodeInstance.getState().getCurrentState().name());
persistInstanceLabels(instanceId, computeNodeInstance.getLabels());
}
@@ -69,7 +69,7 @@ public final class ComputeNodePersistService {
* @param labels instance labels
*/
public void persistInstanceLabels(final String instanceId, final
Collection<String> labels) {
-
repository.persistEphemeral(ComputeNode.getInstanceLabelsNodePath(instanceId),
YamlEngine.marshal(labels));
+ repository.persistEphemeral(ComputeNodePath.getLabelsPath(instanceId),
YamlEngine.marshal(labels));
}
/**
@@ -79,7 +79,7 @@ public final class ComputeNodePersistService {
* @param workerId worker ID
*/
public void persistInstanceWorkerId(final String instanceId, final int
workerId) {
-
repository.persistEphemeral(ComputeNode.getInstanceWorkerIdNodePath(instanceId),
String.valueOf(workerId));
+
repository.persistEphemeral(ComputeNodePath.getWorkerIdPath(instanceId),
String.valueOf(workerId));
}
/**
@@ -90,7 +90,7 @@ public final class ComputeNodePersistService {
*/
@SuppressWarnings("unchecked")
public Collection<String> loadInstanceLabels(final String instanceId) {
- String yamlContent =
repository.query(ComputeNode.getInstanceLabelsNodePath(instanceId));
+ String yamlContent =
repository.query(ComputeNodePath.getLabelsPath(instanceId));
return Strings.isNullOrEmpty(yamlContent) ? new LinkedList<>() :
YamlEngine.unmarshal(yamlContent, Collection.class);
}
@@ -101,7 +101,7 @@ public final class ComputeNodePersistService {
* @return state
*/
public String loadComputeNodeState(final String instanceId) {
- return
repository.query(ComputeNode.getComputeNodeStateNodePath(instanceId));
+ return repository.query(ComputeNodePath.getStatePath(instanceId));
}
/**
@@ -112,7 +112,7 @@ public final class ComputeNodePersistService {
*/
public Optional<Integer> loadInstanceWorkerId(final String instanceId) {
try {
- String workerId =
repository.query(ComputeNode.getInstanceWorkerIdNodePath(instanceId));
+ String workerId =
repository.query(ComputeNodePath.getWorkerIdPath(instanceId));
return Strings.isNullOrEmpty(workerId) ? Optional.empty() :
Optional.of(Integer.valueOf(workerId));
} catch (final NumberFormatException ex) {
log.error("Invalid worker id for instance: {}", instanceId);
@@ -131,8 +131,8 @@ public final class ComputeNodePersistService {
private Collection<ComputeNodeInstance> loadComputeNodeInstances(final
InstanceType instanceType) {
Collection<ComputeNodeInstance> result = new LinkedList<>();
- for (String each :
repository.getChildrenKeys(ComputeNode.getOnlineNodePath(instanceType))) {
- String value =
repository.query(ComputeNode.getOnlineInstanceNodePath(each, instanceType));
+ for (String each :
repository.getChildrenKeys(ComputeNodePath.getOnlinePath(instanceType))) {
+ String value =
repository.query(ComputeNodePath.getOnlinePath(each, instanceType));
if (Strings.isNullOrEmpty(value)) {
continue;
}
@@ -162,10 +162,10 @@ public final class ComputeNodePersistService {
* @return assigned worker IDs
*/
public Collection<Integer> getAssignedWorkerIds() {
- Collection<String> childrenKeys =
repository.getChildrenKeys(ComputeNode.getInstanceWorkerIdRootNodePath());
+ Collection<String> childrenKeys =
repository.getChildrenKeys(ComputeNodePath.getWorkerIdRootPath());
Collection<Integer> result = new LinkedHashSet<>(childrenKeys.size(),
1F);
for (String each : childrenKeys) {
- String workerId =
repository.query(ComputeNode.getInstanceWorkerIdNodePath(each));
+ String workerId =
repository.query(ComputeNodePath.getWorkerIdPath(each));
if (null != workerId) {
result.add(Integer.parseInt(workerId));
}
@@ -180,7 +180,7 @@ public final class ComputeNodePersistService {
* @param instanceState instance state
*/
public void updateComputeNodeState(final String instanceId, final
InstanceState instanceState) {
-
repository.persistEphemeral(ComputeNode.getComputeNodeStateNodePath(instanceId),
instanceState.name());
+ repository.persistEphemeral(ComputeNodePath.getStatePath(instanceId),
instanceState.name());
}
/**
@@ -189,6 +189,6 @@ public final class ComputeNodePersistService {
* @param computeNodeInstance compute node instance
*/
public void offline(final ComputeNodeInstance computeNodeInstance) {
-
repository.delete(ComputeNode.getOnlineInstanceNodePath(computeNodeInstance.getMetaData().getId(),
computeNodeInstance.getMetaData().getType()));
+
repository.delete(ComputeNodePath.getOnlinePath(computeNodeInstance.getMetaData().getId(),
computeNodeInstance.getMetaData().getType()));
}
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/ComputeNodeOnlineHandler.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/ComputeNodeOnlineHandler.java
index 7f1110a8071..569ef53dcd2 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/ComputeNodeOnlineHandler.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/ComputeNodeOnlineHandler.java
@@ -25,7 +25,7 @@ import
org.apache.shardingsphere.infra.instance.metadata.InstanceType;
import org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeData;
import
org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeDataSwapper;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.metadata.persist.node.ComputeNode;
+import org.apache.shardingsphere.metadata.persist.node.ComputeNodePath;
import org.apache.shardingsphere.mode.event.DataChangedEvent;
import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -43,7 +43,7 @@ public final class ComputeNodeOnlineHandler implements
DataChangedEventHandler {
@Override
public String getSubscribedKey() {
- return ComputeNode.getOnlineInstanceNodePath();
+ return ComputeNodePath.getOnlineRootPath();
}
@Override
@@ -69,6 +69,6 @@ public final class ComputeNodeOnlineHandler implements
DataChangedEventHandler {
}
private Matcher getInstanceOnlinePathMatcher(final String
onlineInstancePath) {
- return Pattern.compile(ComputeNode.getOnlineInstanceNodePath() +
"/([\\S]+)/([\\S]+)$", Pattern.CASE_INSENSITIVE).matcher(onlineInstancePath);
+ return Pattern.compile(ComputeNodePath.getOnlineRootPath() +
"/([\\S]+)/([\\S]+)$", Pattern.CASE_INSENSITIVE).matcher(onlineInstancePath);
}
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/ComputeNodeStateChangedHandler.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/ComputeNodeStateChangedHandler.java
index 99e2fe6d122..1db5d8b7617 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/ComputeNodeStateChangedHandler.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/ComputeNodeStateChangedHandler.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global;
import com.google.common.base.Strings;
import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.metadata.persist.node.ComputeNode;
+import org.apache.shardingsphere.metadata.persist.node.ComputeNodePath;
import org.apache.shardingsphere.mode.event.DataChangedEvent;
import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -37,7 +37,7 @@ public final class ComputeNodeStateChangedHandler implements
DataChangedEventHan
@Override
public String getSubscribedKey() {
- return ComputeNode.getComputeNodePath();
+ return ComputeNodePath.getRootPath();
}
@Override
@@ -45,20 +45,20 @@ public final class ComputeNodeStateChangedHandler
implements DataChangedEventHan
return Arrays.asList(Type.ADDED, Type.UPDATED, Type.DELETED);
}
- @SuppressWarnings("unchecked")
@Override
public void handle(final ContextManager contextManager, final
DataChangedEvent event) {
- String instanceId =
ComputeNode.getInstanceIdByComputeNode(event.getKey());
- if (Strings.isNullOrEmpty(instanceId)) {
- return;
- }
+ ComputeNodePath.findInstanceId(event.getKey()).ifPresent(optional ->
handle(contextManager, event, optional));
+ }
+
+ @SuppressWarnings("unchecked")
+ private void handle(final ContextManager contextManager, final
DataChangedEvent event, final String instanceId) {
ComputeNodeInstanceContext computeNodeInstanceContext =
contextManager.getComputeNodeInstanceContext();
- if
(event.getKey().equals(ComputeNode.getComputeNodeStateNodePath(instanceId)) &&
Type.DELETED != event.getType()) {
+ if (event.getKey().equals(ComputeNodePath.getStatePath(instanceId)) &&
Type.DELETED != event.getType()) {
computeNodeInstanceContext.updateStatus(instanceId,
event.getValue());
- } else if
(event.getKey().equals(ComputeNode.getInstanceLabelsNodePath(instanceId)) &&
Type.DELETED != event.getType()) {
+ } else if
(event.getKey().equals(ComputeNodePath.getLabelsPath(instanceId)) &&
Type.DELETED != event.getType()) {
// TODO labels may be empty
computeNodeInstanceContext.updateLabels(instanceId,
Strings.isNullOrEmpty(event.getValue()) ? new ArrayList<>() :
YamlEngine.unmarshal(event.getValue(), Collection.class));
- } else if
(event.getKey().equals(ComputeNode.getInstanceWorkerIdNodePath(instanceId))) {
+ } else if
(event.getKey().equals(ComputeNodePath.getWorkerIdPath(instanceId))) {
computeNodeInstanceContext.updateWorkerId(instanceId,
Strings.isNullOrEmpty(event.getValue()) ? null :
Integer.valueOf(event.getValue()));
}
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/KillProcessHandler.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/KillProcessHandler.java
index abb05a42980..66deaa8df32 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/KillProcessHandler.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/KillProcessHandler.java
@@ -20,7 +20,7 @@ package
org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global;
import
org.apache.shardingsphere.infra.exception.core.external.sql.type.wrapper.SQLWrapperException;
import org.apache.shardingsphere.infra.executor.sql.process.ProcessRegistry;
import
org.apache.shardingsphere.infra.executor.sql.process.lock.ProcessOperationLockRegistry;
-import org.apache.shardingsphere.metadata.persist.node.ComputeNode;
+import org.apache.shardingsphere.metadata.persist.node.ComputeNodePath;
import org.apache.shardingsphere.mode.event.DataChangedEvent;
import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -39,7 +39,7 @@ public final class KillProcessHandler implements
DataChangedEventHandler {
@Override
public String getSubscribedKey() {
- return ComputeNode.getKillProcessTriggerNodePath();
+ return ComputeNodePath.getKillProcessTriggerRootPath();
}
@Override
@@ -71,6 +71,6 @@ public final class KillProcessHandler implements
DataChangedEventHandler {
}
private Matcher getKillProcessTriggerMatcher(final DataChangedEvent event)
{
- return Pattern.compile(ComputeNode.getKillProcessTriggerNodePath() +
"/([\\S]+):([\\S]+)$", Pattern.CASE_INSENSITIVE).matcher(event.getKey());
+ return Pattern.compile(ComputeNodePath.getKillProcessTriggerRootPath()
+ "/([\\S]+):([\\S]+)$", Pattern.CASE_INSENSITIVE).matcher(event.getKey());
}
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/ShowProcessListHandler.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/ShowProcessListHandler.java
index 8a0652730fa..230700cb89b 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/ShowProcessListHandler.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/dispatch/handler/global/ShowProcessListHandler.java
@@ -18,7 +18,7 @@
package org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global;
import
org.apache.shardingsphere.infra.executor.sql.process.lock.ProcessOperationLockRegistry;
-import org.apache.shardingsphere.metadata.persist.node.ComputeNode;
+import org.apache.shardingsphere.metadata.persist.node.ComputeNodePath;
import org.apache.shardingsphere.mode.event.DataChangedEvent;
import org.apache.shardingsphere.mode.event.DataChangedEvent.Type;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -36,7 +36,7 @@ public final class ShowProcessListHandler implements
DataChangedEventHandler {
@Override
public String getSubscribedKey() {
- return ComputeNode.getShowProcessListTriggerNodePath();
+ return ComputeNodePath.getShowProcessListTriggerRootPath();
}
@Override
@@ -62,6 +62,6 @@ public final class ShowProcessListHandler implements
DataChangedEventHandler {
}
private Matcher getShowProcessListTriggerMatcher(final DataChangedEvent
event) {
- return Pattern.compile(ComputeNode.getShowProcessListTriggerNodePath()
+ "/([\\S]+):([\\S]+)$", Pattern.CASE_INSENSITIVE).matcher(event.getKey());
+ return
Pattern.compile(ComputeNodePath.getShowProcessListTriggerRootPath() +
"/([\\S]+):([\\S]+)$", Pattern.CASE_INSENSITIVE).matcher(event.getKey());
}
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterProcessPersistCoordinator.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterProcessPersistCoordinator.java
index 083cb50f1cf..bc71eb39fa4 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterProcessPersistCoordinator.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/coordinator/ClusterProcessPersistCoordinator.java
@@ -22,7 +22,7 @@ import
org.apache.shardingsphere.infra.executor.sql.process.Process;
import org.apache.shardingsphere.infra.executor.sql.process.ProcessRegistry;
import
org.apache.shardingsphere.infra.executor.sql.process.yaml.swapper.YamlProcessListSwapper;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.metadata.persist.node.ComputeNode;
+import org.apache.shardingsphere.metadata.persist.node.ComputeNodePath;
import org.apache.shardingsphere.metadata.persist.node.ProcessNode;
import
org.apache.shardingsphere.mode.persist.coordinator.ProcessPersistCoordinator;
import org.apache.shardingsphere.mode.spi.PersistRepository;
@@ -45,11 +45,11 @@ public final class ClusterProcessPersistCoordinator
implements ProcessPersistCoo
if (!processes.isEmpty()) {
repository.persist(ProcessNode.getProcessListInstancePath(taskId,
instanceId), YamlEngine.marshal(swapper.swapToYamlConfiguration(processes)));
}
-
repository.delete(ComputeNode.getProcessTriggerInstanceNodePath(instanceId,
taskId));
+
repository.delete(ComputeNodePath.getShowProcessListTriggerPath(instanceId,
taskId));
}
@Override
public void cleanProcess(final String instanceId, final String processId) {
-
repository.delete(ComputeNode.getProcessKillInstanceIdNodePath(instanceId,
processId));
+
repository.delete(ComputeNodePath.getKillProcessTriggerPath(instanceId,
processId));
}
}
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterProcessPersistService.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterProcessPersistService.java
index 3bc48b500c1..f368b9a3267 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterProcessPersistService.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterProcessPersistService.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.infra.executor.sql.process.yaml.YamlProcessList
import
org.apache.shardingsphere.infra.executor.sql.process.yaml.swapper.YamlProcessListSwapper;
import org.apache.shardingsphere.infra.instance.metadata.InstanceType;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.metadata.persist.node.ComputeNode;
+import org.apache.shardingsphere.metadata.persist.node.ComputeNodePath;
import org.apache.shardingsphere.metadata.persist.node.ProcessNode;
import
org.apache.shardingsphere.mode.persist.service.divided.ProcessPersistService;
import org.apache.shardingsphere.mode.spi.PersistRepository;
@@ -71,7 +71,7 @@ public final class ClusterProcessPersistService implements
ProcessPersistService
private Collection<String> getShowProcessListTriggerPaths(final String
taskId) {
return Stream.of(InstanceType.values())
- .flatMap(each ->
repository.getChildrenKeys(ComputeNode.getOnlineNodePath(each)).stream().map(onlinePath
-> ComputeNode.getProcessTriggerInstanceNodePath(onlinePath, taskId)))
+ .flatMap(each ->
repository.getChildrenKeys(ComputeNodePath.getOnlinePath(each)).stream().map(instanceId
-> ComputeNodePath.getShowProcessListTriggerPath(instanceId, taskId)))
.collect(Collectors.toList());
}
@@ -91,7 +91,7 @@ public final class ClusterProcessPersistService implements
ProcessPersistService
private Collection<String> getKillProcessTriggerPaths(final String
processId) {
return Stream.of(InstanceType.values())
- .flatMap(each ->
repository.getChildrenKeys(ComputeNode.getOnlineNodePath(each)).stream().map(onlinePath
-> ComputeNode.getProcessKillInstanceIdNodePath(onlinePath, processId)))
+ .flatMap(each ->
repository.getChildrenKeys(ComputeNodePath.getOnlinePath(each)).stream().map(onlinePath
-> ComputeNodePath.getKillProcessTriggerPath(onlinePath, processId)))
.collect(Collectors.toList());
}
diff --git
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterProcessPersistServiceTest.java
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterProcessPersistServiceTest.java
index df844197ba6..2db1365b971 100644
---
a/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterProcessPersistServiceTest.java
+++
b/mode/type/cluster/core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterProcessPersistServiceTest.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.infra.executor.sql.process.yaml.YamlProcess;
import
org.apache.shardingsphere.infra.executor.sql.process.yaml.YamlProcessList;
import org.apache.shardingsphere.infra.instance.metadata.InstanceType;
import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import org.apache.shardingsphere.metadata.persist.node.ComputeNode;
+import org.apache.shardingsphere.metadata.persist.node.ComputeNodePath;
import
org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository;
import org.apache.shardingsphere.test.mock.AutoMockExtension;
import org.apache.shardingsphere.test.mock.StaticMockSettings;
@@ -73,8 +73,8 @@ class ClusterProcessPersistServiceTest {
}
private void assertGetProcessList() {
-
when(repository.getChildrenKeys(ComputeNode.getOnlineNodePath(InstanceType.JDBC))).thenReturn(Collections.emptyList());
-
when(repository.getChildrenKeys(ComputeNode.getOnlineNodePath(InstanceType.PROXY))).thenReturn(Collections.singletonList("abc"));
+
when(repository.getChildrenKeys(ComputeNodePath.getOnlinePath(InstanceType.JDBC))).thenReturn(Collections.emptyList());
+
when(repository.getChildrenKeys(ComputeNodePath.getOnlinePath(InstanceType.PROXY))).thenReturn(Collections.singletonList("abc"));
when(repository.getChildrenKeys(contains("/execution_nodes/"))).thenReturn(Collections.singletonList("abc"));
when(repository.query(contains("/execution_nodes/"))).thenReturn(YamlEngine.marshal(createYamlProcessList()));
Collection<Process> actual = processPersistService.getProcessList();
@@ -107,8 +107,8 @@ class ClusterProcessPersistServiceTest {
}
private void assertKillProcess() {
-
when(repository.getChildrenKeys(ComputeNode.getOnlineNodePath(InstanceType.JDBC))).thenReturn(Collections.emptyList());
-
when(repository.getChildrenKeys(ComputeNode.getOnlineNodePath(InstanceType.PROXY))).thenReturn(Collections.singletonList("abc"));
+
when(repository.getChildrenKeys(ComputeNodePath.getOnlinePath(InstanceType.JDBC))).thenReturn(Collections.emptyList());
+
when(repository.getChildrenKeys(ComputeNodePath.getOnlinePath(InstanceType.PROXY))).thenReturn(Collections.singletonList("abc"));
processPersistService.killProcess("foo_process_id");
verify(repository).persist("/nodes/compute_nodes/kill_process_trigger/abc:foo_process_id",
"");
}