This is an automated email from the ASF dual-hosted git repository.
mikexue pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/eventmesh-dashboard.git
The following commit(s) were added to refs/heads/main by this push:
new 70e1b41 Merge eventmesh-dashboard for packaging and publishing
70e1b41 is described below
commit 70e1b411123078591873800883315794a9a9c02b
Author: githublaohu <[email protected]>
AuthorDate: Thu Dec 18 10:32:27 2025 +0800
Merge eventmesh-dashboard for packaging and publishing
* fix(*): 1. 合并代码, 2. 处理格式问题
* fix(*):1. 提升插件版本 2. 添加协议头
* fix(console):1. 设计 report 模块 2. 开 es,open模块,3. 开发 report 基本标准 4. 开发
iotdb模块
* fix(*):1. 保存更新,因为 rocketmq-exporter 官方文档 与 rocketmq-exporter
源码文档不一致,需要安装源码文档定义数据对象
* fix(console): 1. 完成 db cluster 关系 2. 两个数据 mock 模型
* fix(*):1. 完成 sync 模块集成测试 2. 重构 metadata 关系
* fix(*):1. check style
* fix(*) 1. 没有解决 地址 与 端口问题 2. 没有解决 自动化部署地址问题
* fix(*): 1. 解决冲突
* fix(*):1. 解决冲突
* fix(*):1. 解决样式问题
* 1. 创建 dist 模块,发布问题,2. 完成地址服务 3. config问题还在解决 4. runtime唯一config在解决 5.
runtime 单独部署行为重新设计
* fix(*)1: 解决冲突
* fix(:):1. 解决冲突
---------
Co-authored-by: jie <[email protected]>
Co-authored-by: [email protected] <[email protected]>
---
README.zh-CN.md | 2 +-
eventmesh-dashboard-common/pom.xml | 1 -
.../common/enums/ClusterSyncMetadataEnum.java | 2 +-
.../dashboard/common/enums/ClusterType.java | 180 +++++++++++++++----
.../dashboard/common/enums/DeployStatusType.java | 6 +
.../dashboard/common/util/ClasspathScanner.java | 2 +-
.../common/utils/ClusterTypeRelationship.java | 1 +
eventmesh-dashboard-console/pom.xml | 24 +--
.../controller/agent/AgentActionController.java | 150 +++++++++++-----
.../controller/agent/AgentCheckRuntimeVO.java | 4 +
.../controller/deploy/ClusterCycleController.java | 2 +-
.../controller/deploy/CreateCycleService.java | 5 +-
.../create/CreateClusterByDeployScriptHandler.java | 16 +-
.../console/domain/ClusterAndRuntimeDomain.java | 8 +
.../domain/Impl/ClusterAndRuntimeDomainImpl.java | 200 +++++++++++++++++----
.../console/entity/function/ConfigEntity.java | 1 +
.../function/ConfigTemplateEntity.java} | 26 +--
.../console/mapper/cluster/ClusterMapper.java | 4 +-
.../mapper/cluster/ClusterRelationshipMapper.java | 18 +-
.../console/mapper/cluster/RuntimeMapper.java | 6 +
.../console/mapper/function/ConfigMapper.java | 4 +-
.../mapper/function/ConfigTemplateMapper.java | 47 +++++
.../ClusterAndRuntimeDomainQO.java | 28 +--
.../ClusterAndRuntimeOfRelationshipDO.java | 17 ++
.../QueryTreeByChildClusterIdDO.java | 28 ++-
.../DO/service/function/config/CopyConfigDO.java | 17 +-
...ryRelationClusterByClusterIdListAndTypeQO.java} | 13 +-
.../model/QO/function/config/CopyConfigQO.java | 17 +-
.../create/CreateClusterByDeployScriptDO.java | 3 +
.../cluster/ClusterRelationshipService.java | 2 +
.../console/service/cluster/ClusterService.java | 4 +-
.../impl/ClusterRelationshipServiceImpl.java | 5 +
.../service/cluster/impl/ClusterServiceImpl.java | 4 +-
.../service/deploy/impl/PortServiceImpl.java | 12 +-
.../console/service/function/ConfigService.java | 7 +-
.../service/function/ConfigTemplateService.java} | 20 ++-
.../service/function/Impl/ConfigServiceImpl.java | 12 +-
.../function/Impl/ConfigTemplateServiceImpl.java | 47 +++++
.../console/spring/support/FunctionManage.java | 6 +
.../support/address/AbstractAddressService.java | 58 ++++++
.../support/address/AddressManage.java} | 42 ++---
.../spring/support/address/AddressService.java | 36 ++--
.../spring/support/address/AddressServiceIPDO.java | 41 ++---
.../support/address/AddressServiceResult.java | 32 ++--
.../address/RocketMQBrokerAddressService.java | 88 +++++++++
.../agent/AgentActionControllerUtils.java | 43 +++++
.../src/main/resources/eventmesh-dashboard.sql | 2 +-
.../apache/eventmesh/dashboard/console/Test1.java | 11 +-
.../domain/ClusterAndRuntimeDomainImplTest.java | 18 ++
eventmesh-dashboard-core/pom.xml | 5 +-
.../core/function/multinetwork/ClusterPort.java | 23 ++-
.../core/function/multinetwork/PortMetadata.java | 5 +
eventmesh-dashboard-dist/README.md | 0
eventmesh-dashboard-dist/ReleaseKnowStreaming.xml | 103 +++++++++++
.../docker}/Dockerfile | 0
eventmesh-dashboard-dist/pom.xml | 67 +++++++
eventmesh-dashboard-observe/pom.xml | 1 -
eventmesh-dashboard-service/pom.xml | 3 +-
pom.xml | 3 +-
59 files changed, 1206 insertions(+), 326 deletions(-)
diff --git a/README.zh-CN.md b/README.zh-CN.md
index ea1ae6f..bc96479 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -66,7 +66,7 @@ crontab -e
```
cd eventmesh-dashboard
-./mvnw clean package
+./mvnw -Prelease-package -Dmaven.test.skip=true clean install -U
```
> TODO download mysql-connector-j manually
diff --git a/eventmesh-dashboard-common/pom.xml
b/eventmesh-dashboard-common/pom.xml
index 0057871..074849a 100644
--- a/eventmesh-dashboard-common/pom.xml
+++ b/eventmesh-dashboard-common/pom.xml
@@ -26,7 +26,6 @@
<version>0.0.1-SNAPSHOT</version>
</parent>
- <groupId>org.apache.eventmesh.dashboard.common</groupId>
<artifactId>eventmesh-dashboard-common</artifactId>
<properties>
diff --git
a/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/enums/ClusterSyncMetadataEnum.java
b/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/enums/ClusterSyncMetadataEnum.java
index dac75f9..6d71aad 100644
---
a/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/enums/ClusterSyncMetadataEnum.java
+++
b/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/enums/ClusterSyncMetadataEnum.java
@@ -31,6 +31,7 @@ import lombok.Getter;
/**
* 集群的特性
*/
+@Getter
public enum ClusterSyncMetadataEnum {
@@ -81,7 +82,6 @@ public enum ClusterSyncMetadataEnum {
;
private static final Map<ClusterType, ClusterSyncMetadata>
SYNC_METADATA_CONCURRENT_HASH_MAP = new ConcurrentHashMap<>();
- @Getter
private ClusterSyncMetadata clusterSyncMetadata;
ClusterSyncMetadataEnum(ClusterSyncMetadata clusterSyncMetadata) {
diff --git
a/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/enums/ClusterType.java
b/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/enums/ClusterType.java
index af16214..103d5a7 100644
---
a/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/enums/ClusterType.java
+++
b/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/enums/ClusterType.java
@@ -18,11 +18,15 @@
package org.apache.eventmesh.dashboard.common.enums;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Objects;
+import java.util.concurrent.atomic.AtomicBoolean;
import lombok.Getter;
@@ -103,26 +107,26 @@ public enum ClusterType {
EVENTMESH_CLUSTER(EVENTMESH, EVENTMESH, CLUSTER, DEFINITION,
RemotingType.EVENT_MESH_RUNTIME),
- EVENTMESH_RUNTIME(EVENTMESH, EVENTMESH, RUNTIME, DEFAULT,
RemotingType.EVENT_MESH_RUNTIME),
+ EVENTMESH_RUNTIME(EVENTMESH, EVENTMESH_CLUSTER, RUNTIME, DEFAULT,
RemotingType.EVENT_MESH_RUNTIME),
- EVENTMESH_META_ETCD(EVENTMESH, EVENTMESH, META, META_TYPE_ETCD,
RemotingType.EVENT_MESH_ETCD),
+ EVENTMESH_META_ETCD(EVENTMESH, EVENTMESH_CLUSTER, META, META_TYPE_ETCD,
RemotingType.EVENT_MESH_ETCD),
- EVENTMESH_META_NACOS(EVENTMESH, EVENTMESH, META, META_TYPE_NACOS,
RemotingType.EVENT_MESH_NACOS),
+ EVENTMESH_META_NACOS(EVENTMESH, EVENTMESH_CLUSTER, META, META_TYPE_NACOS,
RemotingType.EVENT_MESH_NACOS),
- EVENTMESH_JVM_CLUSTER(EVENTMESH, EVENTMESH_JVM, CLUSTER, DEFINITION,
RemotingType.EVENT_MESH_RUNTIME),
+ EVENTMESH_JVM_CLUSTER(EVENTMESH, EVENTMESH_JVM, CLUSTER, DEFINITION,
RemotingType.JVM),
- EVENTMESH_JVM_RUNTIME(EVENTMESH, EVENTMESH_JVM, RUNTIME, DEFAULT,
RemotingType.EVENT_MESH_RUNTIME),
+ EVENTMESH_JVM_RUNTIME(EVENTMESH, EVENTMESH_JVM_CLUSTER, RUNTIME, DEFAULT,
RemotingType.JVM),
- EVENTMESH_JVM_META(EVENTMESH, EVENTMESH_JVM, META, META_TYPE_JVM,
RemotingType.JVM),
+ EVENTMESH_JVM_META(EVENTMESH, EVENTMESH_JVM_CLUSTER, META, META_TYPE_JVM,
RemotingType.JVM),
STORAGE_ROCKETMQ(ClusterType.STORAGE.code + 1),
STORAGE_ROCKETMQ_CLUSTER(STORAGE, STORAGE_ROCKETMQ, CLUSTER, DEFINITION,
RemotingType.ROCKETMQ),
- STORAGE_ROCKETMQ_NAMESERVER(STORAGE, STORAGE_ROCKETMQ, META, DEFAULT,
RemotingType.ROCKETMQ_NAMESERVER),
+ STORAGE_ROCKETMQ_NAMESERVER(STORAGE, STORAGE_ROCKETMQ_CLUSTER, META,
DEFAULT, RemotingType.ROCKETMQ_NAMESERVER),
- STORAGE_ROCKETMQ_BROKER(STORAGE, STORAGE_ROCKETMQ, RUNTIME, DEFINITION,
RemotingType.ROCKETMQ),
+ STORAGE_ROCKETMQ_BROKER(STORAGE, STORAGE_ROCKETMQ_CLUSTER, RUNTIME,
DEFINITION, RemotingType.ROCKETMQ),
STORAGE_ROCKETMQ_BROKER_MAIN_SLAVE(STORAGE, STORAGE_ROCKETMQ_BROKER,
RUNTIME, DEFAULT, RemotingType.ROCKETMQ),
@@ -133,34 +137,34 @@ public enum ClusterType {
STORAGE_KAFKA_CLUSTER(STORAGE, STORAGE_KAFKA, CLUSTER, DEFINITION,
RemotingType.KAFKA),
- STORAGE_KAFKA_ZK(STORAGE, STORAGE_KAFKA, META, META_TYPE_ZK,
RemotingType.ZK),
+ STORAGE_KAFKA_ZK(STORAGE, STORAGE_KAFKA_CLUSTER, META, META_TYPE_ZK,
RemotingType.ZK),
- STORAGE_KAFKA_RAFT(STORAGE, STORAGE_KAFKA, META_AND_RUNTIME,
STORAGE_KAFKA, RemotingType.KAFKA),
+ STORAGE_KAFKA_RAFT(STORAGE, STORAGE_KAFKA_CLUSTER, META_AND_RUNTIME,
STORAGE_KAFKA, RemotingType.KAFKA),
- STORAGE_KAFKA_BROKER(STORAGE, STORAGE_KAFKA, RUNTIME, DEFAULT,
RemotingType.KAFKA),
+ STORAGE_KAFKA_BROKER(STORAGE, STORAGE_KAFKA_CLUSTER, RUNTIME, DEFAULT,
RemotingType.KAFKA),
STORAGE_REDIS(STORAGE_KAFKA.code + 1),
STORAGE_REDIS_CLUSTER(STORAGE, STORAGE_REDIS, CLUSTER, DEFINITION,
RemotingType.REDIS),
- STORAGE_REDIS_BROKER(STORAGE, STORAGE_REDIS, RUNTIME, DEFAULT,
RemotingType.REDIS),
+ STORAGE_REDIS_BROKER(STORAGE, STORAGE_REDIS_CLUSTER, RUNTIME, DEFAULT,
RemotingType.REDIS),
STORAGE_JVM(STORAGE_REDIS.code + 1),
STORAGE_JVM_CLUSTER(STORAGE, STORAGE_JVM, CLUSTER, DEFINITION,
RemotingType.JVM),
- STORAGE_JVM_META(STORAGE, STORAGE_JVM, META, DEFAULT, RemotingType.JVM),
+ STORAGE_JVM_META(STORAGE, STORAGE_JVM_CLUSTER, META, DEFAULT,
RemotingType.JVM),
- STORAGE_JVM_BROKER(STORAGE, STORAGE_JVM, RUNTIME, DEFAULT,
RemotingType.JVM),
+ STORAGE_JVM_BROKER(STORAGE, STORAGE_JVM_CLUSTER, RUNTIME, DEFAULT,
RemotingType.JVM),
STORAGE_JVM_CAP(STORAGE_REDIS.code + 1),
STORAGE_JVM_CAP_CLUSTER(STORAGE, STORAGE_JVM_CAP, CLUSTER, DEFINITION,
RemotingType.JVM),
- STORAGE_JVM_CAP_BROKER(STORAGE, STORAGE_JVM_CAP, META_AND_RUNTIME,
DEFAULT, RemotingType.JVM),
+ STORAGE_JVM_CAP_BROKER(STORAGE, STORAGE_JVM_CAP_CLUSTER, META_AND_RUNTIME,
DEFAULT, RemotingType.JVM),
- STORAGE_JVM_CAP_META(STORAGE, STORAGE_JVM_CAP, META, DEFAULT,
RemotingType.JVM),
+ STORAGE_JVM_CAP_META(STORAGE, STORAGE_JVM_CAP_CLUSTER, META, DEFAULT,
RemotingType.JVM),
;
@@ -172,8 +176,27 @@ public enum ClusterType {
private static final List<ClusterType> STORAGE_META_RUNTIME_TYPE_LIST =
new ArrayList<>();
+ private static final Map<ClusterType, ClusterTypeChild>
CLUSTER_TYPE_CLUSTER_TYPE_CHILD_MAP = new HashMap<>();
+
static {
for (ClusterType clusterType : ClusterType.values()) {
+ if (Objects.isNull(clusterType.assemblyName)) {
+ continue;
+ }
+ ClusterTypeChild clusterTypeChild =
+
CLUSTER_TYPE_CLUSTER_TYPE_CHILD_MAP.computeIfAbsent(clusterType.assemblyName, k
-> new ClusterTypeChild());
+ clusterType.assemblyName.clusterTypeChild = clusterTypeChild;
+
+ clusterType.clusterTypeChild =
CLUSTER_TYPE_CLUSTER_TYPE_CHILD_MAP.computeIfAbsent(clusterType, k -> new
ClusterTypeChild());
+ if (clusterType.isMeta()) {
+ clusterTypeChild.metaClusterType.add(clusterType);
+ } else if (clusterType.isRuntime()) {
+ clusterTypeChild.runtimeClusterType.add(clusterType);
+ } else if (clusterType.isDefinition()) {
+ clusterTypeChild.definitionClusterType.add(clusterType);
+ } else if (clusterType.isCluster()) {
+ clusterTypeChild.clusterType.add(clusterType);
+ }
if (clusterType.isStorageCluster()) {
STORAGE_MAIN_CLUSTER_TYPE_LIST.add(clusterType);
}
@@ -186,6 +209,11 @@ public enum ClusterType {
if (clusterType.isMetaAndRuntime()) {
STORAGE_META_RUNTIME_TYPE_LIST.add(clusterType);
}
+
+ }
+ for (ClusterType clusterType : ClusterType.values()) {
+ clusterType.getHigher();
+ clusterType.injection();
}
}
@@ -217,6 +245,9 @@ public enum ClusterType {
@Getter
private int code;
private ClusterType higherType;
+
+ private ClusterTypeChild clusterTypeChild;
+
private List<ClusterType> mainClusterType;
private List<ClusterType> metaClusterType;
private List<ClusterType> runtimeClusterType;
@@ -274,6 +305,13 @@ public enum ClusterType {
return this.assemblyNodeType.equals(META);
}
+ public boolean isCluster() {
+ if (Objects.isNull(this.assemblyNodeType)) {
+ return false;
+ }
+ return this.assemblyNodeType.equals(CLUSTER);
+ }
+
public boolean isMetaAndRuntime() {
if (Objects.isNull(this.eventmeshNodeType)) {
return false;
@@ -338,6 +376,18 @@ public enum ClusterType {
return list;
}
+ public List<ClusterType> getThisInAllRuntimeCluster() {
+ return this.clusterTypeChild.allRuntimeClusterType;
+ }
+
+ public List<ClusterType> getFrameworkInAllMetaCluster() {
+ return this.higherType.clusterTypeChild.allMetaClusterType;
+ }
+
+ public List<ClusterType> getFrameworkInAllRuntimeCluster() {
+ return this.higherType.clusterTypeChild.allRuntimeClusterType;
+ }
+
public List<ClusterType> getMainClusterType() {
return this.getThisClusterType(CLUSTER, this.mainClusterType,
"mainClusterType");
@@ -351,30 +401,74 @@ public enum ClusterType {
return this.getThisClusterType(RUNTIME, this.runtimeClusterType,
"runtimeClusterType");
}
+ void injection() {
+ if (Objects.isNull(this.clusterTypeChild)) {
+ return;
+ }
+ if (Objects.isNull(this.higherType)) {
+ return;
+ }
+ if (this.clusterTypeChild.isRuntimeAdd.get()) {
+ return;
+ }
+ if (Objects.equals(this.higherType, this)) {
+ this.clusterTypeChild.isRuntimeAdd.set(true);
+ return;
+ }
+ this.clusterTypeChild.isRuntimeAdd.set(true);
+ this.assemblyName.injection(List.of(this), this.assemblyNodeType);
+ }
+
+
+ void injection(List<ClusterType> list, ClusterType clusterType) {
+ if (CollectionUtils.isEmpty(list)) {
+ return;
+ }
+ if (Objects.equals(clusterType, META)) {
+ this.clusterTypeChild.allMetaClusterType.addAll(list);
+ return;
+ }
+ if (Objects.equals(clusterType, CLUSTER)) {
+ this.clusterTypeChild.allClusterType.addAll(list);
+ return;
+ }
+ if (Objects.equals(clusterType, RUNTIME)) {
+ this.clusterTypeChild.allRuntimeClusterType.addAll(list);
+ }
+ if (Objects.equals(this.higherType, this)) {
+ return;
+ }
+ this.assemblyName.injection(list, clusterType);
+ }
+
/**
*
*/
public ClusterType getHigher() {
- if (Objects.isNull(this.higherType)) {
- for (ClusterType allClusterType : ClusterType.values()) {
- if (!Objects.equals(allClusterType.eventmeshNodeType,
this.eventmeshNodeType)
- || !Objects.equals(allClusterType.assemblyName,
this.assemblyName)) {
- continue;
- }
- if (!Objects.equals(allClusterType.assemblyNodeType, CLUSTER))
{
- continue;
- }
- if (!Objects.equals(allClusterType.assemblyBusiness,
DEFINITION)) {
- continue;
- }
- this.higherType = allClusterType;
+ if (Objects.nonNull(this.higherType)) {
+ return this.higherType;
+ }
+ if (this.code != 0) {
+ this.higherType = this;
+ return this.higherType;
+ }
+ if (this.eventmeshNodeType == DEFAULT) {
+ this.higherType = this;
+ return this.higherType;
+ }
+ if (Objects.isNull(this.assemblyName)) {
+ return this;
+ }
+ ClusterType assemblyName = this.assemblyName;
+ ClusterType lastAssemblyName = this;
+ for (; ; ) {
+ if (Objects.isNull(assemblyName.assemblyName)) {
+ this.higherType = lastAssemblyName;
break;
}
- if (Objects.isNull(this.higherType)) {
- throw new RuntimeException("higher type is null, current
type:" + this);
- }
+ lastAssemblyName = assemblyName;
+ assemblyName = assemblyName.assemblyName;
}
-
return this.higherType;
}
@@ -414,4 +508,24 @@ public enum ClusterType {
}
+ static class ClusterTypeChild {
+
+ List<ClusterType> metaClusterType = new ArrayList<>();
+
+ List<ClusterType> runtimeClusterType = new ArrayList<>();
+
+ AtomicBoolean isRuntimeAdd = new AtomicBoolean(false);
+
+ List<ClusterType> definitionClusterType = new ArrayList<>();
+
+ List<ClusterType> clusterType = new ArrayList<>();
+
+ List<ClusterType> allClusterType = new ArrayList<>();
+
+ List<ClusterType> allMetaClusterType = new ArrayList<>();
+
+ List<ClusterType> allRuntimeClusterType = new ArrayList<>();
+
+ }
+
}
diff --git
a/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/enums/DeployStatusType.java
b/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/enums/DeployStatusType.java
index 79c047e..30e2a73 100644
---
a/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/enums/DeployStatusType.java
+++
b/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/enums/DeployStatusType.java
@@ -112,6 +112,12 @@ public enum DeployStatusType {
UPDATE_FULL_FAIL,
+ CHECKING,
+
+ CHECK_WAIT,
+
+ CHECKING_FAILED,
+
PAUSE,
PAUSE_WAIT,
diff --git
a/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/util/ClasspathScanner.java
b/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/util/ClasspathScanner.java
index d57291b..2d92dbd 100644
---
a/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/util/ClasspathScanner.java
+++
b/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/util/ClasspathScanner.java
@@ -120,7 +120,7 @@ public class ClasspathScanner {
}
private String createLocationPattern() {
- StringBuffer stringBuffer = new StringBuffer();
+ StringBuilder stringBuffer = new StringBuilder();
stringBuffer.append("classpath*:./");
this.baseString = base.getPackage().getName().replace('.', '/');
stringBuffer.append(this.baseString);
diff --git
a/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/utils/ClusterTypeRelationship.java
b/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/utils/ClusterTypeRelationship.java
index 3159cf3..8c7e03f 100644
---
a/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/utils/ClusterTypeRelationship.java
+++
b/eventmesh-dashboard-common/src/main/java/org/apache/eventmesh/dashboard/common/utils/ClusterTypeRelationship.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
+@Deprecated
public class ClusterTypeRelationship {
private static final ClusterTypeRelationship INSTANCE = new
ClusterTypeRelationship();
diff --git a/eventmesh-dashboard-console/pom.xml
b/eventmesh-dashboard-console/pom.xml
index 0ac59e5..7ec18a0 100644
--- a/eventmesh-dashboard-console/pom.xml
+++ b/eventmesh-dashboard-console/pom.xml
@@ -27,7 +27,6 @@
<version>0.0.1-SNAPSHOT</version>
</parent>
- <groupId>org.apache.eventmesh.dashboard.console</groupId>
<artifactId>eventmesh-dashboard-console</artifactId>
<properties>
@@ -41,17 +40,17 @@
<dependencies>
<!-- EventMesh Dashboard modules -->
<dependency>
- <groupId>org.apache.eventmesh.dashboard.core</groupId>
+ <groupId>org.apache.eventmesh.dashboard</groupId>
<artifactId>eventmesh-dashboard-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
- <groupId>org.apache.eventmesh.dashboard.common</groupId>
+ <groupId>org.apache.eventmesh.dashboard</groupId>
<artifactId>eventmesh-dashboard-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
- <groupId>org.apache.eventmesh.dashboard.service</groupId>
+ <groupId>org.apache.eventmesh.dashboard</groupId>
<artifactId>eventmesh-dashboard-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
@@ -219,23 +218,6 @@
<build>
<plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <version>${spring-boot.version}</version>
- <configuration>
-
<mainClass>org.apache.eventmesh.dashboard.console.EventMeshDashboardApplication</mainClass>
- </configuration>
- <executions>
- <execution>
- <id>repackage</id>
- <goals>
- <goal>repackage</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/agent/AgentActionController.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/agent/AgentActionController.java
index eaae346..56b2744 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/agent/AgentActionController.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/agent/AgentActionController.java
@@ -22,19 +22,29 @@ import
org.apache.eventmesh.dashboard.common.enums.ClusterFramework;
import org.apache.eventmesh.dashboard.common.enums.ClusterSyncMetadataEnum;
import org.apache.eventmesh.dashboard.common.enums.ClusterType;
import org.apache.eventmesh.dashboard.common.enums.MetadataType;
+import org.apache.eventmesh.dashboard.console.domain.ClusterAndRuntimeDomain;
import org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
import org.apache.eventmesh.dashboard.console.entity.cluster.RuntimeEntity;
import org.apache.eventmesh.dashboard.console.entity.function.ConfigEntity;
-import
org.apache.eventmesh.dashboard.console.model.DO.runtime.QueryRuntimeByBigExpandClusterDO;
+import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.ClusterAndRuntimeOfRelationshipDO;
+import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.QueryTreeByChildClusterIdDO;
import
org.apache.eventmesh.dashboard.console.model.dto.agent.AgentStartActionDTO;
import org.apache.eventmesh.dashboard.console.service.cluster.ClusterService;
import org.apache.eventmesh.dashboard.console.service.cluster.RuntimeService;
import org.apache.eventmesh.dashboard.console.service.function.ConfigService;
+import
org.apache.eventmesh.dashboard.console.spring.support.address.AddressManage;
+import
org.apache.eventmesh.dashboard.console.spring.support.address.AddressService;
+import
org.apache.eventmesh.dashboard.console.spring.support.address.AddressServiceIPDO;
+import
org.apache.eventmesh.dashboard.console.spring.support.address.AddressServiceResult;
+import
org.apache.eventmesh.dashboard.console.utils.data.controller.agent.AgentActionControllerUtils;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Set;
import javax.validation.Valid;
@@ -60,6 +70,17 @@ public class AgentActionController {
@Autowired
private RuntimeService runtimeService;
+ @Autowired
+ private ClusterAndRuntimeDomain clusterAndRuntimeDomain;
+
+ @Autowired
+ private AddressManage addressManage;
+
+ /**
+ * TODO
+ * 启动时,无法确认其他服务是否启动
+ * 只有在不停地 check 时,可以确认依赖服务已经启动
+ */
@PostMapping("agentStartAction")
public AgentStartActionVO agentStartAction(@RequestBody @Valid
AgentStartActionDTO data) {
@@ -82,37 +103,20 @@ public class AgentActionController {
updateRuntimeEntity.setHost(data.getNodeAddress());
updateRuntimeEntity.setPodHost(data.getLocalAddress());
this.runtimeService.updateAddressByRuntimeId(updateRuntimeEntity);
- // 识别架构,修改 需要 修改 config 相关配置 , 端口
-
- // TODO 识别 架构方式,修改 cap 架构配置 ,
-
- // 依赖组件,在 agentCheckRuntime ,
-
- // 识别架构, 获得
AgentStartActionVO agentStartActionVO = new AgentStartActionVO();
agentStartActionVO.setClusterType(clusterEntity.getClusterType().toString());
- agentStartActionVO.setCheck(clusterEntity.getClusterType().isMeta());
-
- ConfigEntity configEntity = new ConfigEntity();
- configEntity.setInstanceId(clusterEntity.getId());
- configEntity.setInstanceType(MetadataType.CLUSTER);
- List<ConfigEntity> configEntityList =
this.configService.queryByInstanceId(configEntity);
- Map<String, String> configMap = new HashMap<String, String>();
- configEntityList.forEach(config -> {
- configMap.put(config.getConfigName(), config.getConfigValue());
- });
-
- configEntity = new ConfigEntity();
- configEntity.setInstanceId(runtimeEntity.getId());
- configEntity.setInstanceType(MetadataType.RUNTIME);
- this.configService.queryByInstanceId(configEntity);
- configEntityList.forEach(config -> {
- configMap.put(config.getConfigName(), config.getConfigValue());
- });
-
- agentStartActionVO.setConfigMap(configMap);
-
+ ClusterType clusterType = clusterEntity.getClusterType();
+ ClusterSyncMetadataEnum.getClusterFramework(clusterType);
+ if (!clusterType.isMeta()) {
+ return agentStartActionVO;
+ }
+ ClusterFramework clusterFramework =
ClusterSyncMetadataEnum.getClusterFramework(clusterType);
+ if (!clusterFramework.isAP()) {
+ return agentStartActionVO;
+ }
+ agentStartActionVO.setCheck(true);
+ agentStartActionVO.setConfigMap(this.queryConfig(runtimeEntity,
clusterEntity));
return agentStartActionVO;
}
@@ -124,33 +128,85 @@ public class AgentActionController {
clusterEntity.setId(data.getClusterId());
clusterEntity = this.clusterService.queryClusterById(clusterEntity);
- AgentCheckRuntimeVO agentCheckRuntimeVO = new AgentCheckRuntimeVO();
-
- QueryRuntimeByBigExpandClusterDO queryRuntimeByBigExpandClusterDO =
-
QueryRuntimeByBigExpandClusterDO.builder().followClusterId(clusterEntity.getId())
-
.queryClusterTypeList(clusterEntity.getClusterType().getMetaClusterType()).build();
+ ClusterType clusterType = clusterEntity.getClusterType();
- List<RuntimeEntity> runtimeEntityList =
this.runtimeService.queryMetaRuntimeByStorageClusterId(queryRuntimeByBigExpandClusterDO);
+ AddressService addressService =
addressManage.getAddressService(clusterType);
+ RuntimeEntity remoteRuntimeEntity = new RuntimeEntity();
+ remoteRuntimeEntity.setClusterId(clusterEntity.getId());
- ClusterType clusterType = clusterEntity.getClusterType();
+ AddressServiceResult addressServiceResult = new AddressServiceResult();
if (clusterType.isEventMethRuntime()) {
- queryRuntimeByBigExpandClusterDO =
QueryRuntimeByBigExpandClusterDO.builder().followClusterId(clusterEntity.getId())
-
.storageMetaClusterTypeList(ClusterType.getStorageMetaRuntimeCluster()).build();
- //如果是 eventmesh 集群,name需要查询 存储集群的 runtime 是否启动
- // 如果识别 meta 的可用度
- runtimeEntityList =
this.runtimeService.queryRuntimeByBigExpandCluster(queryRuntimeByBigExpandClusterDO);
+ //
+
this.clusterAndRuntimeDomain.getAllClusterAndRuntimeByCluster(null);
} else {
ClusterFramework clusterFramework =
ClusterSyncMetadataEnum.getClusterFramework(clusterType);
- if (clusterFramework.isCAP() && clusterType.isMeta()) {
- //
+ if ((clusterFramework.isCAP() && clusterType.isMeta())) {
+ List<RuntimeEntity> runtimeEntities =
this.runtimeService.queryRuntimeToFrontByClusterId(remoteRuntimeEntity);
+ addressServiceResult =
addressService.createCapAddress(AgentActionControllerUtils.byRuntimeList(runtimeEntities));
} else if (clusterType.isMetaAndRuntime()) {
- //
+ List<RuntimeEntity> runtimeEntities =
this.runtimeService.queryRuntimeToFrontByClusterId(remoteRuntimeEntity);
+ addressServiceResult =
addressService.createCapAddress(AgentActionControllerUtils.byRuntimeList(runtimeEntities));
} else if (clusterType.isRuntime()) {
- //
+ // 需要 得到 集群的依赖组件检查依赖 runtime 是否运行
+ // 检查依赖 runtime 是否运行
+ QueryTreeByChildClusterIdDO queryTreeByChildClusterIdDO = new
QueryTreeByChildClusterIdDO();
+ queryTreeByChildClusterIdDO.setClusterEntity(clusterEntity);
+
queryTreeByChildClusterIdDO.setRootClusterTypeList(Set.of(clusterType.getHigher()));
+ queryTreeByChildClusterIdDO.setOnlyClusterTypeList(new
HashSet<>(clusterType.getHigher().getMetaClusterType()));
+
+ ClusterAndRuntimeOfRelationshipDO
clusterAndRuntimeOfRelationshipDo =
+
this.clusterAndRuntimeDomain.queryTreeByChildClusterId(queryTreeByChildClusterIdDO);
+ AddressServiceIPDO addressServiceDo =
+
AgentActionControllerUtils.byClusterAndRuntimeOfRelationshipDO(clusterAndRuntimeOfRelationshipDo);
+ addressServiceResult =
addressService.createRegisterAddress(addressServiceDo);
}
-
}
-
+ AgentCheckRuntimeVO agentCheckRuntimeVO = new AgentCheckRuntimeVO();
+ if (!addressServiceResult.isCheckSuccess()) {
+ agentCheckRuntimeVO.setSuccess(false);
+ } else {
+ ClusterEntity tmpClusterEntity = clusterEntity;
+ // TODO 这个有一个问题,这些配置地址,是写入 cluster ,还是 写入 runtime, 写入 cluster
+ List<ConfigEntity> configEntityList =
addressServiceResult.getConfigEntities().stream().filter((value) -> {
+ if (Objects.isNull(value.getConfigName())) {
+ return false;
+ } else {
+ value.setInstanceId(tmpClusterEntity.getId());
+ value.setInstanceType(MetadataType.CLUSTER);
+ return true;
+ }
+ }).toList();
+ this.configService.updateValueByConfigList(configEntityList);
+
agentCheckRuntimeVO.setConfigMap(this.queryConfig(remoteRuntimeEntity,
clusterEntity));
+ }
return agentCheckRuntimeVO;
}
+
+
+ private Map<String, String> queryConfig(RuntimeEntity runtimeEntity,
ClusterEntity clusterEntity) {
+ List<ConfigEntity> queryConfigConfigList = new ArrayList<>(2);
+
+ ConfigEntity configEntity = new ConfigEntity();
+ configEntity.setInstanceId(clusterEntity.getId());
+ configEntity.setInstanceType(MetadataType.CLUSTER);
+
+ queryConfigConfigList.add(configEntity);
+
+ configEntity = new ConfigEntity();
+ configEntity.setInstanceId(runtimeEntity.getId());
+ configEntity.setInstanceType(MetadataType.RUNTIME);
+
+ queryConfigConfigList.add(configEntity);
+
+ Map<String, String> configMap = new HashMap<>();
+ queryConfigConfigList.forEach(value -> {
+ List<ConfigEntity> configEntityList =
this.configService.queryByInstanceId(value);
+ configEntityList.forEach(config -> {
+ configMap.put(config.getConfigName(), config.getConfigValue());
+ });
+ });
+
+ return configMap;
+ }
+
}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/agent/AgentCheckRuntimeVO.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/agent/AgentCheckRuntimeVO.java
index 09fdf5d..43ee2c6 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/agent/AgentCheckRuntimeVO.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/agent/AgentCheckRuntimeVO.java
@@ -17,6 +17,8 @@
package org.apache.eventmesh.dashboard.console.controller.agent;
+import java.util.Map;
+
import lombok.Data;
@Data
@@ -24,4 +26,6 @@ public class AgentCheckRuntimeVO {
private boolean success;
+ private Map<String, String> configMap;
+
}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/deploy/ClusterCycleController.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/deploy/ClusterCycleController.java
index 619fa10..c0172ee 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/deploy/ClusterCycleController.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/deploy/ClusterCycleController.java
@@ -150,7 +150,7 @@ public class ClusterCycleController {
}
/**
- * 这里应该上传一个文件
+ * 这里应该上传一个文件,可以通过前端把文件数据读出来,然后写入字段里面
*/
@PostMapping("createClusterByFullMetadata")
public void createClusterByFullMetadata(@RequestBody @Validated
CreateClusterByFullMetadataDTO dto) {
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/deploy/CreateCycleService.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/deploy/CreateCycleService.java
index 1dd887d..c9e6df0 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/deploy/CreateCycleService.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/deploy/CreateCycleService.java
@@ -29,6 +29,7 @@ import
org.apache.eventmesh.dashboard.console.domain.metadata.ClusterMetadataDom
import org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
import org.apache.eventmesh.dashboard.console.entity.cluster.RuntimeEntity;
import
org.apache.eventmesh.dashboard.console.mapstruct.cluster.ClusterControllerMapper;
+import
org.apache.eventmesh.dashboard.console.model.DO.service.function.config.CopyConfigDO;
import
org.apache.eventmesh.dashboard.console.model.dto.cluster.CreateClusterByCompleteDataDTO;
import
org.apache.eventmesh.dashboard.console.model.dto.cluster.CreateClusterBySimpleDataDTO;
import
org.apache.eventmesh.dashboard.console.service.cluster.ClusterRelationshipService;
@@ -132,7 +133,9 @@ public class CreateCycleService {
this.verifyName();
this.clusterService.createCluster(clusterEntity);
if (Objects.nonNull(configGatherId)) {
- this.configService.copyConfig(configGatherId,
clusterEntity.getId());
+ CopyConfigDO copyConfigDO = new CopyConfigDO();
+
+ //this.configService.copyConfig(configGatherId,
clusterEntity.getId());
}
}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/deploy/create/CreateClusterByDeployScriptHandler.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/deploy/create/CreateClusterByDeployScriptHandler.java
index 237e67d..c254e43 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/deploy/create/CreateClusterByDeployScriptHandler.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/deploy/create/CreateClusterByDeployScriptHandler.java
@@ -24,11 +24,13 @@ import
org.apache.eventmesh.dashboard.common.enums.ClusterTrusteeshipType;
import
org.apache.eventmesh.dashboard.common.enums.ClusterTrusteeshipType.FirstToWhom;
import org.apache.eventmesh.dashboard.common.enums.ClusterType;
import org.apache.eventmesh.dashboard.common.enums.DeployStatusType;
+import org.apache.eventmesh.dashboard.common.enums.MetadataType;
import org.apache.eventmesh.dashboard.common.enums.ReplicationType;
import
org.apache.eventmesh.dashboard.console.controller.deploy.handler.UpdateHandler;
import org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
import org.apache.eventmesh.dashboard.console.entity.cluster.RuntimeEntity;
import
org.apache.eventmesh.dashboard.console.mapstruct.deploy.ClusterCycleControllerMapper;
+import
org.apache.eventmesh.dashboard.console.model.DO.service.function.config.CopyConfigDO;
import
org.apache.eventmesh.dashboard.console.model.deploy.create.CreateClusterByDeployScriptDO;
import
org.apache.eventmesh.dashboard.console.service.cluster.ClusterRelationshipService;
import org.apache.eventmesh.dashboard.console.service.cluster.ClusterService;
@@ -79,14 +81,21 @@ public class CreateClusterByDeployScriptHandler implements
UpdateHandler<CreateC
this.clusterService.insertCluster(this.clusterEntity);
this.handlerMetadata(this.clusterEntity);
- if
(Objects.nonNull(createClusterByDeployScriptDO.getConfigGatherId())) {
-
configService.copyConfig(createClusterByDeployScriptDO.getConfigGatherId(),
this.clusterEntity.getId());
- }
+
if (this.clusterFramework.isMainSlave()) {
this.mainSlaveHandler(createClusterByDeployScriptDO,
this.clusterEntity);
} else {
this.ordinaryRuntime(createClusterByDeployScriptDO);
}
+ // TODO #1111
+ if
(Objects.nonNull(createClusterByDeployScriptDO.getConfigGatherId())) {
+ CopyConfigDO copyConfigDO = new CopyConfigDO();
+
copyConfigDO.setSourceId(createClusterByDeployScriptDO.getConfigGatherId());
+
copyConfigDO.setSourceType(createClusterByDeployScriptDO.getConfigGatherType());
+
copyConfigDO.setTargetId(createClusterByDeployScriptDO.getConfigGatherId());
+ copyConfigDO.setTargetType(MetadataType.CLUSTER);
+ configService.copyConfig(copyConfigDO);
+ }
this.runtimeService.batchInsert(this.runtimeEntityList);
}
@@ -109,6 +118,7 @@ public class CreateClusterByDeployScriptHandler implements
UpdateHandler<CreateC
ClusterEntity newClusterEntity =
ClusterCycleControllerMapper.INSTANCE.createClusterByDeployScript(createClusterByDeployScriptDO);
clusterEntityList.add(newClusterEntity);
}
+ // TODO 添加失败,如何处理
this.clusterService.batchInsert(clusterEntityList, clusterEntity);
clusterEntityList.forEach(entity -> {
this.createRuntimeEntity(clusterEntity, ReplicationType.MAIN, 0);
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/domain/ClusterAndRuntimeDomain.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/domain/ClusterAndRuntimeDomain.java
index 9138fa6..1a2e145 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/domain/ClusterAndRuntimeDomain.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/domain/ClusterAndRuntimeDomain.java
@@ -25,10 +25,12 @@ import
org.apache.eventmesh.dashboard.common.model.metadata.ClusterMetadata;
import org.apache.eventmesh.dashboard.common.model.metadata.RuntimeMetadata;
import org.apache.eventmesh.dashboard.console.entity.base.BaseRuntimeIdEntity;
import org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
+import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.ClusterAndRuntimeDomainQO;
import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.ClusterAndRuntimeOfRelationshipDO;
import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.GetClusterInSyncReturnDO;
import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.QueryClusterInSyncDO;
import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.QueryClusterTreeDO;
+import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.QueryTreeByChildClusterIdDO;
import org.apache.eventmesh.dashboard.console.model.vo.cluster.ClusterTreeVO;
import java.util.ArrayList;
@@ -50,6 +52,12 @@ public interface ClusterAndRuntimeDomain {
ClusterAndRuntimeOfRelationshipDO
getAllClusterAndRuntimeByCluster(ClusterEntity clusterEntity, DeployStatusType
deployStatusType);
+ ClusterAndRuntimeOfRelationshipDO
getAllClusterAndRuntimeByCluster(ClusterAndRuntimeDomainQO data);
+
+
+ ClusterAndRuntimeOfRelationshipDO
queryTreeByChildClusterId(QueryTreeByChildClusterIdDO data);
+
+
GetClusterInSyncReturnDO queryClusterInSync(ClusterEntity clusterEntity,
List<ClusterType> syncClusterTypeList);
default <T> T queryClusterInSync(QueryClusterInSyncDO data) {
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/domain/Impl/ClusterAndRuntimeDomainImpl.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/domain/Impl/ClusterAndRuntimeDomainImpl.java
index 8ff4463..f74e318 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/domain/Impl/ClusterAndRuntimeDomainImpl.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/domain/Impl/ClusterAndRuntimeDomainImpl.java
@@ -30,24 +30,31 @@ import
org.apache.eventmesh.dashboard.console.entity.cluster.RuntimeEntity;
import
org.apache.eventmesh.dashboard.console.mapstruct.model.entity.ClusterEntityMapstruct;
import
org.apache.eventmesh.dashboard.console.mapstruct.model.entity.RuntimeEntityMapstruct;
import
org.apache.eventmesh.dashboard.console.model.DO.clusterRelationship.QueryListByClusterIdAndTypeDO;
+import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.ClusterAndRuntimeDomainQO;
import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.ClusterAndRuntimeOfRelationshipDO;
import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.GetClusterInSyncReturnDO;
import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.QueryClusterTreeDO;
-import
org.apache.eventmesh.dashboard.console.model.QO.cluster.QueryRelationClusterByClusterIdListAndType;
+import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.QueryTreeByChildClusterIdDO;
+import
org.apache.eventmesh.dashboard.console.model.QO.cluster.QueryRelationClusterByClusterIdListAndTypeQO;
import org.apache.eventmesh.dashboard.console.model.vo.cluster.ClusterTreeVO;
import
org.apache.eventmesh.dashboard.console.service.cluster.ClusterRelationshipService;
import org.apache.eventmesh.dashboard.console.service.cluster.ClusterService;
import org.apache.eventmesh.dashboard.console.service.cluster.RuntimeService;
import
org.apache.eventmesh.dashboard.console.service.connector.ResourcesConfigService;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.lang3.tuple.Triple;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Set;
+import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -68,6 +75,7 @@ import lombok.Setter;
* 1. 部署 需要整体关系
* 2. 运维 只需要 可操作节点
* 3. 关系可视化 需要整体关系
+ * 4. address 生产
*/
@Component
public class ClusterAndRuntimeDomainImpl implements ClusterAndRuntimeDomain {
@@ -104,7 +112,9 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
}
/**
- * 这个方法是否放到 controller 层
+ * 这个方法是否放到 controller 层,
+ * TODO
+ * 还需要反向 tree
*/
public List<ClusterTreeVO>
queryClusterTree(ClusterAndRuntimeOfRelationshipDO data) {
Map<Long, ClusterTreeVO> clusterIdMap =
data.getClusterEntityList().stream().collect(Collectors.toMap(ClusterEntity::getId,
@@ -133,10 +143,13 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
}
/**
- * 运维操作使用列表:</p>
+ * 网络地址组操作</p>
+ *
+ * @see
org.apache.eventmesh.dashboard.console.controller.agent.AgentActionController
+ * <p>
+ * 运维操作使用列表:
* <p>
* 部署操作使用列表:</p>
- *
* @see
org.apache.eventmesh.dashboard.console.controller.deploy.uninstall.UninstallClusterHandler
* @see
org.apache.eventmesh.dashboard.console.controller.deploy.create.CreateClusterByCopyHandler
* @see
org.apache.eventmesh.dashboard.console.controller.deploy.relationship.RelationshipHandler
@@ -151,6 +164,27 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
return getSyncObjectHandler.deploy();
}
+ @Override
+ public ClusterAndRuntimeOfRelationshipDO
getAllClusterAndRuntimeByCluster(ClusterAndRuntimeDomainQO data) {
+ GetSyncObjectHandler getSyncObjectHandler = new GetSyncObjectHandler();
+ getSyncObjectHandler.setClusterEntity(data.getClusterEntity());
+ getSyncObjectHandler.setDeployStatusType(data.getDeployStatusType());
+
getSyncObjectHandler.setSyncClusterTypeList(data.getOnlyClusterTypeList());
+ return getSyncObjectHandler.deploy();
+ }
+
+ @Override
+ public ClusterAndRuntimeOfRelationshipDO
queryTreeByChildClusterId(QueryTreeByChildClusterIdDO data) {
+ ReverseSearchHandler reverseSearchHandler = new ReverseSearchHandler();
+ reverseSearchHandler.queryTreeByChildClusterIdDO = data;
+ List<ClusterEntity> clusterEntityList =
reverseSearchHandler.doReverseSearch();
+
+ GetSyncObjectHandler getSyncObjectHandler = new GetSyncObjectHandler();
+ getSyncObjectHandler.setQueryClusterEntityList(clusterEntityList);
+ getSyncObjectHandler.setSyncClusterTypeList(new
ArrayList<>(data.getOnlyClusterTypeList()));
+ return getSyncObjectHandler.deploy();
+ }
+
/**
* 修改配置只能在一个维度的进行操作 topic 需要对 eventmesh 与 存储同时进行操作, acl 需要多维度操作,还是? offset
的操作 按照具体 offset,只能操作 队列 级别 按照 最大或则最小 和 时间,可以 是 大集群 或则 全域操作 定义操作域
@@ -164,20 +198,100 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
return getSyncObjectHandler.sync();
}
+ private class ReverseSearchHandler {
+
+ private QueryTreeByChildClusterIdDO queryTreeByChildClusterIdDO;
+
+ private List<ClusterRelationshipEntity> tmpList;
+
+ private void reverseSearch() {
+ List<ClusterEntity> list = this.doReverseSearch();
+
+ }
+
+
+ private List<ClusterEntity> doReverseSearch() {
+
+ List<ClusterRelationshipEntity> clusterRelationshipEntityList =
this.queryAllClusterRelationshipEntity();
+
+ Map<Long, List<ClusterRelationshipEntity>> clusterRelationshipMap =
+
clusterRelationshipEntityList.stream().collect(Collectors.groupingBy(ClusterRelationshipEntity::getRelationshipId));
+ List<ClusterEntity> idList = new ArrayList<>();
+ Consumer<ClusterRelationshipEntity> clusterRelationshipConsumer =
+
this.createHandlerClusterRelationshipEntityConsumer(clusterRelationshipMap,
idList);
+
+ List<ClusterRelationshipEntity> newList =
clusterRelationshipMap.get(queryTreeByChildClusterIdDO.getClusterEntity().getId());
+ while (CollectionUtils.isNotEmpty(newList)) {
+ tmpList = new ArrayList<>();
+ newList.forEach(clusterRelationshipConsumer);
+ newList = tmpList;
+ }
+ return idList;
+ }
+
+ private Consumer<ClusterRelationshipEntity>
createHandlerClusterRelationshipEntityConsumer(
+ Map<Long, List<ClusterRelationshipEntity>> clusterRelationshipMap,
+ List<ClusterEntity> idList) {
+ Set<ClusterType> rootClusterTypeList =
queryTreeByChildClusterIdDO.getRootClusterTypeList();
+ return (value) -> {
+ if (Objects.nonNull(rootClusterTypeList) &&
rootClusterTypeList.contains(value.getClusterType())) {
+ ClusterEntity clusterEntity = new ClusterEntity();
+ clusterEntity.setId(value.getClusterId());
+ clusterEntity.setClusterType(value.getClusterType());
+ idList.add(clusterEntity);
+ return;
+ }
+ List<ClusterRelationshipEntity> list =
clusterRelationshipMap.get(value.getClusterId());
+ if (CollectionUtils.isEmpty(list)) {
+ ClusterEntity clusterEntity = new ClusterEntity();
+ clusterEntity.setId(value.getClusterId());
+ clusterEntity.setClusterType(value.getClusterType());
+ idList.add(clusterEntity);
+ } else {
+ tmpList.addAll(list);
+ }
+ };
+ }
+
+ private List<ClusterRelationshipEntity>
queryAllClusterRelationshipEntity() {
+ QueryListByClusterIdAndTypeDO queryListByClusterIdAndTypeDO = new
QueryListByClusterIdAndTypeDO();
+
queryListByClusterIdAndTypeDO.setClusterIdList(List.of(this.queryTreeByChildClusterIdDO.getClusterEntity().getId()));
+ List<ClusterRelationshipEntity> clusterRelationshipEntityList =
new ArrayList<>();
+ for (; ; ) {
+ List<ClusterRelationshipEntity> newList =
clusterRelationshipService.queryListByRelationshipList(queryListByClusterIdAndTypeDO);
+ if (CollectionUtils.isEmpty(newList)) {
+ break;
+ }
+ clusterRelationshipEntityList.addAll(newList);
+ List<Long> idList =
newList.stream().map(ClusterRelationshipEntity::getClusterId).toList();
+ queryListByClusterIdAndTypeDO.setClusterIdList(idList);
+ }
+ return clusterRelationshipEntityList;
+ }
+ }
+
class GetSyncObjectHandler {
- private final List<ClusterRelationshipEntity>
clusterRelationshipEntityList = new ArrayList<>();
+ private List<ClusterRelationshipEntity> clusterRelationshipEntityList
= new ArrayList<>();
+
@Setter
private ClusterEntity clusterEntity;
+
+ @Setter
+ private List<ClusterEntity> queryClusterEntityList;
+
@Setter
private DeployStatusType deployStatusType;
+
private ClusterType clusterType;
/**
* 修改 eventmesh 空间下 所有 存储集群
*/
@Setter
private List<ClusterType> syncClusterTypeList;
- private List<ClusterEntity> independenceClusterList = new
ArrayList<>();
+
+ private final List<ClusterEntity> independenceClusterList = new
ArrayList<>();
+
private List<ClusterEntity> clusterEntityList = new ArrayList<>();
private List<ClusterEntity> capClusterList = new ArrayList<>();
@@ -185,15 +299,17 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
private List<RuntimeEntity> runtimeList;
private void base(boolean isSync) {
- this.clusterEntity =
clusterService.queryClusterById(clusterEntity);
- this.clusterType = clusterEntity.getClusterType();
- ClusterFramework clusterFramework =
ClusterSyncMetadataEnum.getClusterFramework(clusterEntity.getClusterType());
- if (clusterFramework.isCAP() && isSync) {
- return;
- }
- if (this.clusterType.isRuntime()) {
- this.queryRuntimeByClusterId();
- return;
+ if (Objects.nonNull(clusterEntity)) {
+ this.clusterEntity =
clusterService.queryClusterById(clusterEntity);
+ this.clusterType = clusterEntity.getClusterType();
+ ClusterFramework clusterFramework =
ClusterSyncMetadataEnum.getClusterFramework(clusterEntity.getClusterType());
+ if (clusterFramework.isCAP() && isSync) {
+ return;
+ }
+ if (this.clusterType.isRuntime()) {
+ this.queryRuntimeByClusterId();
+ return;
+ }
}
this.queryClusterRelationship();
this.queryClusterByRelationship();
@@ -219,7 +335,7 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
public ClusterAndRuntimeOfRelationshipDO deploy() {
this.base(false);
- if (this.clusterType.isRuntime()) {
+ if (Objects.nonNull(this.clusterType) &&
this.clusterType.isRuntime()) {
ClusterAndRuntimeOfRelationshipDO
clusterAndRuntimeOfRelationshipDO =
this.createClusterAndRuntimeOfRelationshipDO();
clusterAndRuntimeOfRelationshipDO.getRuntimeEntityPairList().add(Pair.of(this.clusterEntity,
this.runtimeList));
return clusterAndRuntimeOfRelationshipDO;
@@ -229,7 +345,6 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
return this.structureRelationship();
}
-
public GetClusterInSyncReturnDO sync() {
this.base(true);
if (this.clusterType.isRuntime()) {
@@ -327,6 +442,7 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
}
+ @Deprecated
public void getEventSpace() {
/*
查询 eventmesh 集群 里面 eventmesh 相关集群
@@ -343,6 +459,7 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
List<ClusterEntity> clusterEntityList =
clusterService.queryStorageClusterByEventMeshId(clusterEntity);
}
+ @Deprecated
public void getDefinition() {
// 查询是否存
List<ClusterEntity> reationClusterList =
clusterService.queryRelationClusterByClusterIdAndType(clusterEntity);
@@ -360,8 +477,8 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
}
});
if (definitionClusterList.isEmpty()) {
- QueryRelationClusterByClusterIdListAndType
queryRelationClusterByClusterIdListAndType =
- new QueryRelationClusterByClusterIdListAndType();
+ QueryRelationClusterByClusterIdListAndTypeQO
queryRelationClusterByClusterIdListAndType =
+ new QueryRelationClusterByClusterIdListAndTypeQO();
queryRelationClusterByClusterIdListAndType.setClusterEntityList(definitionClusterList);
queryRelationClusterByClusterIdListAndType.setClusterTypeList(syncClusterTypeList);
List<ClusterEntity> definitionQueryRelustClusternList =
@@ -417,16 +534,23 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
private void queryClusterRelationship() {
QueryListByClusterIdAndTypeDO queryListByClusterIdAndTypeDO = new
QueryListByClusterIdAndTypeDO();
-
queryListByClusterIdAndTypeDO.setClusterId(this.clusterEntity.getId());
-
queryListByClusterIdAndTypeDO.setClusterTypeList(this.syncClusterTypeList);
-
- /*
- * TODO 只能通过 代码 过滤需要的 clusterType, 除非 能从 syncClusterTypeList 得到
DEFINITION 与 目标类型
- * 前端如何操作,
- */
- List<ClusterRelationshipEntity> relationshipEntityList =
-
clusterRelationshipService.queryListByClusterIdAndType(queryListByClusterIdAndTypeDO);
- this.clusterRelationshipEntityList.addAll(relationshipEntityList);
+ List<ClusterRelationshipEntity> relationshipEntityList;
+ if (Objects.nonNull(this.clusterEntity)) {
+
queryListByClusterIdAndTypeDO.setClusterId(this.clusterEntity.getId());
+ /*
+ * TODO 只能通过 代码 过滤需要的 clusterType, 除非 能从 syncClusterTypeList
得到 DEFINITION 与 目标类型
+ * 前端如何操作,
+ */
+ relationshipEntityList =
+
clusterRelationshipService.queryListByClusterIdAndType(queryListByClusterIdAndTypeDO);
+
this.clusterRelationshipEntityList.addAll(relationshipEntityList);
+ } else {
+ relationshipEntityList = new LinkedList<>();
+ this.queryClusterEntityList.forEach(value -> {
+ ClusterRelationshipEntity clusterRelationshipEntity = new
ClusterRelationshipEntity();
+ clusterRelationshipEntity.setRelationshipId(value.getId());
+ });
+ }
for (; ; ) {
List<Long> idList =
relationshipEntityList.stream().map(ClusterRelationshipEntity::getRelationshipId).toList();
queryListByClusterIdAndTypeDO.setClusterIdList(idList);
@@ -436,6 +560,18 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
}
this.clusterRelationshipEntityList.addAll(relationshipEntityList);
}
+ if (Objects.isNull(this.syncClusterTypeList)) {
+ return;
+ }
+ Set<ClusterType> clusterTypeSet = new
HashSet<>(this.syncClusterTypeList);
+ List<ClusterRelationshipEntity> newList = new ArrayList<>();
+ this.clusterRelationshipEntityList.forEach(value -> {
+ if (clusterTypeSet.contains(value.getRelationshipType())) {
+ newList.add(value);
+ }
+ });
+ this.clusterRelationshipEntityList = newList;
+
}
/**
@@ -444,8 +580,8 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
*/
private void queryCluster() {
// 构建第一次查询对象
- QueryRelationClusterByClusterIdListAndType
queryRelationClusterByClusterIdListAndType =
- new QueryRelationClusterByClusterIdListAndType();
+ QueryRelationClusterByClusterIdListAndTypeQO
queryRelationClusterByClusterIdListAndType =
+ new QueryRelationClusterByClusterIdListAndTypeQO();
queryRelationClusterByClusterIdListAndType.setClusterTypeList(syncClusterTypeList);
List<ClusterEntity> clusterEntityList = new ArrayList<>();
queryRelationClusterByClusterIdListAndType.setClusterEntityList(clusterEntityList);
@@ -467,7 +603,7 @@ public class ClusterAndRuntimeDomainImpl implements
ClusterAndRuntimeDomain {
/*
*目前来说 definition 的 storage 集群 只有 rocketmq(还有关系型数据库),
*如果认为 definition 即 主从集群,那么认 definition
- */
+ */
definitionClusterList.add(value);
} else {
ClusterFramework clusterFramework =
ClusterSyncMetadataEnum.getClusterFramework(value.getClusterType());
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/entity/function/ConfigEntity.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/entity/function/ConfigEntity.java
index 43bfb03..f9a2080 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/entity/function/ConfigEntity.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/entity/function/ConfigEntity.java
@@ -35,6 +35,7 @@ public class ConfigEntity extends BaseRuntimeIdEntity {
/**
* config type 0:runtime,1:storage,2:connector,3:topic
+ * CONFIG is ConfigTemplate
*/
private MetadataType instanceType;
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/deploy/create/CreateClusterByDeployScriptDO.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/entity/function/ConfigTemplateEntity.java
similarity index 71%
copy from
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/deploy/create/CreateClusterByDeployScriptDO.java
copy to
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/entity/function/ConfigTemplateEntity.java
index adcb679..5e17710 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/deploy/create/CreateClusterByDeployScriptDO.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/entity/function/ConfigTemplateEntity.java
@@ -15,39 +15,25 @@
* limitations under the License.
*/
-
-package org.apache.eventmesh.dashboard.console.model.deploy.create;
+package org.apache.eventmesh.dashboard.console.entity.function;
import org.apache.eventmesh.dashboard.common.enums.ClusterType;
+import org.apache.eventmesh.dashboard.common.enums.MetadataType;
+import
org.apache.eventmesh.dashboard.console.entity.base.BaseOrganizationEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
-public class CreateClusterByDeployScriptDO extends
CreateRuntimeByDeployScriptDO {
-
-
- private String name;
-
- private Long configGatherId;
+public class ConfigTemplateEntity extends BaseOrganizationEntity {
private ClusterType clusterType;
private String version;
- private String jmxProperties;
-
- private String description;
+ private MetadataType metadataType;
- private Integer authType;
-
- private Integer runState;
-
- private Long k8sClusterId;
-
- private Long deployScriptId;
-
- private Long resourcesConfigId;
+ private String name;
}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/cluster/ClusterMapper.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/cluster/ClusterMapper.java
index 048b557..52ce7ee 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/cluster/ClusterMapper.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/cluster/ClusterMapper.java
@@ -20,7 +20,7 @@ package org.apache.eventmesh.dashboard.console.mapper.cluster;
import org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
import org.apache.eventmesh.dashboard.console.model.ClusterIdDTO;
-import
org.apache.eventmesh.dashboard.console.model.QO.cluster.QueryRelationClusterByClusterIdListAndType;
+import
org.apache.eventmesh.dashboard.console.model.QO.cluster.QueryRelationClusterByClusterIdListAndTypeQO;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
@@ -80,7 +80,7 @@ public interface ClusterMapper {
</script>
""")
List<ClusterEntity> queryRelationClusterByClusterIdListAndType(
- QueryRelationClusterByClusterIdListAndType
queryRelationClusterByClusterIdListAndType);
+ QueryRelationClusterByClusterIdListAndTypeQO
queryRelationClusterByClusterIdListAndType);
@Select("""
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/cluster/ClusterRelationshipMapper.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/cluster/ClusterRelationshipMapper.java
index 2a32b64..b306ea1 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/cluster/ClusterRelationshipMapper.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/cluster/ClusterRelationshipMapper.java
@@ -62,7 +62,7 @@ public interface ClusterRelationshipMapper {
@Select("""
<script>
select * from cluster_relationship where cluster_id = #{clusterId}
- <if test = "clusterTypeList != null">
+ <if test = "relationshipTypeList != null">
and relationship_type in
<foreach item='item' index='index'
collection='relationshipTypeList' open="(" separator=',' close=")">
#{item}
@@ -72,6 +72,22 @@ public interface ClusterRelationshipMapper {
""")
List<ClusterRelationshipEntity>
queryListByClusterIdAndType(QueryListByClusterIdAndTypeDO data);
+ @Select("""
+ <script>
+ select * from cluster_relationship where relationship_id
+ <foreach collection='clusterIdList' item='item' index='index'
open='in(' separator=',' close=')'>
+ #{item}
+ </foreach>
+ <if test = "clusterTypeList != null">
+ and relationship_type in
+ <foreach item='item' index='index'
collection='clusterTypeList' open="(" separator=',' close=")">
+ #{item}
+ </foreach>
+ </if>
+ </script>
+ """)
+ List<ClusterRelationshipEntity>
queryListByRelationshipList(QueryListByClusterIdAndTypeDO data);
+
@Select("""
<script>
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/cluster/RuntimeMapper.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/cluster/RuntimeMapper.java
index 38664e2..b82133c 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/cluster/RuntimeMapper.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/cluster/RuntimeMapper.java
@@ -144,6 +144,12 @@ public interface RuntimeMapper extends
SyncDataHandlerMapper<RuntimeEntity> {
@Select("select * from runtime where status=1")
List<RuntimeEntity> queryAll();
+
+ @Update("""
+ update runtime set port=#{port} where id=#{id}
+ """)
+ Integer updatePortByRuntimeId(RuntimeEntity runtimeEntity);
+
@Update("""
<script>
<foreach item='item' separator=';' >
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/function/ConfigMapper.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/function/ConfigMapper.java
index b96bb8c..d73fe40 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/function/ConfigMapper.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/function/ConfigMapper.java
@@ -22,11 +22,11 @@ import
org.apache.eventmesh.dashboard.common.enums.MetadataType;
import org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
import org.apache.eventmesh.dashboard.console.entity.function.ConfigEntity;
import org.apache.eventmesh.dashboard.console.mapper.SyncDataHandlerMapper;
+import
org.apache.eventmesh.dashboard.console.model.QO.function.config.CopyConfigQO;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
-import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
@@ -135,7 +135,7 @@ public interface ConfigMapper extends
SyncDataHandlerMapper<ConfigEntity> {
@Insert("insert into config () select *,#{targetId} as cluster_id from
config where clster where cluster_id = #{sourceId}")
- void copyConfig(@Param("sourceId") Long sourceId, @Param("targetId") Long
targetId);
+ void copyConfig(CopyConfigQO data);
@Insert("INSERT INTO config (cluster_id, business_type, instance_type,
instance_id, config_name, config_value, "
+ "status, is_default, diff_type, description, edit,
is_modify,start_version,"
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/function/ConfigTemplateMapper.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/function/ConfigTemplateMapper.java
new file mode 100644
index 0000000..6028f30
--- /dev/null
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/mapper/function/ConfigTemplateMapper.java
@@ -0,0 +1,47 @@
+/*
+ * 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.eventmesh.dashboard.console.mapper.function;
+
+import
org.apache.eventmesh.dashboard.console.entity.function.ConfigTemplateEntity;
+
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ *
+ */
+@Mapper
+public interface ConfigTemplateMapper {
+
+ @Insert("""
+ insert into
config_template(cluster_type,version,metadata_type,metadata_type,name)
+ values(#{clusterType},#{version},#{metadataType},#{name})
+ """)
+ void insertConfigTemplate(ConfigTemplateEntity configTemplateEntity);
+
+ @Select("""
+ select * from config_template where organization_id =
#{organizationId}
+ <if test="metadataType != null">
+ and metadata_type=#{metadataType}
+ </if>
+ """)
+ List<ConfigTemplateEntity>
queryConfigTemplateByClusterType(ConfigTemplateEntity configTemplateEntity);
+}
diff --git
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/DO/domain/clusterAndRuntimeDomain/ClusterAndRuntimeDomainQO.java
similarity index 64%
copy from
eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
copy to
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/DO/domain/clusterAndRuntimeDomain/ClusterAndRuntimeDomainQO.java
index fa38abd..6bf15af 100644
---
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/DO/domain/clusterAndRuntimeDomain/ClusterAndRuntimeDomainQO.java
@@ -15,34 +15,24 @@
* limitations under the License.
*/
-package org.apache.eventmesh.dashboard.core.function.multinetwork;
+package
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain;
import org.apache.eventmesh.dashboard.common.enums.ClusterType;
+import org.apache.eventmesh.dashboard.common.enums.DeployStatusType;
+import org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
+
+import java.util.List;
import lombok.Data;
-/**
- * 申请端口必须连续,这点需要 组件支持端口的配置
- */
@Data
-public class PortMetadata {
-
- private ClusterType clusterType;
-
- private String configName;
-
- private String protocol = "TCP";
-
- private String effect = "client";
-
- private Integer port;
+public class ClusterAndRuntimeDomainQO {
- private boolean required = true;
+ private ClusterEntity clusterEntity;
- private boolean virtual = false;
+ private DeployStatusType deployStatusType;
- private boolean nullPort = false;
+ private List<ClusterType> onlyClusterTypeList;
- private String explanation;
}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/DO/domain/clusterAndRuntimeDomain/ClusterAndRuntimeOfRelationshipDO.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/DO/domain/clusterAndRuntimeDomain/ClusterAndRuntimeOfRelationshipDO.java
index 4d20802..6a5f033 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/DO/domain/clusterAndRuntimeDomain/ClusterAndRuntimeOfRelationshipDO.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/DO/domain/clusterAndRuntimeDomain/ClusterAndRuntimeOfRelationshipDO.java
@@ -17,6 +17,7 @@
package
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain;
+import org.apache.eventmesh.dashboard.common.enums.ClusterType;
import org.apache.eventmesh.dashboard.common.enums.MetadataType;
import
org.apache.eventmesh.dashboard.console.entity.cases.ResourcesConfigEntity;
import org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
@@ -31,6 +32,8 @@ import org.apache.commons.lang3.tuple.Triple;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
import lombok.Data;
@@ -60,4 +63,18 @@ public class ClusterAndRuntimeOfRelationshipDO {
private List<Pair<ClusterEntity, List<ResourcesConfigEntity>>>
clusterResourcesList;
private List<Pair<ClusterEntity, Pair<RuntimeEntity,
ResourcesConfigEntity>>> resourceData;
+
+ private Map<ClusterType, List<RuntimeEntity>> clusterTypeMapMap;
+
+ public Map<Long, List<RuntimeEntity>>
getRuntimeEntityByClusterType(ClusterType clusterType) {
+ if (Objects.isNull(clusterTypeMapMap)) {
+ this.clusterTypeMapMap =
this.runtimeEntityList.stream().collect(Collectors.groupingBy(RuntimeEntity::getClusterType));
+
+ }
+ List<RuntimeEntity> list = this.clusterTypeMapMap.get(clusterType);
+ if (Objects.isNull(list)) {
+ return null;
+ }
+ return
list.stream().collect(Collectors.groupingBy(RuntimeEntity::getClusterId));
+ }
}
diff --git
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/DO/domain/clusterAndRuntimeDomain/QueryTreeByChildClusterIdDO.java
similarity index 64%
copy from
eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
copy to
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/DO/domain/clusterAndRuntimeDomain/QueryTreeByChildClusterIdDO.java
index fa38abd..7c80dcb 100644
---
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/DO/domain/clusterAndRuntimeDomain/QueryTreeByChildClusterIdDO.java
@@ -15,34 +15,26 @@
* limitations under the License.
*/
-package org.apache.eventmesh.dashboard.core.function.multinetwork;
+package
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain;
import org.apache.eventmesh.dashboard.common.enums.ClusterType;
+import org.apache.eventmesh.dashboard.common.enums.DeployStatusType;
+import org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
+
+import java.util.Set;
import lombok.Data;
-/**
- * 申请端口必须连续,这点需要 组件支持端口的配置
- */
@Data
-public class PortMetadata {
-
- private ClusterType clusterType;
-
- private String configName;
-
- private String protocol = "TCP";
-
- private String effect = "client";
+public class QueryTreeByChildClusterIdDO {
- private Integer port;
- private boolean required = true;
+ private ClusterEntity clusterEntity;
- private boolean virtual = false;
+ private DeployStatusType deployStatusType;
- private boolean nullPort = false;
+ private Set<ClusterType> onlyClusterTypeList;
- private String explanation;
+ private Set<ClusterType> rootClusterTypeList;
}
diff --git
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/meta/connection/EtcdConnectionCore.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/DO/service/function/config/CopyConfigDO.java
similarity index 70%
rename from
eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/meta/connection/EtcdConnectionCore.java
rename to
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/DO/service/function/config/CopyConfigDO.java
index 644783c..e133a1b 100644
---
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/meta/connection/EtcdConnectionCore.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/DO/service/function/config/CopyConfigDO.java
@@ -15,14 +15,21 @@
* limitations under the License.
*/
+package
org.apache.eventmesh.dashboard.console.model.DO.service.function.config;
-package org.apache.eventmesh.dashboard.core.meta.connection;
+import org.apache.eventmesh.dashboard.common.enums.MetadataType;
-import org.apache.eventmesh.dashboard.service.meta.ConnectionCore;
+import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
+@Data
+public class CopyConfigDO {
-@Slf4j
-public class EtcdConnectionCore implements ConnectionCore {
+ private MetadataType sourceType;
+
+ private Long sourceId;
+
+ private MetadataType targetType;
+
+ private Long targetId;
}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/agent/AgentCheckRuntimeVO.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/QO/cluster/QueryRelationClusterByClusterIdListAndTypeQO.java
similarity index 68%
copy from
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/agent/AgentCheckRuntimeVO.java
copy to
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/QO/cluster/QueryRelationClusterByClusterIdListAndTypeQO.java
index 09fdf5d..8b5c938 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/controller/agent/AgentCheckRuntimeVO.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/QO/cluster/QueryRelationClusterByClusterIdListAndTypeQO.java
@@ -15,13 +15,20 @@
* limitations under the License.
*/
-package org.apache.eventmesh.dashboard.console.controller.agent;
+package org.apache.eventmesh.dashboard.console.model.QO.cluster;
+
+import org.apache.eventmesh.dashboard.common.enums.ClusterType;
+import org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
+
+import java.util.List;
import lombok.Data;
@Data
-public class AgentCheckRuntimeVO {
+public class QueryRelationClusterByClusterIdListAndTypeQO {
+
+ private List<ClusterType> clusterTypeList;
- private boolean success;
+ private List<ClusterEntity> clusterEntityList;
}
diff --git
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/meta/connection/NacosConnectionCore.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/QO/function/config/CopyConfigQO.java
similarity index 71%
rename from
eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/meta/connection/NacosConnectionCore.java
rename to
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/QO/function/config/CopyConfigQO.java
index ae94f67..91b902c 100644
---
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/meta/connection/NacosConnectionCore.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/QO/function/config/CopyConfigQO.java
@@ -15,14 +15,21 @@
* limitations under the License.
*/
+package org.apache.eventmesh.dashboard.console.model.QO.function.config;
-package org.apache.eventmesh.dashboard.core.meta.connection;
+import org.apache.eventmesh.dashboard.common.enums.MetadataType;
-import org.apache.eventmesh.dashboard.service.meta.ConnectionCore;
+import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
+@Data
+public class CopyConfigQO {
-@Slf4j
-public class NacosConnectionCore implements ConnectionCore {
+ private MetadataType sourceType;
+
+ private Long sourceId;
+
+ private MetadataType targetType;
+
+ private Long targetId;
}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/deploy/create/CreateClusterByDeployScriptDO.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/deploy/create/CreateClusterByDeployScriptDO.java
index adcb679..924b650 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/deploy/create/CreateClusterByDeployScriptDO.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/deploy/create/CreateClusterByDeployScriptDO.java
@@ -19,6 +19,7 @@
package org.apache.eventmesh.dashboard.console.model.deploy.create;
import org.apache.eventmesh.dashboard.common.enums.ClusterType;
+import org.apache.eventmesh.dashboard.common.enums.MetadataType;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -32,6 +33,8 @@ public class CreateClusterByDeployScriptDO extends
CreateRuntimeByDeployScriptDO
private Long configGatherId;
+ private MetadataType configGatherType;
+
private ClusterType clusterType;
private String version;
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/ClusterRelationshipService.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/ClusterRelationshipService.java
index f2cb553..91fbf7a 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/ClusterRelationshipService.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/ClusterRelationshipService.java
@@ -32,6 +32,8 @@ public interface ClusterRelationshipService {
List<ClusterRelationshipEntity>
queryListByClusterIdAndType(QueryListByClusterIdAndTypeDO data);
+ List<ClusterRelationshipEntity>
queryListByRelationshipList(QueryListByClusterIdAndTypeDO data);
+
List<ClusterRelationshipEntity>
queryListByClusterIdListAndType(QueryListByClusterIdAndTypeDO data);
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/ClusterService.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/ClusterService.java
index 7133239..464c89c 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/ClusterService.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/ClusterService.java
@@ -22,7 +22,7 @@ import
org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
import
org.apache.eventmesh.dashboard.console.entity.cluster.ClusterRelationshipEntity;
import org.apache.eventmesh.dashboard.console.entity.cluster.RuntimeEntity;
import org.apache.eventmesh.dashboard.console.model.ClusterIdDTO;
-import
org.apache.eventmesh.dashboard.console.model.QO.cluster.QueryRelationClusterByClusterIdListAndType;
+import
org.apache.eventmesh.dashboard.console.model.QO.cluster.QueryRelationClusterByClusterIdListAndTypeQO;
import
org.apache.eventmesh.dashboard.console.model.vo.cluster.GetClusterBaseMessageVO;
import org.apache.commons.lang3.tuple.Pair;
@@ -49,7 +49,7 @@ public interface ClusterService {
List<ClusterEntity> queryRelationClusterByClusterIdAndType(ClusterEntity
clusterEntity);
List<ClusterEntity> queryRelationClusterByClusterIdListAndType(
- QueryRelationClusterByClusterIdListAndType
queryRelationClusterByClusterIdListAndType);
+ QueryRelationClusterByClusterIdListAndTypeQO
queryRelationClusterByClusterIdListAndType);
List<ClusterEntity> queryStorageClusterByEventMeshId(ClusterEntity
clusterEntity);
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/impl/ClusterRelationshipServiceImpl.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/impl/ClusterRelationshipServiceImpl.java
index be2447a..5498b2c 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/impl/ClusterRelationshipServiceImpl.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/impl/ClusterRelationshipServiceImpl.java
@@ -40,6 +40,11 @@ public class ClusterRelationshipServiceImpl implements
ClusterRelationshipServic
return
this.clusterRelationshipMapper.queryListByClusterIdAndType(data);
}
+ @Override
+ public List<ClusterRelationshipEntity>
queryListByRelationshipList(QueryListByClusterIdAndTypeDO data) {
+ return
this.clusterRelationshipMapper.queryListByRelationshipList(data);
+ }
+
@Override
public List<ClusterRelationshipEntity>
queryListByClusterIdListAndType(QueryListByClusterIdAndTypeDO data) {
return
this.clusterRelationshipMapper.queryListByClusterIdListAndType(data);
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/impl/ClusterServiceImpl.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/impl/ClusterServiceImpl.java
index 8fc3630..77d2580 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/impl/ClusterServiceImpl.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/cluster/impl/ClusterServiceImpl.java
@@ -31,7 +31,7 @@ import
org.apache.eventmesh.dashboard.console.mapper.cluster.RuntimeMapper;
import org.apache.eventmesh.dashboard.console.mapper.message.GroupMapper;
import org.apache.eventmesh.dashboard.console.mapper.message.TopicMapper;
import org.apache.eventmesh.dashboard.console.model.ClusterIdDTO;
-import
org.apache.eventmesh.dashboard.console.model.QO.cluster.QueryRelationClusterByClusterIdListAndType;
+import
org.apache.eventmesh.dashboard.console.model.QO.cluster.QueryRelationClusterByClusterIdListAndTypeQO;
import org.apache.eventmesh.dashboard.console.model.function.OverviewDTO;
import
org.apache.eventmesh.dashboard.console.model.vo.cluster.GetClusterBaseMessageVO;
import org.apache.eventmesh.dashboard.console.service.OverviewService;
@@ -100,7 +100,7 @@ public class ClusterServiceImpl implements ClusterService,
OverviewService {
@Override
public List<ClusterEntity> queryRelationClusterByClusterIdListAndType(
- QueryRelationClusterByClusterIdListAndType
queryRelationClusterByClusterIdListAndType) {
+ QueryRelationClusterByClusterIdListAndTypeQO
queryRelationClusterByClusterIdListAndType) {
return
this.clusterMapper.queryRelationClusterByClusterIdListAndType(queryRelationClusterByClusterIdListAndType);
}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/deploy/impl/PortServiceImpl.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/deploy/impl/PortServiceImpl.java
index e259068..99467c1 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/deploy/impl/PortServiceImpl.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/deploy/impl/PortServiceImpl.java
@@ -20,7 +20,9 @@ package
org.apache.eventmesh.dashboard.console.service.deploy.impl;
import org.apache.eventmesh.dashboard.common.enums.ClusterType;
import org.apache.eventmesh.dashboard.console.entity.cases.PortEntity;
+import org.apache.eventmesh.dashboard.console.entity.cluster.RuntimeEntity;
import org.apache.eventmesh.dashboard.console.entity.function.ConfigEntity;
+import org.apache.eventmesh.dashboard.console.mapper.cluster.RuntimeMapper;
import org.apache.eventmesh.dashboard.console.mapper.deploy.PortMapper;
import org.apache.eventmesh.dashboard.console.mapper.function.ConfigMapper;
import org.apache.eventmesh.dashboard.console.model.deploy.GetPortsDO;
@@ -50,6 +52,9 @@ public class PortServiceImpl implements PortService {
@Autowired
private ConfigMapper configMapper;
+ @Autowired
+ private RuntimeMapper runtimeMapper;
+
@Override
public List<String> getPorts(GetPortsDO getPortsDO) {
// 节点从哪里开始
@@ -65,7 +70,7 @@ public class PortServiceImpl implements PortService {
return ports;
}
- public Map<String, Integer> applyPorts(ClusterType clusterType, Long
kubernetesId) {
+ public Map<String, Integer> applyPorts(RuntimeEntity runtimeEntity,
ClusterType clusterType, Long kubernetesId) {
ClusterPort clusterPort = ClusterPort.valueOf(clusterType.name());
int count = clusterPort.getPortMetadataList().size();
PortEntity portEntity = new PortEntity();
@@ -83,7 +88,11 @@ public class PortServiceImpl implements PortService {
configEntity.setConfigValue(port + "");
configEntityList.add(configEntity);
+ if (Objects.equals(clusterPort.getClientMetadata(), portMetadata))
{
+ runtimeEntity.setPort(port);
+ }
}
+ // TODO 有地址服务之后,这段代码是否需要
if (Objects.equals(ClusterType.STORAGE_KAFKA_BROKER, clusterType)) {
List<ConfigEntity> queryData =
this.configMapper.queryByRuntimeIdAndConfigName(configEntityList);
queryData.forEach(configEntity -> {
@@ -93,6 +102,7 @@ public class PortServiceImpl implements PortService {
});
}
this.configMapper.updateValueByConfigList(configEntityList);
+ this.runtimeMapper.updatePortByRuntimeId(runtimeEntity);
return portMap;
}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/ConfigService.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/ConfigService.java
index 377543e..645c8d5 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/ConfigService.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/ConfigService.java
@@ -22,6 +22,7 @@ package
org.apache.eventmesh.dashboard.console.service.function;
import org.apache.eventmesh.dashboard.common.enums.MetadataType;
import org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
import org.apache.eventmesh.dashboard.console.entity.function.ConfigEntity;
+import
org.apache.eventmesh.dashboard.console.model.DO.service.function.config.CopyConfigDO;
import org.apache.eventmesh.dashboard.console.model.dto.config.ChangeConfigDTO;
import java.util.List;
@@ -41,13 +42,17 @@ public interface ConfigService {
List<ConfigEntity> queryByInstanceId(ConfigEntity configEntity);
+
+ @SuppressWarnings("UnusedReturnValue")
+ Integer updateValueByConfigList(List<ConfigEntity> configEntityList);
+
void updateConfigsByInstanceId(String name, Long clusterId, Integer
instanceType, Long instanceId, List<ChangeConfigDTO> changeConfigDTOList);
List<ConfigEntity> selectAll();
void batchInsert(List<ConfigEntity> configEntityList);
- void copyConfig(Long sourceId, Long targetId);
+ void copyConfig(CopyConfigDO copyConfigDO);
void restoreConfig(Long sourceId, Long targetId);
diff --git
a/eventmesh-dashboard-console/src/test/java/org/apache/eventmesh/dashboard/console/Test1.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/ConfigTemplateService.java
similarity index 66%
copy from
eventmesh-dashboard-console/src/test/java/org/apache/eventmesh/dashboard/console/Test1.java
copy to
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/ConfigTemplateService.java
index 147ad44..25c69fe 100644
---
a/eventmesh-dashboard-console/src/test/java/org/apache/eventmesh/dashboard/console/Test1.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/ConfigTemplateService.java
@@ -15,18 +15,20 @@
* limitations under the License.
*/
-package org.apache.eventmesh.dashboard.console;
+package org.apache.eventmesh.dashboard.console.service.function;
-import org.apache.dubbo.common.URL;
+import
org.apache.eventmesh.dashboard.console.entity.function.ConfigTemplateEntity;
-import org.junit.Test;
+import java.util.List;
+
+/**
+ *
+ */
+public interface ConfigTemplateService {
+
+ void insertConfigTemplate(ConfigTemplateEntity configTemplateEntity);
-public class Test1 {
+ List<ConfigTemplateEntity>
queryConfigTemplateByClusterType(ConfigTemplateEntity configTemplateEntity);
- @Test
- public void test() {
- URL url = URL.valueOf("127.0.0.1");
- System.out.println(url);
- }
}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/Impl/ConfigServiceImpl.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/Impl/ConfigServiceImpl.java
index 7b1b4b6..731c8a9 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/Impl/ConfigServiceImpl.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/Impl/ConfigServiceImpl.java
@@ -23,6 +23,8 @@ import
org.apache.eventmesh.dashboard.console.annotation.EmLog;
import org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
import org.apache.eventmesh.dashboard.console.entity.function.ConfigEntity;
import org.apache.eventmesh.dashboard.console.mapper.function.ConfigMapper;
+import
org.apache.eventmesh.dashboard.console.model.DO.service.function.config.CopyConfigDO;
+import
org.apache.eventmesh.dashboard.console.model.QO.function.config.CopyConfigQO;
import org.apache.eventmesh.dashboard.console.model.dto.config.ChangeConfigDTO;
import
org.apache.eventmesh.dashboard.console.model.dto.config.UpdateConfigsLog;
import org.apache.eventmesh.dashboard.console.service.function.ConfigService;
@@ -112,6 +114,11 @@ public class ConfigServiceImpl implements ConfigService {
});
}
+ @Override
+ public Integer updateValueByConfigList(List<ConfigEntity>
configEntityList) {
+ return this.configMapper.updateValueByConfigList(configEntityList);
+ }
+
@Override
public void updateConfigsByInstanceId(String name, Long clusterId, Integer
instanceType, Long instanceId,
List<ChangeConfigDTO> changeConfigDTOList) {
@@ -150,8 +157,9 @@ public class ConfigServiceImpl implements ConfigService {
}
@Override
- public void copyConfig(Long sourceId, Long targetId) {
- configMapper.copyConfig(sourceId, targetId);
+ public void copyConfig(CopyConfigDO copyConfigDO) {
+ CopyConfigQO data = null;
+ configMapper.copyConfig(data);
}
@Override
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/Impl/ConfigTemplateServiceImpl.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/Impl/ConfigTemplateServiceImpl.java
new file mode 100644
index 0000000..41074a6
--- /dev/null
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/service/function/Impl/ConfigTemplateServiceImpl.java
@@ -0,0 +1,47 @@
+/*
+ * 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.eventmesh.dashboard.console.service.function.Impl;
+
+import
org.apache.eventmesh.dashboard.console.entity.function.ConfigTemplateEntity;
+import
org.apache.eventmesh.dashboard.console.mapper.function.ConfigTemplateMapper;
+import
org.apache.eventmesh.dashboard.console.service.function.ConfigTemplateService;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional
+public class ConfigTemplateServiceImpl implements ConfigTemplateService {
+
+ @Autowired
+ private ConfigTemplateMapper configTemplateMapper;
+
+
+ @Override
+ public void insertConfigTemplate(ConfigTemplateEntity
configTemplateEntity) {
+ this.configTemplateMapper.insertConfigTemplate(configTemplateEntity);
+ }
+
+ @Override
+ public List<ConfigTemplateEntity>
queryConfigTemplateByClusterType(ConfigTemplateEntity configTemplateEntity) {
+ return
this.configTemplateMapper.queryConfigTemplateByClusterType(configTemplateEntity);
+ }
+}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/FunctionManage.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/FunctionManage.java
index a2d76a0..32508d2 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/FunctionManage.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/FunctionManage.java
@@ -30,6 +30,7 @@ import
org.apache.eventmesh.dashboard.console.service.cluster.ClusterRelationshi
import org.apache.eventmesh.dashboard.console.service.cluster.ClusterService;
import org.apache.eventmesh.dashboard.console.service.cluster.RuntimeService;
import
org.apache.eventmesh.dashboard.console.service.function.HealthDataService;
+import
org.apache.eventmesh.dashboard.console.spring.support.address.AddressManage;
import
org.apache.eventmesh.dashboard.console.spring.support.metadata.DatabaseAndMetadataType;
import
org.apache.eventmesh.dashboard.console.spring.support.metadata.DefaultMetadataSyncResultHandler;
import org.apache.eventmesh.dashboard.core.metadata.DataMetadataHandler;
@@ -98,6 +99,11 @@ public class FunctionManage {
return reportHandlerManage;
}
+ @Bean
+ public AddressManage buildAddressManage() {
+ return new AddressManage();
+ }
+
@PostConstruct
private void init() {
if (!this.enabled) {
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AbstractAddressService.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AbstractAddressService.java
new file mode 100644
index 0000000..6026f07
--- /dev/null
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AbstractAddressService.java
@@ -0,0 +1,58 @@
+/*
+ * 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.eventmesh.dashboard.console.spring.support.address;
+
+import org.apache.eventmesh.dashboard.common.enums.DeployStatusType;
+import org.apache.eventmesh.dashboard.console.entity.cluster.RuntimeEntity;
+
+import java.util.List;
+import java.util.Objects;
+
+public abstract class AbstractAddressService implements AddressService {
+
+ protected AddressServiceResult
createAddressServiceResult(List<RuntimeEntity> runtimeEntityList, boolean
isCheck) {
+ AddressServiceResult addressServiceResult =
this.createAddressServiceResult();
+ boolean check = this.isRuntimeStartOrChecking(runtimeEntityList,
isCheck);
+ addressServiceResult.setCheckSuccess(check);
+ return addressServiceResult;
+ }
+
+ protected AddressServiceResult createAddressServiceResult() {
+ return new AddressServiceResult();
+ }
+
+ protected boolean isRuntimeStartOrChecking(List<RuntimeEntity>
runtimeEntityList, boolean isCheck) {
+
+ for (RuntimeEntity runtimeEntity : runtimeEntityList) {
+ DeployStatusType deployStatusType =
runtimeEntity.getDeployStatusType();
+ if (isCheck) {
+ if (!Objects.equals(deployStatusType,
DeployStatusType.CREATE_SUCCESS)
+ && !Objects.equals(deployStatusType,
DeployStatusType.CHECKING)) {
+ return false;
+ }
+ } else {
+ if (!Objects.equals(deployStatusType,
DeployStatusType.CREATE_SUCCESS)) {
+ return false;
+ }
+ }
+ }
+ return true;
+
+ }
+
+}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/deploy/create/CreateClusterByDeployScriptDO.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AddressManage.java
similarity index 56%
copy from
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/deploy/create/CreateClusterByDeployScriptDO.java
copy to
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AddressManage.java
index adcb679..7c0d174 100644
---
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/model/deploy/create/CreateClusterByDeployScriptDO.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AddressManage.java
@@ -15,39 +15,29 @@
* limitations under the License.
*/
-
-package org.apache.eventmesh.dashboard.console.model.deploy.create;
+package org.apache.eventmesh.dashboard.console.spring.support.address;
import org.apache.eventmesh.dashboard.common.enums.ClusterType;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-@Data
-@EqualsAndHashCode(callSuper = true)
-public class CreateClusterByDeployScriptDO extends
CreateRuntimeByDeployScriptDO {
-
-
- private String name;
-
- private Long configGatherId;
-
- private ClusterType clusterType;
-
- private String version;
-
- private String jmxProperties;
-
- private String description;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
- private Integer authType;
+public class AddressManage {
- private Integer runState;
+ private Map<ClusterType, AddressService> addressServiceMap = new
ConcurrentHashMap<>();
- private Long k8sClusterId;
+ {
+ this.register(new RocketMQBrokerAddressService());
+ }
- private Long deployScriptId;
- private Long resourcesConfigId;
+ private void register(AddressService addressService) {
+ addressService.clusterType().forEach(clusterType -> {
+ this.addressServiceMap.put(clusterType, addressService);
+ });
+ }
+ public AddressService getAddressService(ClusterType clusterType) {
+ return this.addressServiceMap.get(clusterType);
+ }
}
diff --git
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AddressService.java
similarity index 57%
copy from
eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
copy to
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AddressService.java
index fa38abd..6f08d64 100644
---
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AddressService.java
@@ -15,34 +15,40 @@
* limitations under the License.
*/
-package org.apache.eventmesh.dashboard.core.function.multinetwork;
+package org.apache.eventmesh.dashboard.console.spring.support.address;
import org.apache.eventmesh.dashboard.common.enums.ClusterType;
-import lombok.Data;
+import java.util.List;
/**
- * 申请端口必须连续,这点需要 组件支持端口的配置
+ *
*/
-@Data
-public class PortMetadata {
-
- private ClusterType clusterType;
+public interface AddressService {
- private String configName;
- private String protocol = "TCP";
+ List<ClusterType> clusterType();
- private String effect = "client";
+ /**
+ * 获得 client 地址
+ */
+ AddressServiceResult createClientAddress(AddressServiceIPDO data);
- private Integer port;
- private boolean required = true;
+ /**
+ * cap 架构 获得
+ */
+ AddressServiceResult createCapAddress(AddressServiceIPDO data);
- private boolean virtual = false;
+ /**
+ * 获得 集群 的 注册中心地址
+ */
+ AddressServiceResult createRegisterAddress(AddressServiceIPDO data);
- private boolean nullPort = false;
+ /**
+ * 依赖其他 大集群 地址
+ */
+ AddressServiceResult createDependAddress(AddressServiceIPDO data);
- private String explanation;
}
diff --git
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AddressServiceIPDO.java
similarity index 50%
copy from
eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
copy to
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AddressServiceIPDO.java
index fa38abd..ed5709b 100644
---
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AddressServiceIPDO.java
@@ -15,34 +15,35 @@
* limitations under the License.
*/
-package org.apache.eventmesh.dashboard.core.function.multinetwork;
+package org.apache.eventmesh.dashboard.console.spring.support.address;
import org.apache.eventmesh.dashboard.common.enums.ClusterType;
+import org.apache.eventmesh.dashboard.console.entity.cluster.RuntimeEntity;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
import lombok.Data;
-/**
- * 申请端口必须连续,这点需要 组件支持端口的配置
- */
@Data
-public class PortMetadata {
-
- private ClusterType clusterType;
-
- private String configName;
-
- private String protocol = "TCP";
-
- private String effect = "client";
-
- private Integer port;
+public class AddressServiceIPDO {
- private boolean required = true;
- private boolean virtual = false;
+ private List<RuntimeEntity> runtimeEntityList;
- private boolean nullPort = false;
+ private Map<ClusterType, List<RuntimeEntity>> clusterTypeMapMap;
- private String explanation;
+ public Map<Long, List<RuntimeEntity>>
getRuntimeEntityByClusterType(ClusterType clusterType) {
+ List<RuntimeEntity> list = this.clusterTypeMapMap.get(clusterType);
+ if (Objects.isNull(list)) {
+ return null;
+ }
+ return
list.stream().collect(Collectors.groupingBy(RuntimeEntity::getClusterId));
+ }
-}
+ public List<RuntimeEntity> getRuntimeEntityList(ClusterType clusterType) {
+ return this.clusterTypeMapMap.get(clusterType);
+ }
+}
\ No newline at end of file
diff --git
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AddressServiceResult.java
similarity index 59%
copy from
eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
copy to
eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AddressServiceResult.java
index fa38abd..92cdaf4 100644
---
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/AddressServiceResult.java
@@ -15,34 +15,32 @@
* limitations under the License.
*/
-package org.apache.eventmesh.dashboard.core.function.multinetwork;
+package org.apache.eventmesh.dashboard.console.spring.support.address;
-import org.apache.eventmesh.dashboard.common.enums.ClusterType;
+import org.apache.eventmesh.dashboard.console.entity.function.ConfigEntity;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
import lombok.Data;
-/**
- * 申请端口必须连续,这点需要 组件支持端口的配置
- */
@Data
-public class PortMetadata {
-
- private ClusterType clusterType;
-
- private String configName;
+public class AddressServiceResult {
- private String protocol = "TCP";
+ private boolean checkSuccess = false;
- private String effect = "client";
- private Integer port;
+ private List<ConfigEntity> configEntities;
- private boolean required = true;
- private boolean virtual = false;
- private boolean nullPort = false;
+ public void addConfigEntity(ConfigEntity configEntity) {
+ if (Objects.isNull(configEntities)) {
+ this.configEntities = new ArrayList<>();
+ }
+ this.configEntities.add(configEntity);
+ }
- private String explanation;
}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/RocketMQBrokerAddressService.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/RocketMQBrokerAddressService.java
new file mode 100644
index 0000000..ef43a94
--- /dev/null
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/spring/support/address/RocketMQBrokerAddressService.java
@@ -0,0 +1,88 @@
+/*
+ * 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.eventmesh.dashboard.console.spring.support.address;
+
+import org.apache.eventmesh.dashboard.common.enums.ClusterType;
+import org.apache.eventmesh.dashboard.console.entity.cluster.RuntimeEntity;
+import org.apache.eventmesh.dashboard.console.entity.function.ConfigEntity;
+
+import java.util.List;
+import java.util.Map;
+
+public class RocketMQBrokerAddressService extends AbstractAddressService {
+
+
+ @Override
+ public List<ClusterType> clusterType() {
+ return List.of(
+ ClusterType.STORAGE_ROCKETMQ_CLUSTER,
+ ClusterType.STORAGE_ROCKETMQ_BROKER,
+ ClusterType.STORAGE_ROCKETMQ_BROKER_MAIN_SLAVE,
+ ClusterType.STORAGE_ROCKETMQ_BROKER_RAFT);
+ }
+
+ @Override
+ public AddressServiceResult createClientAddress(AddressServiceIPDO data) {
+ // TODO 挂上域名
+ Map<Long, List<RuntimeEntity>> runtimeEntityByClusterType =
data.getRuntimeEntityByClusterType(ClusterType.STORAGE_ROCKETMQ_NAMESERVER);
+ StringBuilder hostAddress = new StringBuilder();
+ StringBuilder podAddress = new StringBuilder();
+ runtimeEntityByClusterType.forEach((key, value) -> {
+ value.forEach(runtimeEntity -> {
+
hostAddress.append(runtimeEntity.getHost()).append(":").append(runtimeEntity.getPort()).append(';');
+
podAddress.append(runtimeEntity.getPodHost()).append(":").append(runtimeEntity.getPort()).append(';');
+ });
+ });
+ AddressServiceResult addressServiceResult =
this.createAddressServiceResult();
+ addressServiceResult.setCheckSuccess(true);
+
+ ConfigEntity configEntity = new ConfigEntity();
+ configEntity.setConfigName("namesrvAddr");
+ configEntity.setDescription("用户调用地址:");
+ configEntity.setConfigValue(hostAddress.toString());
+
+ addressServiceResult.addConfigEntity(configEntity);
+
+ configEntity = new ConfigEntity();
+ configEntity.setDescription("内部地址:");
+ configEntity.setConfigValue(podAddress.toString());
+ addressServiceResult.addConfigEntity(configEntity);
+
+ return addressServiceResult;
+ }
+
+ @Override
+ public AddressServiceResult createCapAddress(AddressServiceIPDO data) {
+ return null;
+ }
+
+ @Override
+ public AddressServiceResult createRegisterAddress(AddressServiceIPDO data)
{
+ List<RuntimeEntity> runtimeEntityList =
data.getRuntimeEntityList(ClusterType.STORAGE_ROCKETMQ_NAMESERVER);
+ AddressServiceResult addressServiceResult =
this.createAddressServiceResult(runtimeEntityList, false);
+ if (!addressServiceResult.isCheckSuccess()) {
+ return addressServiceResult;
+ }
+ return this.createClientAddress(data);
+ }
+
+ @Override
+ public AddressServiceResult createDependAddress(AddressServiceIPDO data) {
+ return null;
+ }
+}
diff --git
a/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/utils/data/controller/agent/AgentActionControllerUtils.java
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/utils/data/controller/agent/AgentActionControllerUtils.java
new file mode 100644
index 0000000..01d9f76
--- /dev/null
+++
b/eventmesh-dashboard-console/src/main/java/org/apache/eventmesh/dashboard/console/utils/data/controller/agent/AgentActionControllerUtils.java
@@ -0,0 +1,43 @@
+/*
+ * 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.eventmesh.dashboard.console.utils.data.controller.agent;
+
+import org.apache.eventmesh.dashboard.console.entity.cluster.RuntimeEntity;
+import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.ClusterAndRuntimeOfRelationshipDO;
+import
org.apache.eventmesh.dashboard.console.spring.support.address.AddressServiceIPDO;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class AgentActionControllerUtils {
+
+
+ public static AddressServiceIPDO byRuntimeList(List<RuntimeEntity>
runtimeEntities) {
+ AddressServiceIPDO addressServiceData = new AddressServiceIPDO();
+ addressServiceData.setRuntimeEntityList(runtimeEntities);
+ return addressServiceData;
+ }
+
+ public static AddressServiceIPDO
byClusterAndRuntimeOfRelationshipDO(ClusterAndRuntimeOfRelationshipDO data) {
+ AddressServiceIPDO addressServiceData = new AddressServiceIPDO();
+
addressServiceData.setClusterTypeMapMap(data.getRuntimeEntityList().stream().collect(Collectors.groupingBy(RuntimeEntity::getClusterType)));
+ return addressServiceData;
+ }
+
+}
+
diff --git
a/eventmesh-dashboard-console/src/main/resources/eventmesh-dashboard.sql
b/eventmesh-dashboard-console/src/main/resources/eventmesh-dashboard.sql
index 2a3fa13..f2be0f1 100644
--- a/eventmesh-dashboard-console/src/main/resources/eventmesh-dashboard.sql
+++ b/eventmesh-dashboard-console/src/main/resources/eventmesh-dashboard.sql
@@ -132,7 +132,7 @@ create table config
(
id bigint unsigned auto_increment primary key,
organization_id bigint unsigned not null comment '组织id',
- cluster_id bigint not null comment '集群id',
+ cluster_id bigint not null comment '集群id,差点删了',
cluster_type varchar(32) not null comment '',
instance_type varchar(31) not null comment '实例类型
0:runtime,1:storage,2:connector,3:topic',
instance_id bigint not null default -1 comment
'实例id,上面配置对应的(比如runtime)的id,如果是-1,是cluster的配置',
diff --git
a/eventmesh-dashboard-console/src/test/java/org/apache/eventmesh/dashboard/console/Test1.java
b/eventmesh-dashboard-console/src/test/java/org/apache/eventmesh/dashboard/console/Test1.java
index 147ad44..115d834 100644
---
a/eventmesh-dashboard-console/src/test/java/org/apache/eventmesh/dashboard/console/Test1.java
+++
b/eventmesh-dashboard-console/src/test/java/org/apache/eventmesh/dashboard/console/Test1.java
@@ -17,7 +17,7 @@
package org.apache.eventmesh.dashboard.console;
-import org.apache.dubbo.common.URL;
+import org.apache.eventmesh.dashboard.common.enums.ClusterType;
import org.junit.Test;
@@ -26,7 +26,12 @@ public class Test1 {
@Test
public void test() {
- URL url = URL.valueOf("127.0.0.1");
- System.out.println(url);
+
+
System.out.println(ClusterType.STORAGE_ROCKETMQ_BROKER.getFrameworkInAllRuntimeCluster());
+
+
System.out.println(ClusterType.STORAGE_ROCKETMQ_CLUSTER.getFrameworkInAllRuntimeCluster());
+
+
System.out.println(ClusterType.STORAGE_ROCKETMQ_BROKER.getThisInAllRuntimeCluster());
}
+
}
diff --git
a/eventmesh-dashboard-console/src/test/java/org/apache/eventmesh/dashboard/console/domain/ClusterAndRuntimeDomainImplTest.java
b/eventmesh-dashboard-console/src/test/java/org/apache/eventmesh/dashboard/console/domain/ClusterAndRuntimeDomainImplTest.java
index e3e49c4..cf6955e 100644
---
a/eventmesh-dashboard-console/src/test/java/org/apache/eventmesh/dashboard/console/domain/ClusterAndRuntimeDomainImplTest.java
+++
b/eventmesh-dashboard-console/src/test/java/org/apache/eventmesh/dashboard/console/domain/ClusterAndRuntimeDomainImplTest.java
@@ -24,9 +24,12 @@ import
org.apache.eventmesh.dashboard.console.entity.cluster.ClusterEntity;
import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.ClusterAndRuntimeOfRelationshipDO;
import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.GetClusterInSyncReturnDO;
import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.QueryClusterTreeDO;
+import
org.apache.eventmesh.dashboard.console.model.DO.domain.clusterAndRuntimeDomain.QueryTreeByChildClusterIdDO;
import org.apache.eventmesh.dashboard.console.model.vo.cluster.ClusterTreeVO;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -77,4 +80,19 @@ public class ClusterAndRuntimeDomainImplTest {
System.out.println(result);
}
+
+ @Test
+ public void test_queryTreeByChildClusterId(){
+ QueryTreeByChildClusterIdDO queryTreeByChildClusterIdDO = new
QueryTreeByChildClusterIdDO();
+ ClusterEntity clusterEntity = new ClusterEntity();
+ clusterEntity.setId(24L);
+ queryTreeByChildClusterIdDO.setClusterEntity(clusterEntity);
+ ClusterType clusterType = ClusterType.STORAGE_JVM_BROKER;
+
queryTreeByChildClusterIdDO.setRootClusterTypeList(Set.of(clusterType.getHigher()));
+ queryTreeByChildClusterIdDO.setOnlyClusterTypeList(new
HashSet<>(clusterType.getFrameworkInAllMetaCluster()));
+
+ ClusterAndRuntimeOfRelationshipDO data =
this.clusterAndRuntimeDomain.queryTreeByChildClusterId(queryTreeByChildClusterIdDO);
+ System.out.println(data);
+ }
+
}
diff --git a/eventmesh-dashboard-core/pom.xml b/eventmesh-dashboard-core/pom.xml
index ae64834..92a707f 100644
--- a/eventmesh-dashboard-core/pom.xml
+++ b/eventmesh-dashboard-core/pom.xml
@@ -25,7 +25,6 @@
<artifactId>eventmesh-dashboard</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
- <groupId>org.apache.eventmesh.dashboard.core</groupId>
<artifactId>eventmesh-dashboard-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eventmesh-dashboard-core</name>
@@ -54,12 +53,12 @@
<!-- EventMesh Dashboard modules -->
<dependency>
- <groupId>org.apache.eventmesh.dashboard.common</groupId>
+ <groupId>org.apache.eventmesh.dashboard</groupId>
<artifactId>eventmesh-dashboard-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
- <groupId>org.apache.eventmesh.dashboard.service</groupId>
+ <groupId>org.apache.eventmesh.dashboard</groupId>
<artifactId>eventmesh-dashboard-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
diff --git
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/ClusterPort.java
b/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/ClusterPort.java
index 0f6f26f..6e098b4 100644
---
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/ClusterPort.java
+++
b/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/ClusterPort.java
@@ -56,7 +56,7 @@ public enum ClusterPort {
portMetadata.setEffect("复制端口");
STORAGE_ROCKETMQ_BROKER_MAIN_SLAVE.setPortMetadata(portMetadata);
-
STORAGE_ROCKETMQ_BROKER_RAFT.setPortMetadataList(STORAGE_ROCKETMQ_BROKER_MAIN_SLAVE.getPortMetadataList());
+
STORAGE_ROCKETMQ_BROKER_RAFT.setClusterPort(STORAGE_ROCKETMQ_BROKER_MAIN_SLAVE);
portMetadata = new PortMetadata();
portMetadata.setConfigName("");
@@ -65,19 +65,36 @@ public enum ClusterPort {
}
+
private List<PortMetadata> portMetadataList = new ArrayList<>();
+ private PortMetadata clientMetadata;
+
private ClusterType clusterType;
- void setPortMetadataList(List<PortMetadata> portMetadataList) {
- this.portMetadataList = portMetadataList;
+
+ void setClusterPort(ClusterPort clusterPort) {
+ if (Objects.isNull(clusterType)) {
+ this.clusterType = ClusterType.valueOf(this.name());
+ }
+ this.clientMetadata = clusterPort.getClientMetadata();
+ this.portMetadataList = clusterPort.getPortMetadataList();
}
void setPortMetadata(PortMetadata portMetadata) {
if (Objects.isNull(clusterType)) {
this.clusterType = ClusterType.valueOf(this.name());
}
+ if (!portMetadata.isVirtual()
+ && !portMetadata.isNullPort()
+ && Objects.equals(portMetadata.getEffect(), "client")
+ ) {
+ if (Objects.isNull(this.clientMetadata)) {
+ String exceptionString = String.format(" current is %s , now
is %s", this.clientMetadata, portMetadata);
+ throw new RuntimeException(exceptionString);
+ }
+ }
portMetadata.setClusterType(this.clusterType);
this.portMetadataList.add(portMetadata);
}
diff --git
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
b/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
index fa38abd..837ba2f 100644
---
a/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
+++
b/eventmesh-dashboard-core/src/main/java/org/apache/eventmesh/dashboard/core/function/multinetwork/PortMetadata.java
@@ -22,7 +22,12 @@ import
org.apache.eventmesh.dashboard.common.enums.ClusterType;
import lombok.Data;
/**
+ * TODO
* 申请端口必须连续,这点需要 组件支持端口的配置
+ * 集群在 kubernetes 内同步接口
+ * Runtime 默认端口是 client 端口
+ * 只有对外端口要映射,其他端口都要默认
+ *
*/
@Data
public class PortMetadata {
diff --git a/eventmesh-dashboard-dist/README.md
b/eventmesh-dashboard-dist/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/eventmesh-dashboard-dist/ReleaseKnowStreaming.xml
b/eventmesh-dashboard-dist/ReleaseKnowStreaming.xml
new file mode 100755
index 0000000..bc691ce
--- /dev/null
+++ b/eventmesh-dashboard-dist/ReleaseKnowStreaming.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<?xml version="1.0" encoding="UTF-8"?>
+
+<assembly>
+ <id>${project.version}</id>
+ <includeBaseDirectory>true</includeBaseDirectory>
+ <formats>
+ <format>dir</format>
+ <format>tar.gz</format>
+ <format>zip</format>
+ </formats>
+ <dependencySets>
+ <dependencySet>
+ <outputDirectory>/lib</outputDirectory>
+ <scope>runtime</scope>
+ <includes>
+ <include>*:*</include>
+ </includes>
+ <excludes>
+
<exclude>org.apache.eventmesh.dashboard:eventmesh-dashboard-console</exclude>
+
<exclude>org.apache.eventmesh.dashboard:eventmesh-dashboard-core</exclude>
+
<exclude>org.apache.eventmesh.dashboard:eventmesh-dashboard-common</exclude>
+
<exclude>org.apache.eventmesh.dashboard:eventmesh-dashboard-service</exclude>
+
<exclude>org.apache.eventmesh.dashboard:eventmesh-dashboard-observe</exclude>
+ </excludes>
+ </dependencySet>
+ <dependencySet>
+ <outputDirectory>/apps</outputDirectory>
+ <scope>runtime</scope>
+ <includes>
+
<include>org.apache.eventmesh.dashboard:eventmesh-dashboard-console</include>
+
<include>org.apache.eventmesh.dashboard:eventmesh-dashboard-core</include>
+
<include>org.apache.eventmesh.dashboard:eventmesh-dashboard-common</include>
+
<include>org.apache.eventmesh.dashboard:eventmesh-dashboard-service</include>
+
<include>org.apache.eventmesh.dashboard:eventmesh-dashboard-observe</include>
+ </includes>
+ </dependencySet>
+ </dependencySets>
+ <fileSets>
+ <fileSet>
+
<directory>../eventmesh-dashboard-console/src/main/resources</directory>
+ <outputDirectory>conf</outputDirectory>
+ <includes>
+ <include>application.yml</include>
+ <include>logback-spring.xml</include>
+ </includes>
+ </fileSet>
+ <fileSet>
+ <directory>./bin</directory>
+ <outputDirectory>bin</outputDirectory>
+ <includes>
+ <include>*</include>
+ <include>*/*</include>
+ </includes>
+ <fileMode>0755</fileMode>
+ </fileSet>
+ <fileSet>
+
<directory>../eventmesh-dashboard-console/src/main/resources</directory>
+ <outputDirectory>init</outputDirectory>
+ <includes>
+ <include>sql</include>
+ <include>sql/*</include>
+ </includes>
+ </fileSet>
+
+ <fileSet>
+ <includes>
+ <include>docker/*</include>
+ <include>docker/**</include>
+
+ <include>init/*</include>
+ <include>init/*/*</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+
+ <files>
+ <file>
+ <source>README.md</source>
+ <outputDirectory>.</outputDirectory>
+ </file>
+ <file>
+ <source>../LICENSE</source>
+ <outputDirectory>.</outputDirectory>
+ </file>
+ </files>
+</assembly>
diff --git a/docker/Dockerfile b/eventmesh-dashboard-dist/docker/Dockerfile
similarity index 100%
rename from docker/Dockerfile
rename to eventmesh-dashboard-dist/docker/Dockerfile
diff --git a/eventmesh-dashboard-dist/pom.xml b/eventmesh-dashboard-dist/pom.xml
new file mode 100644
index 0000000..defd580
--- /dev/null
+++ b/eventmesh-dashboard-dist/pom.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.eventmesh.dashboard</groupId>
+ <artifactId>eventmesh-dashboard</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>eventmesh-dashboard-dist</artifactId>
+ <name>Archetype - eventmesh-dashboard-dist</name>
+ <url>http://maven.apache.org</url>
+
+ <profiles>
+ <profile>
+ <id>release-package</id>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.eventmesh.dashboard</groupId>
+ <artifactId>eventmesh-dashboard-console</artifactId>
+ <version>${project.parent.version}</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>3.7.1</version>
+ <configuration>
+ <descriptors>
+
<descriptor>ReleaseKnowStreaming.xml</descriptor>
+ </descriptors>
+ <tarLongFileMode>posix</tarLongFileMode>
+ </configuration>
+ <executions>
+ <execution>
+ <id>make-assembly</id>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ <finalName>eventmesh-dashboard</finalName>
+ </build>
+ </profile>
+ </profiles>
+</project>
diff --git a/eventmesh-dashboard-observe/pom.xml
b/eventmesh-dashboard-observe/pom.xml
index 9187910..b4bdb10 100644
--- a/eventmesh-dashboard-observe/pom.xml
+++ b/eventmesh-dashboard-observe/pom.xml
@@ -27,7 +27,6 @@
<version>0.0.1-SNAPSHOT</version>
</parent>
- <groupId>org.apache.eventmesh.dashboard.observe</groupId>
<artifactId>eventmesh-dashboard-observe</artifactId>
<properties>
diff --git a/eventmesh-dashboard-service/pom.xml
b/eventmesh-dashboard-service/pom.xml
index 39ca74a..cf3d64c 100644
--- a/eventmesh-dashboard-service/pom.xml
+++ b/eventmesh-dashboard-service/pom.xml
@@ -25,7 +25,6 @@
<artifactId>eventmesh-dashboard</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
- <groupId>org.apache.eventmesh.dashboard.service</groupId>
<artifactId>eventmesh-dashboard-service</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eventmesh-dashboard-service</name>
@@ -40,7 +39,7 @@
<dependencies>
<!-- EventMesh Dashboard modules -->
<dependency>
- <groupId>org.apache.eventmesh.dashboard.common</groupId>
+ <groupId>org.apache.eventmesh.dashboard</groupId>
<artifactId>eventmesh-dashboard-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
diff --git a/pom.xml b/pom.xml
index 4c5598f..86db9c1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -88,6 +88,7 @@
<module>eventmesh-dashboard-core</module>
<module>eventmesh-dashboard-observe</module>
<module>eventmesh-dashboard-agent</module>
+ <module>eventmesh-dashboard-dist</module>
</modules>
<dependencyManagement>
@@ -222,7 +223,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.3</version>
<configuration>
- <argLine>-Xmx1024m -XX:MaxPermSize=256m</argLine>
+ <argLine>-Xmx1024m</argLine>
<testFailureIgnore>true</testFailureIgnore>
<includes>
<include>**/*Test*.java</include>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]