This is an automated email from the ASF dual-hosted git repository.
wuzhiguo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/bigtop-manager.git
The following commit(s) were added to refs/heads/main by this push:
new 04875b86 BIGTOP-4246: Refactor APIs for Cluster (#99)
04875b86 is described below
commit 04875b86e90979493b81088128905c2bb5ed4de6
Author: Zhiguo Wu <[email protected]>
AuthorDate: Wed Nov 6 15:17:24 2024 +0000
BIGTOP-4246: Refactor APIs for Cluster (#99)
---
.../service/ComponentStatusServiceGrpcImpl.java | 2 +-
.../message/entity/payload/CommandPayload.java | 2 +-
.../common/message/entity/pojo/ClusterInfo.java | 14 +----
.../apache/bigtop/manager/dao/po/ClusterPO.java | 37 ++++++------
.../bigtop/manager/dao/repository/ClusterDao.java | 9 +--
.../main/resources/mapper/mysql/ClusterMapper.xml | 40 ++++++-------
.../resources/mapper/mysql/ComponentMapper.xml | 2 +-
.../resources/mapper/mysql/HostComponentMapper.xml | 10 ++--
.../src/main/resources/mapper/mysql/HostMapper.xml | 8 +--
.../main/resources/mapper/mysql/ServiceMapper.xml | 4 +-
.../resources/mapper/postgresql/ClusterMapper.xml | 40 ++++++-------
.../mapper/postgresql/ComponentMapper.xml | 2 +-
.../mapper/postgresql/HostComponentMapper.xml | 10 ++--
.../resources/mapper/postgresql/HostMapper.xml | 8 +--
.../resources/mapper/postgresql/ServiceMapper.xml | 4 +-
.../server/command/job/ClusterCreateJob.java | 64 ++++++++++++++-------
.../server/command/job/ServiceInstallJob.java | 3 -
.../command/stage/AbstractComponentStage.java | 4 +-
.../server/command/stage/HostCheckStage.java | 3 -
.../manager/server/command/stage/StageContext.java | 10 ++--
.../server/command/task/AbstractComponentTask.java | 2 +-
.../server/command/task/CacheFileUpdateTask.java | 14 +----
.../manager/server/command/task/TaskContext.java | 2 +-
.../command/validator/ClusterCreateValidator.java | 9 ++-
.../command/validator/ClusterHostValidator.java | 67 ----------------------
.../manager/server/controller/HostController.java | 24 ++++----
.../manager/server/enums/ApiExceptionEnum.java | 2 +-
.../{HostStatus.java => HealthyStatusEnum.java} | 8 +--
.../bigtop/manager/server/enums/LocaleKeys.java | 2 +-
.../server/model/converter/ClusterConverter.java | 6 +-
.../manager/server/model/dto/ClusterDTO.java | 14 ++---
.../bigtop/manager/server/model/dto/HostDTO.java | 2 +
.../model/dto/command/ClusterCommandDTO.java | 14 ++---
.../manager/server/model/req/ClusterReq.java | 21 +------
.../bigtop/manager/server/model/req/HostReq.java | 3 +
.../model/req/command/ClusterCommandReq.java | 26 ++++-----
.../bigtop/manager/server/model/vo/ClusterVO.java | 22 +++++--
.../manager/server/service/ClusterService.java | 7 ---
.../bigtop/manager/server/service/HostService.java | 6 +-
.../server/service/impl/ClusterServiceImpl.java | 61 ++------------------
.../server/service/impl/HostServiceImpl.java | 13 ++---
.../src/main/resources/ddl/MySQL-DDL-CREATE.sql | 27 ++++-----
.../main/resources/ddl/PostgreSQL-DDL-CREATE.sql | 29 +++++-----
.../main/resources/i18n/messages_en_US.properties | 2 +-
.../main/resources/i18n/messages_zh_CN.properties | 2 +-
.../server/controller/HostControllerTest.java | 38 +++++-------
.../manager/server/service/ClusterServiceTest.java | 34 ++---------
.../manager/stack/bigtop/param/BigtopParams.java | 4 +-
.../manager/stack/core/param/BaseParams.java | 2 +-
.../manager/stack/core/utils/LocalSettings.java | 4 +-
50 files changed, 273 insertions(+), 470 deletions(-)
diff --git
a/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/service/ComponentStatusServiceGrpcImpl.java
b/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/service/ComponentStatusServiceGrpcImpl.java
index 0f43995a..d2d745cf 100644
---
a/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/service/ComponentStatusServiceGrpcImpl.java
+++
b/bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/service/ComponentStatusServiceGrpcImpl.java
@@ -48,7 +48,7 @@ public class ComponentStatusServiceGrpcImpl extends
ComponentStatusServiceGrpc.C
commandPayload.setServiceUser(request.getServiceUser());
commandPayload.setComponentName(request.getComponentName());
commandPayload.setCommandScript(JsonUtils.readFromString(request.getCommandScript(),
ScriptInfo.class));
- commandPayload.setRoot(request.getRoot());
+ commandPayload.setRootDir(request.getRoot());
commandPayload.setStackName(request.getStackName());
commandPayload.setStackVersion(request.getStackVersion());
ShellResult shellResult = StackExecutor.execute(commandPayload);
diff --git
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/message/entity/payload/CommandPayload.java
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/message/entity/payload/CommandPayload.java
index bf7951c9..142f7d4f 100644
---
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/message/entity/payload/CommandPayload.java
+++
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/message/entity/payload/CommandPayload.java
@@ -52,7 +52,7 @@ public class CommandPayload extends BasePayload {
private String stackVersion;
- private String root;
+ private String rootDir;
private String componentName;
diff --git
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/message/entity/pojo/ClusterInfo.java
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/message/entity/pojo/ClusterInfo.java
index 94ea3ae8..1c750c73 100644
---
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/message/entity/pojo/ClusterInfo.java
+++
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/message/entity/pojo/ClusterInfo.java
@@ -20,22 +20,10 @@ package
org.apache.bigtop.manager.common.message.entity.pojo;
import lombok.Data;
-import java.util.List;
-
@Data
public class ClusterInfo {
- private String clusterName;
-
- private String stackName;
-
- private String stackVersion;
-
private String userGroup;
- private String root;
-
- private String repoTemplate;
-
- private List<String> packages;
+ private String rootDir;
}
diff --git
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ClusterPO.java
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ClusterPO.java
index 3076e22c..96789e1e 100644
---
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ClusterPO.java
+++
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ClusterPO.java
@@ -36,35 +36,36 @@ public class ClusterPO extends BasePO implements
Serializable {
@Column(name = "id")
private Long id;
- @Column(name = "cluster_name")
- private String clusterName;
+ @Column(name = "name")
+ private String name;
- @Column(name = "cluster_type")
- private Integer clusterType;
+ @Column(name = "desc")
+ private String desc;
- @Column(name = "root")
- private String root;
+ @Column(name = "type")
+ private Integer type;
@Column(name = "user_group")
private String userGroup;
- @Column(name = "packages")
- private String packages;
+ @Column(name = "root_dir")
+ private String rootDir;
- @Column(name = "repo_template")
- private String repoTemplate;
+ @Column(name = "status")
+ private Integer status;
- @Column(name = "state")
- private String state;
+ @Transient
+ private String createUser;
+
+ @Transient
+ private Long totalHost;
- @Column(name = "selected")
- private Boolean selected;
+ @Transient
+ private Long totalProcessor;
@Transient
- @Column(name = "stack_name")
- private String stackName;
+ private Long totalMemory;
@Transient
- @Column(name = "stack_version")
- private String stackVersion;
+ private Long totalDisk;
}
diff --git
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ClusterDao.java
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ClusterDao.java
index de2ec326..af60ee87 100644
---
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ClusterDao.java
+++
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ClusterDao.java
@@ -23,16 +23,13 @@ import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.ibatis.annotations.Param;
-import java.util.List;
-import java.util.Optional;
-
public interface ClusterDao extends BaseDao<ClusterPO> {
- Optional<ClusterPO> findByClusterName(@Param("clusterName") String
clusterName);
+ ClusterPO findDetailsById(@Param("id") Long id);
+
+ ClusterPO findByName(@Param("name") String name);
Integer count();
ClusterPO findByIdJoin(@Param("clusterId") Long clusterId);
-
- List<ClusterPO> findAllByJoin();
}
diff --git
a/bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml
b/bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml
index 75caa42a..a691861b 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml
@@ -24,22 +24,32 @@
<mapper namespace="org.apache.bigtop.manager.dao.repository.ClusterDao">
<sql id="baseColumns">
- id, cluster_name, cluster_type, root, user_group, packages,
repo_template, state, selected, stack_id
+ id, name, desc, type, user_group, root_dir, status
</sql>
<sql id="baseColumnsV2">
- ${alias}.id, ${alias}.cluster_name, ${alias}.cluster_type,
${alias}.root, ${alias}.user_group, ${alias}.packages, ${alias}.repo_template,
${alias}.state, ${alias}.selected, ${alias}.stack_id
+ ${alias}.id, ${alias}.name, ${alias}.desc, ${alias}.type,
${alias}.user_group, ${alias}.root_dir, ${alias}.status
</sql>
- <select id="findByClusterName"
resultType="org.apache.bigtop.manager.dao.po.ClusterPO">
+ <select id="findDetailsById"
resultType="org.apache.bigtop.manager.dao.po.ClusterPO">
+ select
+ <include refid="baseColumnsV2">
+ <property name="alias" value="c"/>
+ </include>, u.nickname as create_user,
+ count(h.id) as total_host, sum(h.available_processors) as
total_processor,
+ sum(h.total_memory_size) as total_memory, sum(h.total_disk) as
total_disk
+ from
+ cluster c left join user u on c.create_by = u.id
+ left join host h on c.id = h.cluster_id
+ where c.id = #{id}
+ limit 1
+ </select>
+
+ <select id="findByName"
resultType="org.apache.bigtop.manager.dao.po.ClusterPO">
select
<include refid="baseColumns"/>
from
cluster
- <where>
- <if test="clusterName!=null">
- cluster_name=#{clusterName}
- </if>
- </where>
+ where name = #{name}
limit 1
</select>
@@ -64,18 +74,4 @@
</if>
</where>
</select>
-
- <select id="findAllByJoin"
- resultType="org.apache.bigtop.manager.dao.po.ClusterPO">
- select
- <include refid="baseColumnsV2">
- <property name="alias" value="r"/>
- </include>
- , s.stack_name, s.stack_version
- from
- cluster r
- inner join stack s
- on r.stack_id = s.id
- </select>
-
</mapper>
\ No newline at end of file
diff --git
a/bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml
b/bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml
index cc1c93d6..1a567de4 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml
@@ -52,7 +52,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="r"/>
</include>
- ,c.cluster_name, s.service_name
+ ,c.name as cluster_name, s.service_name
from
component r
inner join cluster c
diff --git
a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
index c01dd029..9f906104 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
@@ -57,7 +57,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="hc"/>
</include>
- , c.service_id, c.component_name, c.display_name, c.category,
s.service_name, clus.cluster_name, ht.hostname
+ , c.service_id, c.component_name, c.display_name, c.category,
s.service_name, clus.name as cluster_name, ht.hostname
from
host_component hc
inner join (select * from component
@@ -148,7 +148,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="hc"/>
</include>
- , c.service_id, c.component_name, c.display_name, c.category,
s.service_name, clus.cluster_name, ht.hostname
+ , c.service_id, c.component_name, c.display_name, c.category,
s.service_name, clus.name as cluster_name, ht.hostname
from
host_component hc
inner join component c
@@ -176,7 +176,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="hc"/>
</include>
- , c.service_id, c.component_name, c.display_name, c.category,
s.service_name, clus.cluster_name, ht.hostname
+ , c.service_id, c.component_name, c.display_name, c.category,
s.service_name, clus.name as cluster_name, ht.hostname
from
host_component hc
inner join (select * from component
@@ -201,7 +201,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="hc"/>
</include>
-
,st.stack_name,st.stack_version,ser.service_name,ser.service_user,clu.root,c.component_name,c.command_script,hst.hostname
+
,ser.service_name,ser.service_user,clu.root_dir,c.component_name,c.command_script,hst.hostname
from
host_component hc
inner join host hst
@@ -215,8 +215,6 @@
inner join
service ser
on c.service_id=ser.id and c.cluster_id = ser.cluster_id
- inner join stack st
- on clu.stack_id = st.id
</select>
<select id="countByHostId" resultType="java.lang.Integer">
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostMapper.xml
b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostMapper.xml
index e530890c..97b95be0 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostMapper.xml
@@ -54,7 +54,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="h"/>
</include>
- ,clus.cluster_name
+ ,clus.name as cluster_name
from
(select * from host
<where>
@@ -75,7 +75,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="h"/>
</include>
- ,clus.cluster_name
+ ,clus.name as cluster_name
from
host h
inner join
@@ -109,7 +109,7 @@
select
<include refid="baseColumnsV2">
<property name="alias" value="h"/>
- </include>, c.cluster_name, count(hc.id) as component_num
+ </include>, c.name as cluster_name, count(hc.id) as component_num
from host h
left join cluster c on h.cluster_id = c.id
left join host_component hc on h.id = hc.host_id
@@ -134,7 +134,7 @@
select
<include refid="baseColumnsV2">
<property name="alias" value="h"/>
- </include>, c.cluster_name, count(hc.id) as component_num
+ </include>, c.name as cluster_name, count(hc.id) as component_num
from host h
left join cluster c on h.cluster_id = c.id
left join host_component hc on h.id = hc.host_id
diff --git
a/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
index 9b38c838..3f951e04 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
@@ -58,7 +58,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="s"/>
</include>
- , clus.cluster_name, clus.user_group, c.component_name, c.category,
c.quick_link, c.id as cid
+ , clus.name as cluster_name, clus.user_group, c.component_name,
c.category, c.quick_link, c.id as cid
from
(select * from service
<where>
@@ -81,7 +81,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="s"/>
</include>
- , clus.cluster_name, clus.user_group
+ , clus.name as cluster_name, clus.user_group
from
(select * from service
<where>
diff --git
a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ClusterMapper.xml
b/bigtop-manager-dao/src/main/resources/mapper/postgresql/ClusterMapper.xml
index 75caa42a..99c515ed 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ClusterMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/postgresql/ClusterMapper.xml
@@ -24,22 +24,32 @@
<mapper namespace="org.apache.bigtop.manager.dao.repository.ClusterDao">
<sql id="baseColumns">
- id, cluster_name, cluster_type, root, user_group, packages,
repo_template, state, selected, stack_id
+ id, name, "desc", type, user_group, root_dir, status
</sql>
<sql id="baseColumnsV2">
- ${alias}.id, ${alias}.cluster_name, ${alias}.cluster_type,
${alias}.root, ${alias}.user_group, ${alias}.packages, ${alias}.repo_template,
${alias}.state, ${alias}.selected, ${alias}.stack_id
+ ${alias}.id, ${alias}.name, ${alias}."desc", ${alias}.type,
${alias}.user_group, ${alias}.root_dir, ${alias}.status
</sql>
- <select id="findByClusterName"
resultType="org.apache.bigtop.manager.dao.po.ClusterPO">
+ <select id="findDetailsById"
resultType="org.apache.bigtop.manager.dao.po.ClusterPO">
+ select
+ <include refid="baseColumnsV2">
+ <property name="alias" value="c"/>
+ </include>, u.nickname as create_user,
+ count(h.id) as total_host, sum(h.available_processors) as
total_processor,
+ sum(h.total_memory_size) as total_memory, sum(h.total_disk) as
total_disk
+ from
+ cluster c left join user u on c.create_by = u.id
+ left join host h on c.id = h.cluster_id
+ where c.id = #{id}
+ limit 1
+ </select>
+
+ <select id="findByName"
resultType="org.apache.bigtop.manager.dao.po.ClusterPO">
select
<include refid="baseColumns"/>
from
cluster
- <where>
- <if test="clusterName!=null">
- cluster_name=#{clusterName}
- </if>
- </where>
+ where name = #{name}
limit 1
</select>
@@ -64,18 +74,4 @@
</if>
</where>
</select>
-
- <select id="findAllByJoin"
- resultType="org.apache.bigtop.manager.dao.po.ClusterPO">
- select
- <include refid="baseColumnsV2">
- <property name="alias" value="r"/>
- </include>
- , s.stack_name, s.stack_version
- from
- cluster r
- inner join stack s
- on r.stack_id = s.id
- </select>
-
</mapper>
\ No newline at end of file
diff --git
a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ComponentMapper.xml
b/bigtop-manager-dao/src/main/resources/mapper/postgresql/ComponentMapper.xml
index cc1c93d6..1a567de4 100644
---
a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ComponentMapper.xml
+++
b/bigtop-manager-dao/src/main/resources/mapper/postgresql/ComponentMapper.xml
@@ -52,7 +52,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="r"/>
</include>
- ,c.cluster_name, s.service_name
+ ,c.name as cluster_name, s.service_name
from
component r
inner join cluster c
diff --git
a/bigtop-manager-dao/src/main/resources/mapper/postgresql/HostComponentMapper.xml
b/bigtop-manager-dao/src/main/resources/mapper/postgresql/HostComponentMapper.xml
index 927a6e61..ada7d947 100644
---
a/bigtop-manager-dao/src/main/resources/mapper/postgresql/HostComponentMapper.xml
+++
b/bigtop-manager-dao/src/main/resources/mapper/postgresql/HostComponentMapper.xml
@@ -57,7 +57,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="hc"/>
</include>
- , c.service_id, c.component_name, c.display_name, c.category,
s.service_name, clus.cluster_name, ht.hostname
+ , c.service_id, c.component_name, c.display_name, c.category,
s.service_name, clus.name as cluster_name, ht.hostname
from
host_component hc
inner join (select * from component
@@ -148,7 +148,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="hc"/>
</include>
- , c.service_id, c.component_name, c.display_name, c.category,
s.service_name, clus.cluster_name, ht.hostname
+ , c.service_id, c.component_name, c.display_name, c.category,
s.service_name, clus.name as cluster_name, ht.hostname
from
host_component hc
inner join component c
@@ -176,7 +176,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="hc"/>
</include>
- , c.service_id, c.component_name, c.display_name, c.category,
s.service_name, clus.cluster_name, ht.hostname
+ , c.service_id, c.component_name, c.display_name, c.category,
s.service_name, clus.name as cluster_name, ht.hostname
from
host_component hc
inner join (select * from component
@@ -201,7 +201,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="hc"/>
</include>
-
,st.stack_name,st.stack_version,ser.service_name,ser.service_user,clu.root,c.component_name,c.command_script,hst.hostname
+
,ser.service_name,ser.service_user,clu.root_dir,c.component_name,c.command_script,hst.hostname
from
host_component hc
inner join host hst
@@ -215,8 +215,6 @@
inner join
service ser
on c.service_id=ser.id and c.cluster_id = ser.cluster_id
- inner join stack st
- on clu.stack_id = st.id
</select>
<select id="countByHostId" resultType="java.lang.Integer">
diff --git
a/bigtop-manager-dao/src/main/resources/mapper/postgresql/HostMapper.xml
b/bigtop-manager-dao/src/main/resources/mapper/postgresql/HostMapper.xml
index 4659b421..d98dc593 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/HostMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/postgresql/HostMapper.xml
@@ -54,7 +54,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="h"/>
</include>
- ,clus.cluster_name
+ ,clus.name as cluster_name
from
(select * from host
<where>
@@ -75,7 +75,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="h"/>
</include>
- ,clus.cluster_name
+ ,clus.name as cluster_name
from
host h
left join cluster clus
@@ -102,7 +102,7 @@
select
<include refid="baseColumnsV2">
<property name="alias" value="h"/>
- </include>, c.cluster_name, count(hc.id) as component_num
+ </include>, c.name as cluster_name, count(hc.id) as component_num
from host h
left join cluster c on h.cluster_id = c.id
left join host_component hc on h.id = hc.host_id
@@ -127,7 +127,7 @@
select
<include refid="baseColumnsV2">
<property name="alias" value="h"/>
- </include>, c.cluster_name, count(hc.id) as component_num
+ </include>, c.name as cluster_name, count(hc.id) as component_num
from host h
left join cluster c on h.cluster_id = c.id
left join host_component hc on h.id = hc.host_id
diff --git
a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ServiceMapper.xml
b/bigtop-manager-dao/src/main/resources/mapper/postgresql/ServiceMapper.xml
index 9b38c838..3f951e04 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ServiceMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/postgresql/ServiceMapper.xml
@@ -58,7 +58,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="s"/>
</include>
- , clus.cluster_name, clus.user_group, c.component_name, c.category,
c.quick_link, c.id as cid
+ , clus.name as cluster_name, clus.user_group, c.component_name,
c.category, c.quick_link, c.id as cid
from
(select * from service
<where>
@@ -81,7 +81,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="s"/>
</include>
- , clus.cluster_name, clus.user_group
+ , clus.name as cluster_name, clus.user_group
from
(select * from service
<where>
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterCreateJob.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterCreateJob.java
index 91a4c609..dc81e8ab 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterCreateJob.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ClusterCreateJob.java
@@ -18,25 +18,28 @@
*/
package org.apache.bigtop.manager.server.command.job;
-import org.apache.bigtop.manager.common.enums.MaintainState;
-import org.apache.bigtop.manager.dao.po.ClusterPO;
+import org.apache.bigtop.manager.dao.po.HostPO;
import org.apache.bigtop.manager.dao.po.JobPO;
import org.apache.bigtop.manager.dao.po.StagePO;
import org.apache.bigtop.manager.dao.po.TaskPO;
+import org.apache.bigtop.manager.dao.repository.HostDao;
import org.apache.bigtop.manager.server.command.stage.CacheFileUpdateStage;
import org.apache.bigtop.manager.server.command.stage.HostCheckStage;
import org.apache.bigtop.manager.server.command.stage.Stage;
import org.apache.bigtop.manager.server.command.stage.StageContext;
import org.apache.bigtop.manager.server.command.task.Task;
+import org.apache.bigtop.manager.server.enums.HealthyStatusEnum;
import org.apache.bigtop.manager.server.holder.SpringContextHolder;
import org.apache.bigtop.manager.server.model.converter.ClusterConverter;
import org.apache.bigtop.manager.server.model.dto.ClusterDTO;
import org.apache.bigtop.manager.server.model.dto.CommandDTO;
-import org.apache.bigtop.manager.server.service.ClusterService;
+
+import java.util.ArrayList;
+import java.util.List;
public class ClusterCreateJob extends AbstractJob {
- private ClusterService clusterService;
+ private HostDao hostDao;
public ClusterCreateJob(JobContext jobContext) {
super(jobContext);
@@ -46,7 +49,7 @@ public class ClusterCreateJob extends AbstractJob {
protected void injectBeans() {
super.injectBeans();
- this.clusterService =
SpringContextHolder.getBean(ClusterService.class);
+ hostDao = SpringContextHolder.getBean(HostDao.class);
}
@Override
@@ -60,26 +63,50 @@ public class ClusterCreateJob extends AbstractJob {
public void beforeRun() {
super.beforeRun();
- // Save cluster
- CommandDTO commandDTO = jobContext.getCommandDTO();
- ClusterDTO clusterDTO =
ClusterConverter.INSTANCE.fromCommand2DTO(commandDTO.getClusterCommand());
- clusterService.save(clusterDTO);
+ saveCluster();
+
+ linkHostToCluster();
+
+ linkJobToCluster();
}
@Override
public void onSuccess() {
super.onSuccess();
+ }
+
+ @Override
+ public String getName() {
+ return "Create cluster";
+ }
+
+ private void saveCluster() {
+ CommandDTO commandDTO = jobContext.getCommandDTO();
+ ClusterDTO clusterDTO =
ClusterConverter.INSTANCE.fromCommand2DTO(commandDTO.getClusterCommand());
+ clusterPO = clusterDao.findByName(clusterDTO.getName());
+ if (clusterPO == null) {
+ clusterPO = ClusterConverter.INSTANCE.fromDTO2PO(clusterDTO);
+ }
+ clusterPO.setStatus(HealthyStatusEnum.UNHEALTHY.getCode());
+ clusterDao.save(clusterPO);
+ }
+
+ private void linkHostToCluster() {
CommandDTO commandDTO = jobContext.getCommandDTO();
- ClusterPO clusterPO = clusterDao
-
.findByClusterName(commandDTO.getClusterCommand().getClusterName())
- .orElse(new ClusterPO());
+ List<Long> ids = commandDTO.getClusterCommand().getHostIds();
+ List<HostPO> hostPOList = new ArrayList<>();
+ for (Long id : ids) {
+ HostPO hostPO = new HostPO();
+ hostPO.setId(id);
+ hostPO.setClusterId(clusterPO.getId());
+ hostPOList.add(hostPO);
+ }
- // Update cluster state to installed
- clusterPO.setState(MaintainState.INSTALLED.getName());
- clusterDao.partialUpdateById(clusterPO);
+ hostDao.partialUpdateByIds(hostPOList);
+ }
- // Link job to cluster after cluster successfully added
+ private void linkJobToCluster() {
JobPO jobPO = getJobPO();
jobPO.setClusterId(clusterPO.getId());
jobDao.partialUpdateById(jobPO);
@@ -96,9 +123,4 @@ public class ClusterCreateJob extends AbstractJob {
}
}
}
-
- @Override
- public String getName() {
- return "Create cluster";
- }
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceInstallJob.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceInstallJob.java
index c701f8c7..4cf3107c 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceInstallJob.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/ServiceInstallJob.java
@@ -139,9 +139,6 @@ public class ServiceInstallJob extends AbstractServiceJob {
String serviceName = serviceCommand.getServiceName();
ClusterPO clusterPO = clusterDao.findByIdJoin(clusterId);
- String stackName = clusterPO.getStackName();
- String stackVersion = clusterPO.getStackVersion();
-
// 1. Persist service and components
if (servicePO == null) {
ServiceDTO serviceDTO = StackUtils.getServiceDTO(serviceName);
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/AbstractComponentStage.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/AbstractComponentStage.java
index 54b27282..3c9da086 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/AbstractComponentStage.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/AbstractComponentStage.java
@@ -67,14 +67,14 @@ public abstract class AbstractComponentStage extends
AbstractStage {
TaskContext taskContext = new TaskContext();
taskContext.setHostname(hostname);
taskContext.setClusterId(clusterPO.getId());
- taskContext.setClusterName(clusterPO.getClusterName());
+ taskContext.setClusterName(clusterPO.getName());
taskContext.setServiceName(serviceDTO.getServiceName());
taskContext.setStackName(stageContext.getStackName());
taskContext.setStackVersion(stageContext.getStackVersion());
taskContext.setComponentName(componentDTO.getComponentName());
taskContext.setComponentDisplayName(componentDTO.getDisplayName());
taskContext.setServiceUser(serviceDTO.getServiceUser());
- taskContext.setRoot(clusterPO.getRoot());
+ taskContext.setRootDir(clusterPO.getRootDir());
Map<String, Object> properties = new HashMap<>();
properties.put("customCommands", componentDTO.getCustomCommands());
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/HostCheckStage.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/HostCheckStage.java
index 5167cb32..b0f21478 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/HostCheckStage.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/HostCheckStage.java
@@ -45,9 +45,6 @@ public class HostCheckStage extends AbstractStage {
protected void beforeCreateTasks() {
if (stageContext.getClusterId() != null) {
ClusterPO clusterPO =
clusterDao.findByIdJoin(stageContext.getClusterId());
-
- stageContext.setStackName(clusterPO.getStackName());
- stageContext.setStackVersion(clusterPO.getStackVersion());
}
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/StageContext.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/StageContext.java
index dd26a7d6..ab7ee7a7 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/StageContext.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/StageContext.java
@@ -71,11 +71,11 @@ public class StageContext {
private static void fromClusterCommandPayload(StageContext context,
CommandDTO commandDTO) {
ClusterCommandDTO clusterCommand = commandDTO.getClusterCommand();
- context.setClusterName(clusterCommand.getClusterName());
- context.setStackName(clusterCommand.getStackName());
- context.setStackVersion(clusterCommand.getStackVersion());
- context.setHostnames(clusterCommand.getHostnames());
- context.setRepoInfoList(clusterCommand.getRepoInfoList());
+ context.setClusterName(clusterCommand.getName());
+ // context.setStackName(clusterCommand.getStackName());
+ // context.setStackVersion(clusterCommand.getStackVersion());
+ // context.setHostnames(clusterCommand.getHostnames());
+ // context.setRepoInfoList(clusterCommand.getRepoInfoList());
}
private static void fromHostCommandPayload(StageContext context,
CommandDTO commandDTO) {
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractComponentTask.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractComponentTask.java
index 03414e62..de70d595 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractComponentTask.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractComponentTask.java
@@ -62,7 +62,7 @@ public abstract class AbstractComponentTask extends
AbstractTask {
commandPayload.setStackName(taskContext.getStackName());
commandPayload.setStackVersion(taskContext.getStackVersion());
commandPayload.setComponentName(taskContext.getComponentName());
- commandPayload.setRoot(taskContext.getRoot());
+ commandPayload.setRootDir(taskContext.getRootDir());
commandPayload.setHostname(taskContext.getHostname());
Map<String, Object> properties = taskContext.getProperties();
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/CacheFileUpdateTask.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/CacheFileUpdateTask.java
index 70b969a4..2265560c 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/CacheFileUpdateTask.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/CacheFileUpdateTask.java
@@ -118,10 +118,6 @@ public class CacheFileUpdateTask extends AbstractTask {
ClusterPO clusterPO =
clusterDao.findByIdJoin(taskContext.getClusterId());
Long clusterId = clusterPO.getId();
- String clusterName = clusterPO.getClusterName();
-
- String stackName = clusterPO.getStackName();
- String stackVersion = clusterPO.getStackVersion();
List<ServicePO> servicePOList =
serviceDao.findAllByClusterId(clusterId);
List<ServiceConfigPO> serviceConfigPOList =
@@ -132,13 +128,8 @@ public class CacheFileUpdateTask extends AbstractTask {
List<HostPO> hostPOList = hostDao.findAllByClusterId(clusterId);
clusterInfo = new ClusterInfo();
- clusterInfo.setClusterName(clusterName);
- clusterInfo.setStackName(stackName);
- clusterInfo.setStackVersion(stackVersion);
clusterInfo.setUserGroup(clusterPO.getUserGroup());
- clusterInfo.setRepoTemplate(clusterPO.getRepoTemplate());
- clusterInfo.setRoot(clusterPO.getRoot());
- clusterInfo.setPackages(List.of(clusterPO.getPackages().split(",")));
+ clusterInfo.setRootDir(clusterPO.getRootDir());
serviceConfigMap = new HashMap<>();
for (ServiceConfigPO serviceConfigPO : serviceConfigPOList) {
@@ -212,9 +203,6 @@ public class CacheFileUpdateTask extends AbstractTask {
repoList = RepoConverter.INSTANCE.fromDTO2Message((List<RepoDTO>)
properties.get("repoInfoList"));
clusterInfo = new ClusterInfo();
- clusterInfo.setClusterName(taskContext.getClusterName());
- clusterInfo.setStackName(taskContext.getStackName());
- clusterInfo.setStackVersion(taskContext.getStackVersion());
List<String> hostnames = (List<String>) properties.get("hostnames");
hostMap.put(Constants.ALL_HOST_KEY, new HashSet<>(hostnames));
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/TaskContext.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/TaskContext.java
index 02a2242c..82b8436d 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/TaskContext.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/TaskContext.java
@@ -49,7 +49,7 @@ public class TaskContext {
private String customCommand;
- private String root;
+ private String rootDir;
// Extra properties for specific tasks
protected Map<String, Object> properties;
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/ClusterCreateValidator.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/ClusterCreateValidator.java
index adc9dc3c..6c639582 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/ClusterCreateValidator.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/ClusterCreateValidator.java
@@ -31,7 +31,6 @@ import org.springframework.stereotype.Component;
import jakarta.annotation.Resource;
import java.util.List;
-import java.util.Optional;
@Component
public class ClusterCreateValidator implements CommandValidator {
@@ -47,12 +46,12 @@ public class ClusterCreateValidator implements
CommandValidator {
@Override
public void validate(ValidatorContext context) {
ClusterCommandDTO clusterCommand =
context.getCommandDTO().getClusterCommand();
- String clusterName = clusterCommand.getClusterName();
+ String clusterName = clusterCommand.getName();
- Optional<ClusterPO> clusterOptional =
clusterDao.findByClusterName(clusterName);
+ ClusterPO clusterPO = clusterDao.findByName(clusterName);
- if (clusterOptional.isPresent()) {
- throw new ApiException(ApiExceptionEnum.CLUSTER_IS_INSTALLED,
clusterName);
+ if (clusterPO == null) {
+ throw new ApiException(ApiExceptionEnum.CLUSTER_EXISTS,
clusterName);
}
}
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/ClusterHostValidator.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/ClusterHostValidator.java
deleted file mode 100644
index d007f205..00000000
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/ClusterHostValidator.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * https://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.bigtop.manager.server.command.validator;
-
-import org.apache.bigtop.manager.common.enums.Command;
-import org.apache.bigtop.manager.dao.po.HostPO;
-import org.apache.bigtop.manager.dao.repository.HostDao;
-import org.apache.bigtop.manager.server.command.CommandIdentifier;
-import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
-import org.apache.bigtop.manager.server.enums.CommandLevel;
-import org.apache.bigtop.manager.server.exception.ApiException;
-import org.apache.bigtop.manager.server.grpc.GrpcClient;
-import org.apache.bigtop.manager.server.model.dto.command.ClusterCommandDTO;
-
-import org.apache.commons.collections4.CollectionUtils;
-
-import org.springframework.stereotype.Component;
-
-import jakarta.annotation.Resource;
-import java.util.List;
-
-@Component
-public class ClusterHostValidator implements CommandValidator {
-
- @Resource
- private HostDao hostDao;
-
- @Override
- public List<CommandIdentifier> getCommandIdentifiers() {
- return List.of(new CommandIdentifier(CommandLevel.CLUSTER,
Command.CREATE));
- }
-
- @Override
- public void validate(ValidatorContext context) {
- ClusterCommandDTO clusterCommand =
context.getCommandDTO().getClusterCommand();
- List<String> hostnames = clusterCommand.getHostnames();
-
- List<HostPO> hostPOList = hostDao.findAllByHostnameIn(hostnames);
- if (CollectionUtils.isNotEmpty(hostPOList)) {
- List<String> existsHostnames =
- hostPOList.stream().map(HostPO::getHostname).toList();
- throw new ApiException(ApiExceptionEnum.HOST_ASSIGNED,
String.join(",", existsHostnames));
- }
-
- for (String hostname : hostnames) {
- if (!GrpcClient.isChannelAlive(hostname)) {
- GrpcClient.createChannel(hostname);
- }
- }
- }
-}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/HostController.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/HostController.java
index 3a67a661..e49bf435 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/HostController.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/HostController.java
@@ -47,9 +47,9 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import java.util.List;
-@Tag(name = "Cluster Host Controller")
+@Tag(name = "Host Controller")
@RestController
-@RequestMapping("/clusters/{clusterId}/hosts")
+@RequestMapping("/hosts")
public class HostController {
@Resource
@@ -67,41 +67,39 @@ public class HostController {
schema = @Schema(type = "string", defaultValue = "asc"))
})
@GetMapping
- public ResponseEntity<PageVO<HostVO>> list(@PathVariable Long clusterId,
HostQuery hostQuery) {
- return ResponseEntity.success(hostService.list(clusterId, hostQuery));
+ public ResponseEntity<PageVO<HostVO>> list(HostQuery hostQuery) {
+ return ResponseEntity.success(hostService.list(hostQuery));
}
@Operation(summary = "add", description = "Add a host")
@PostMapping
- public ResponseEntity<List<HostVO>> add(@PathVariable Long clusterId,
@RequestBody @Validated HostReq hostReq) {
+ public ResponseEntity<List<HostVO>> add(@RequestBody @Validated HostReq
hostReq) {
HostDTO hostDTO = HostConverter.INSTANCE.fromReq2DTO(hostReq);
- return ResponseEntity.success(hostService.add(clusterId, hostDTO));
+ return ResponseEntity.success(hostService.add(hostDTO));
}
@Operation(summary = "get", description = "Get a host")
@GetMapping("/{id}")
- public ResponseEntity<HostVO> get(@PathVariable Long id, @PathVariable
Long clusterId) {
+ public ResponseEntity<HostVO> get(@PathVariable Long id) {
return ResponseEntity.success(hostService.get(id));
}
@Operation(summary = "update", description = "Update a host")
@PutMapping("/{id}")
- public ResponseEntity<HostVO> update(
- @PathVariable Long clusterId, @PathVariable Long id, @RequestBody
@Validated HostReq hostReq) {
+ public ResponseEntity<HostVO> update(@PathVariable Long id, @RequestBody
@Validated HostReq hostReq) {
HostDTO hostDTO = HostConverter.INSTANCE.fromReq2DTO(hostReq);
- return ResponseEntity.success(hostService.update(id, clusterId,
hostDTO));
+ return ResponseEntity.success(hostService.update(id, hostDTO));
}
@Operation(summary = "delete", description = "Delete a host")
@DeleteMapping("/{id}")
- public ResponseEntity<Boolean> delete(@PathVariable Long clusterId,
@PathVariable Long id) {
+ public ResponseEntity<Boolean> delete(@PathVariable Long id) {
return ResponseEntity.success(hostService.delete(id));
}
@Operation(summary = "Check connection", description = "Check connection
for hosts")
@PostMapping("/check-connection")
- public ResponseEntity<Boolean> checkConnection(
- @PathVariable Long clusterId, @RequestBody @Validated HostReq
hostReq) {
+ public ResponseEntity<Boolean> checkConnection(@RequestBody @Validated
HostReq hostReq) {
HostDTO hostDTO = HostConverter.INSTANCE.fromReq2DTO(hostReq);
return ResponseEntity.success(hostService.checkConnection(hostDTO));
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/ApiExceptionEnum.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/ApiExceptionEnum.java
index 7b4cf545..2613fc47 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/ApiExceptionEnum.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/ApiExceptionEnum.java
@@ -32,7 +32,7 @@ public enum ApiExceptionEnum {
// Cluster Exceptions -- 11000 ~ 11999
CLUSTER_NOT_FOUND(11000, LocaleKeys.CLUSTER_NOT_FOUND),
- CLUSTER_IS_INSTALLED(11001, LocaleKeys.CLUSTER_IS_INSTALLED),
+ CLUSTER_EXISTS(11001, LocaleKeys.CLUSTER_EXISTS),
// Host Exceptions -- 12000 ~ 12999
HOST_NOT_FOUND(12000, LocaleKeys.HOST_NOT_FOUND),
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/HostStatus.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/HealthyStatusEnum.java
similarity index 85%
rename from
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/HostStatus.java
rename to
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/HealthyStatusEnum.java
index 483a8e8e..44d5a671 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/HostStatus.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/HealthyStatusEnum.java
@@ -21,7 +21,7 @@ package org.apache.bigtop.manager.server.enums;
import lombok.Getter;
@Getter
-public enum HostStatus {
+public enum HealthyStatusEnum {
HEALTHY(1),
UNHEALTHY(2),
UNKNOWN(3),
@@ -29,12 +29,12 @@ public enum HostStatus {
private final Integer code;
- HostStatus(Integer code) {
+ HealthyStatusEnum(Integer code) {
this.code = code;
}
- public static HostStatus fromCode(Integer code) {
- for (HostStatus status : HostStatus.values()) {
+ public static HealthyStatusEnum fromCode(Integer code) {
+ for (HealthyStatusEnum status : HealthyStatusEnum.values()) {
if (status.code.equals(code)) {
return status;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/LocaleKeys.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/LocaleKeys.java
index 2589290c..94314912 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/LocaleKeys.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/enums/LocaleKeys.java
@@ -35,7 +35,7 @@ public enum LocaleKeys {
LOGIN_ACCOUNT_DISABLED("login.account.disabled"),
CLUSTER_NOT_FOUND("cluster.not.found"),
- CLUSTER_IS_INSTALLED("cluster.is.installed"),
+ CLUSTER_EXISTS("cluster.exists"),
HOST_NOT_FOUND("host.not.found"),
HOST_ASSIGNED("host.assigned"),
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ClusterConverter.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ClusterConverter.java
index d9e86f62..c66c5134 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ClusterConverter.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ClusterConverter.java
@@ -28,6 +28,8 @@ import org.apache.bigtop.manager.server.model.vo.ClusterVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
+import java.util.List;
+
@Mapper(config = MapStructSharedConfig.class)
public interface ClusterConverter {
@@ -41,5 +43,7 @@ public interface ClusterConverter {
ClusterDTO fromPO2DTO(ClusterPO clusterPO);
- ClusterVO fromEntity2VO(ClusterPO clusterPO);
+ ClusterVO fromPO2VO(ClusterPO clusterPO);
+
+ List<ClusterVO> fromPO2VO(List<ClusterPO> clusterPOList);
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ClusterDTO.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ClusterDTO.java
index 4d335eab..651f248e 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ClusterDTO.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ClusterDTO.java
@@ -20,20 +20,16 @@ package org.apache.bigtop.manager.server.model.dto;
import lombok.Data;
-import java.util.List;
-
@Data
public class ClusterDTO {
- private String clusterName;
-
- private Integer clusterType;
+ private String name;
- private String stackName;
+ private String desc;
- private String stackVersion;
+ private Integer type;
- private List<RepoDTO> repoInfoList;
+ private String userGroup;
- private List<String> hostnames;
+ private String rootDir;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/HostDTO.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/HostDTO.java
index 592dc18e..945bfd39 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/HostDTO.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/HostDTO.java
@@ -26,6 +26,8 @@ import java.util.List;
public class HostDTO {
private List<String> hostnames;
+ private Long clusterId;
+
private String sshUser;
private Integer sshPort;
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/command/ClusterCommandDTO.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/command/ClusterCommandDTO.java
index c047007e..1a364b4c 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/command/ClusterCommandDTO.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/command/ClusterCommandDTO.java
@@ -18,8 +18,6 @@
*/
package org.apache.bigtop.manager.server.model.dto.command;
-import org.apache.bigtop.manager.server.model.dto.RepoDTO;
-
import lombok.Data;
import java.util.List;
@@ -27,15 +25,15 @@ import java.util.List;
@Data
public class ClusterCommandDTO {
- private String clusterName;
+ private String name;
- private Integer clusterType;
+ private String desc;
- private String stackName;
+ private Integer type;
- private String stackVersion;
+ private String userGroup;
- private List<RepoDTO> repoInfoList;
+ private String rootDir;
- private List<String> hostnames;
+ private List<Long> hostIds;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/ClusterReq.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/ClusterReq.java
index a125df7f..68be9211 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/ClusterReq.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/ClusterReq.java
@@ -23,29 +23,14 @@ import lombok.Data;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
-import java.util.List;
@Data
public class ClusterReq {
@NotEmpty
@Schema(example = "c1")
- private String clusterName;
+ private String name;
- @NotNull @Schema(example = "1")
- private Integer clusterType;
-
- @NotEmpty
- @Schema(example = "bigtop")
- private String stackName;
-
- @NotEmpty
- @Schema(example = "3.3.0")
- private String stackVersion;
-
- @NotEmpty
- private List<RepoReq> repoInfoList;
-
- @NotEmpty
- private List<String> hostnames;
+ @NotNull @Schema(example = "description")
+ private String desc;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/HostReq.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/HostReq.java
index 9bf8b38b..35eb5317 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/HostReq.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/HostReq.java
@@ -29,6 +29,9 @@ public class HostReq {
@Schema(example = "[host1, host2]")
private List<String> hostnames;
+ @Schema(example = "1")
+ private Long clusterId;
+
@Schema(example = "root")
private String sshUser;
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/command/ClusterCommandReq.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/command/ClusterCommandReq.java
index 820a02d6..f0f4a3d2 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/command/ClusterCommandReq.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/req/command/ClusterCommandReq.java
@@ -18,8 +18,6 @@
*/
package org.apache.bigtop.manager.server.model.req.command;
-import org.apache.bigtop.manager.server.model.req.RepoReq;
-
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -32,22 +30,20 @@ public class ClusterCommandReq {
@NotEmpty
@Schema(example = "c1")
- private String clusterName;
+ private String name;
+
+ @Schema(example = "desc")
+ private String desc;
@NotNull @Schema(example = "1")
- private Integer clusterType;
+ private Integer type;
- @NotEmpty
- @Schema(example = "bigtop")
- private String stackName;
+ @Schema(example = "hadoop")
+ private String userGroup;
- @NotEmpty
- @Schema(example = "3.3.0")
- private String stackVersion;
+ @Schema(example = "/opt")
+ private String rootDir;
- @NotEmpty
- private List<RepoReq> repoInfoList;
-
- @NotEmpty
- private List<String> hostnames;
+ @Schema(example = "[1, 2]")
+ private List<Long> hostIds;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/ClusterVO.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/ClusterVO.java
index d9c168a4..c710fb6a 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/ClusterVO.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/ClusterVO.java
@@ -25,15 +25,25 @@ public class ClusterVO {
private Long id;
- private String clusterName;
+ private String name;
- private Integer clusterType;
+ private String desc;
- private String stackName;
+ private Integer type;
- private String stackVersion;
+ private String userGroup;
- private Boolean selected;
+ private String rootDir;
- private String state;
+ private Integer status;
+
+ private String createUser;
+
+ private Long totalHost;
+
+ private Long totalProcessor;
+
+ private Long totalMemory;
+
+ private Long totalDisk;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/ClusterService.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/ClusterService.java
index 17cbd432..dd375b8b 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/ClusterService.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/ClusterService.java
@@ -32,13 +32,6 @@ public interface ClusterService {
*/
List<ClusterVO> list();
- /**
- * Save a cluster
- *
- * @return Cluster
- */
- ClusterVO save(ClusterDTO clusterDTO);
-
/**
* Get a cluster
*
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/HostService.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/HostService.java
index f4e4a5e2..4de47e85 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/HostService.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/HostService.java
@@ -32,9 +32,9 @@ public interface HostService {
*
* @return Hosts
*/
- PageVO<HostVO> list(Long clusterId, HostQuery hostQuery);
+ PageVO<HostVO> list(HostQuery hostQuery);
- List<HostVO> add(Long clusterId, HostDTO hostDTO);
+ List<HostVO> add(HostDTO hostDTO);
/**
* Save a host
@@ -55,7 +55,7 @@ public interface HostService {
*
* @return Host
*/
- HostVO update(Long id, Long clusterId, HostDTO hostDTO);
+ HostVO update(Long id, HostDTO hostDTO);
/**
* Delete a host
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ClusterServiceImpl.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ClusterServiceImpl.java
index 6c1982ea..16ce767e 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ClusterServiceImpl.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ClusterServiceImpl.java
@@ -18,26 +18,20 @@
*/
package org.apache.bigtop.manager.server.service.impl;
-import org.apache.bigtop.manager.common.enums.MaintainState;
import org.apache.bigtop.manager.dao.po.ClusterPO;
-import org.apache.bigtop.manager.dao.po.RepoPO;
import org.apache.bigtop.manager.dao.repository.ClusterDao;
-import org.apache.bigtop.manager.dao.repository.RepoDao;
import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
import org.apache.bigtop.manager.server.exception.ApiException;
import org.apache.bigtop.manager.server.model.converter.ClusterConverter;
-import org.apache.bigtop.manager.server.model.converter.RepoConverter;
import org.apache.bigtop.manager.server.model.dto.ClusterDTO;
import org.apache.bigtop.manager.server.model.vo.ClusterVO;
import org.apache.bigtop.manager.server.service.ClusterService;
-import org.apache.bigtop.manager.server.service.HostService;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import jakarta.annotation.Resource;
-import java.util.ArrayList;
import java.util.List;
@Slf4j
@@ -47,66 +41,21 @@ public class ClusterServiceImpl implements ClusterService {
@Resource
private ClusterDao clusterDao;
- @Resource
- private RepoDao repoDao;
-
- @Resource
- private HostService hostService;
-
@Override
public List<ClusterVO> list() {
- List<ClusterVO> clusterVOList = new ArrayList<>();
- clusterDao.findAllByJoin().forEach(cluster -> {
- ClusterVO clusterVO =
ClusterConverter.INSTANCE.fromEntity2VO(cluster);
- clusterVOList.add(clusterVO);
- });
-
- return clusterVOList;
- }
-
- @Override
- public ClusterVO save(ClusterDTO clusterDTO) {
- // Save cluster
- ClusterPO clusterPO = ClusterConverter.INSTANCE.fromDTO2PO(clusterDTO);
- clusterPO.setSelected(clusterDao.count() == 0);
- clusterPO.setState(MaintainState.UNINSTALLED.getName());
-
- ClusterPO oldClusterPO =
-
clusterDao.findByClusterName(clusterDTO.getClusterName()).orElse(new
ClusterPO());
- if (oldClusterPO.getId() != null) {
- clusterPO.setId(oldClusterPO.getId());
- clusterDao.partialUpdateById(clusterPO);
- } else {
- clusterDao.save(clusterPO);
- }
-
- hostService.batchSave(clusterPO.getId(), clusterDTO.getHostnames());
-
- // Save repo
- List<RepoPO> repoPOList =
RepoConverter.INSTANCE.fromDTO2PO(clusterDTO.getRepoInfoList());
- List<RepoPO> oldrepoPOList =
repoDao.findAllByClusterId(clusterPO.getId());
-
- for (RepoPO repoPO : repoPOList) {
- for (RepoPO oldRepoPO : oldrepoPOList) {
- if (oldRepoPO.getArch().equals(repoPO.getArch())) {
- repoPO.setId(oldRepoPO.getId());
- }
- }
- }
-
- repoDao.saveAll(repoPOList);
- return ClusterConverter.INSTANCE.fromEntity2VO(clusterPO);
+ List<ClusterPO> clusterPOList = clusterDao.findAll();
+ return ClusterConverter.INSTANCE.fromPO2VO(clusterPOList);
}
@Override
public ClusterVO get(Long id) {
- ClusterPO clusterPO = clusterDao.findByIdJoin(id);
+ ClusterPO clusterPO = clusterDao.findDetailsById(id);
if (clusterPO == null) {
throw new ApiException(ApiExceptionEnum.CLUSTER_NOT_FOUND);
}
- return ClusterConverter.INSTANCE.fromEntity2VO(clusterPO);
+ return ClusterConverter.INSTANCE.fromPO2VO(clusterPO);
}
@Override
@@ -115,6 +64,6 @@ public class ClusterServiceImpl implements ClusterService {
clusterPO.setId(id);
clusterDao.partialUpdateById(clusterPO);
- return ClusterConverter.INSTANCE.fromEntity2VO(clusterPO);
+ return get(id);
}
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java
index daccb46f..ebfe057c 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java
@@ -24,8 +24,8 @@ import org.apache.bigtop.manager.dao.query.HostQuery;
import org.apache.bigtop.manager.dao.repository.HostComponentDao;
import org.apache.bigtop.manager.dao.repository.HostDao;
import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
+import org.apache.bigtop.manager.server.enums.HealthyStatusEnum;
import org.apache.bigtop.manager.server.enums.HostAuthTypeEnum;
-import org.apache.bigtop.manager.server.enums.HostStatus;
import org.apache.bigtop.manager.server.exception.ApiException;
import org.apache.bigtop.manager.server.model.converter.HostConverter;
import org.apache.bigtop.manager.server.model.dto.HostDTO;
@@ -62,7 +62,7 @@ public class HostServiceImpl implements HostService {
private HostComponentDao hostComponentDao;
@Override
- public PageVO<HostVO> list(Long clusterId, HostQuery hostQuery) {
+ public PageVO<HostVO> list(HostQuery hostQuery) {
PageQuery pageQuery = PageUtils.getPageQuery();
try (Page<?> ignored =
PageHelper.startPage(pageQuery.getPageNum(),
pageQuery.getPageSize(), pageQuery.getOrderBy())) {
@@ -79,11 +79,10 @@ public class HostServiceImpl implements HostService {
}
@Override
- public List<HostVO> add(Long clusterId, HostDTO hostDTO) {
+ public List<HostVO> add(HostDTO hostDTO) {
List<HostPO> hostPOList =
HostConverter.INSTANCE.fromDTO2POList(hostDTO);
for (HostPO hostPO : hostPOList) {
- hostPO.setClusterId(clusterId);
- hostPO.setStatus(HostStatus.UNKNOWN.getCode());
+ hostPO.setStatus(HealthyStatusEnum.UNKNOWN.getCode());
}
hostDao.saveAll(hostPOList);
@@ -102,7 +101,7 @@ public class HostServiceImpl implements HostService {
HostPO hostPO = new HostPO();
hostPO.setHostname(hostname);
hostPO.setClusterId(clusterId);
- hostPO.setStatus(HostStatus.UNKNOWN.getCode());
+ hostPO.setStatus(HealthyStatusEnum.UNKNOWN.getCode());
if (hostInMap.containsKey(hostname)) {
hostPO.setId(hostInMap.get(hostname).getId());
@@ -127,7 +126,7 @@ public class HostServiceImpl implements HostService {
}
@Override
- public HostVO update(Long id, Long clusterId, HostDTO hostDTO) {
+ public HostVO update(Long id, HostDTO hostDTO) {
HostPO hostPO =
HostConverter.INSTANCE.fromDTO2POWithoutHostname(hostDTO);
hostPO.setId(id);
hostDao.partialUpdateById(hostPO);
diff --git a/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql
b/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql
index c722dc54..a03fe963 100644
--- a/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql
+++ b/bigtop-manager-server/src/main/resources/ddl/MySQL-DDL-CREATE.sql
@@ -70,22 +70,19 @@ CREATE TABLE `user`
CREATE TABLE `cluster`
(
- `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
- `cluster_name` VARCHAR(255) DEFAULT NULL COMMENT 'Cluster Name',
- `cluster_desc` VARCHAR(255) DEFAULT NULL COMMENT 'Cluster Description',
- `cluster_type` SMALLINT UNSIGNED DEFAULT 1 COMMENT '1-Physical Machine,
2-Kubernetes',
- `selected` BIT(1) DEFAULT 1 COMMENT '0-Disable, 1-Enable',
- `create_time` DATETIME DEFAULT NULL,
- `update_time` DATETIME DEFAULT NULL,
- `create_by` BIGINT,
- `packages` VARCHAR(255),
- `repo_template` VARCHAR(255),
- `root` VARCHAR(255),
- `state` VARCHAR(255),
- `update_by` BIGINT,
- `user_group` VARCHAR(255),
+ `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `name` VARCHAR(255) DEFAULT NULL COMMENT 'Cluster Name',
+ `desc` VARCHAR(255) DEFAULT NULL COMMENT 'Cluster
Description',
+ `type` INTEGER DEFAULT 1 COMMENT '1-Physical Machine,
2-Kubernetes',
+ `user_group` VARCHAR(255),
+ `root_dir` VARCHAR(255),
+ `status` INTEGER DEFAULT NULL COMMENT '1-healthy,
2-unhealthy, 3-unknown',
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
+ `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
+ `create_by` BIGINT,
+ `update_by` BIGINT,
PRIMARY KEY (`id`),
- UNIQUE KEY `uk_cluster_name` (`cluster_name`)
+ UNIQUE KEY `uk_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `component`
diff --git
a/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql
b/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql
index 66219ecd..0cddc589 100644
--- a/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql
+++ b/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql
@@ -54,27 +54,24 @@ COMMENT ON COLUMN "user".status IS '0-Disable, 1-Enable';
CREATE TABLE cluster
(
id BIGINT CHECK (id > 0) NOT NULL GENERATED ALWAYS AS IDENTITY,
- cluster_name VARCHAR(255) DEFAULT NULL,
- cluster_desc VARCHAR(255) DEFAULT NULL,
- cluster_type SMALLINT CHECK (cluster_type > 0) DEFAULT 1,
- selected BOOLEAN DEFAULT TRUE,
- create_time TIMESTAMP(0) DEFAULT NULL,
- update_time TIMESTAMP(0) DEFAULT NULL,
+ name VARCHAR(255) DEFAULT NULL,
+ "desc" VARCHAR(255) DEFAULT NULL,
+ type INT CHECK (cluster.type > 0) DEFAULT 1,
+ user_group VARCHAR(255),
+ root_dir VARCHAR(255),
+ status INT DEFAULT NULL,
+ create_time TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP,
+ update_time TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP,
create_by BIGINT,
- packages VARCHAR(255),
- repo_template VARCHAR(255),
- root VARCHAR(255),
- state VARCHAR(255),
update_by BIGINT,
- user_group VARCHAR(255),
PRIMARY KEY (id),
- CONSTRAINT uk_cluster_name UNIQUE (cluster_name)
+ CONSTRAINT uk_name UNIQUE (name)
);
-COMMENT ON COLUMN cluster.cluster_name IS 'Cluster Name';
-COMMENT ON COLUMN cluster.cluster_desc IS 'Cluster Description';
-COMMENT ON COLUMN cluster.cluster_type IS '1-Physical Machine, 2-Kubernetes';
-COMMENT ON COLUMN cluster.selected IS '0-Disable, 1-Enable';
+COMMENT ON COLUMN cluster.name IS 'Cluster Name';
+COMMENT ON COLUMN cluster."desc" IS 'Cluster Description';
+COMMENT ON COLUMN cluster.type IS '1-Physical Machine, 2-Kubernetes';
+COMMENT ON COLUMN cluster.status IS '1-healthy, 2-unhealthy, 3-unknown';
DROP INDEX IF EXISTS idx_cluster_stack_id;
diff --git
a/bigtop-manager-server/src/main/resources/i18n/messages_en_US.properties
b/bigtop-manager-server/src/main/resources/i18n/messages_en_US.properties
index df9389a3..03f44141 100644
--- a/bigtop-manager-server/src/main/resources/i18n/messages_en_US.properties
+++ b/bigtop-manager-server/src/main/resources/i18n/messages_en_US.properties
@@ -29,7 +29,7 @@ login.account.incorrect=Incorrect username or password
login.account.disabled=User is disabled
cluster.not.found=Cluster not exist
-cluster.is.installed=Cluster is installed
+cluster.exists=Cluster already exists
host.not.found=Host not exist
host.assigned=Hosts [{0}] already assigned to another cluster
diff --git
a/bigtop-manager-server/src/main/resources/i18n/messages_zh_CN.properties
b/bigtop-manager-server/src/main/resources/i18n/messages_zh_CN.properties
index 9ca147d8..df922bb3 100644
--- a/bigtop-manager-server/src/main/resources/i18n/messages_zh_CN.properties
+++ b/bigtop-manager-server/src/main/resources/i18n/messages_zh_CN.properties
@@ -29,7 +29,7 @@ login.account.incorrect=用户名或密码错误
login.account.disabled=用户已被禁用
cluster.not.found=集群不存在
-cluster.is.installed=集群已创建
+cluster.exists=集群已存在
host.not.found=主机不存在
host.assigned=主机 [{0}] 已属于其他集群
diff --git
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/controller/HostControllerTest.java
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/controller/HostControllerTest.java
index b11cba85..c5517191 100644
---
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/controller/HostControllerTest.java
+++
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/controller/HostControllerTest.java
@@ -69,12 +69,11 @@ class HostControllerTest {
@Test
void listReturnsAllHosts() {
- Long clusterId = 1L;
PageVO<HostVO> hosts = new PageVO<>();
HostQuery hostQuery = new HostQuery();
- when(hostService.list(clusterId, hostQuery)).thenReturn(hosts);
+ when(hostService.list(hostQuery)).thenReturn(hosts);
- ResponseEntity<PageVO<HostVO>> response =
hostController.list(clusterId, hostQuery);
+ ResponseEntity<PageVO<HostVO>> response =
hostController.list(hostQuery);
assertTrue(response.isSuccess());
assertEquals(hosts, response.getData());
@@ -82,12 +81,11 @@ class HostControllerTest {
@Test
void getReturnsHost() {
- Long clusterId = 1L;
Long hostId = 1L;
HostVO host = new HostVO();
when(hostService.get(hostId)).thenReturn(host);
- ResponseEntity<HostVO> response = hostController.get(hostId,
clusterId);
+ ResponseEntity<HostVO> response = hostController.get(hostId);
assertTrue(response.isSuccess());
assertEquals(host, response.getData());
@@ -95,13 +93,12 @@ class HostControllerTest {
@Test
void updateReturnsUpdatedHost() {
- Long clusterId = 1L;
Long hostId = 1L;
HostReq hostReq = new HostReq();
HostVO updatedHost = new HostVO();
- when(hostService.update(anyLong(), anyLong(),
any(HostDTO.class))).thenReturn(updatedHost);
+ when(hostService.update(anyLong(),
any(HostDTO.class))).thenReturn(updatedHost);
- ResponseEntity<HostVO> response = hostController.update(clusterId,
hostId, hostReq);
+ ResponseEntity<HostVO> response = hostController.update(hostId,
hostReq);
assertTrue(response.isSuccess());
assertEquals(updatedHost, response.getData());
@@ -109,11 +106,10 @@ class HostControllerTest {
@Test
void deleteReturnsSuccess() {
- Long clusterId = 1L;
Long hostId = 1L;
when(hostService.delete(hostId)).thenReturn(true);
- ResponseEntity<Boolean> response = hostController.delete(clusterId,
hostId);
+ ResponseEntity<Boolean> response = hostController.delete(hostId);
assertTrue(response.isSuccess());
assertTrue(response.getData());
@@ -121,11 +117,10 @@ class HostControllerTest {
@Test
void checkConnectionReturnsSuccess() {
- Long clusterId = 1L;
HostReq hostReq = new HostReq();
when(hostService.checkConnection(any(HostDTO.class))).thenReturn(true);
- ResponseEntity<Boolean> response =
hostController.checkConnection(clusterId, hostReq);
+ ResponseEntity<Boolean> response =
hostController.checkConnection(hostReq);
assertTrue(response.isSuccess());
assertTrue(response.getData());
@@ -133,11 +128,10 @@ class HostControllerTest {
@Test
void listReturnsEmptyForInvalidClusterId() {
- Long clusterId = 999L;
HostQuery hostQuery = new HostQuery();
- when(hostService.list(clusterId, hostQuery)).thenReturn(new
PageVO<>());
+ when(hostService.list(hostQuery)).thenReturn(new PageVO<>());
- ResponseEntity<PageVO<HostVO>> response =
hostController.list(clusterId, hostQuery);
+ ResponseEntity<PageVO<HostVO>> response =
hostController.list(hostQuery);
assertTrue(response.isSuccess());
assertNull(response.getData().getContent());
@@ -145,11 +139,10 @@ class HostControllerTest {
@Test
void getReturnsNullForInvalidHostId() {
- Long clusterId = 1L;
Long hostId = 999L;
when(hostService.get(hostId)).thenReturn(null);
- ResponseEntity<HostVO> response = hostController.get(hostId,
clusterId);
+ ResponseEntity<HostVO> response = hostController.get(hostId);
assertTrue(response.isSuccess());
assertNull(response.getData());
@@ -157,12 +150,11 @@ class HostControllerTest {
@Test
void updateReturnsNullForInvalidHostId() {
- Long clusterId = 1L;
Long hostId = 999L;
HostReq hostReq = new HostReq();
- when(hostService.update(anyLong(), anyLong(),
any(HostDTO.class))).thenReturn(null);
+ when(hostService.update(anyLong(),
any(HostDTO.class))).thenReturn(null);
- ResponseEntity<HostVO> response = hostController.update(clusterId,
hostId, hostReq);
+ ResponseEntity<HostVO> response = hostController.update(hostId,
hostReq);
assertTrue(response.isSuccess());
assertNull(response.getData());
@@ -170,11 +162,10 @@ class HostControllerTest {
@Test
void deleteReturnsFalseForInvalidHostId() {
- Long clusterId = 1L;
Long hostId = 999L;
when(hostService.delete(hostId)).thenReturn(false);
- ResponseEntity<Boolean> response = hostController.delete(clusterId,
hostId);
+ ResponseEntity<Boolean> response = hostController.delete(hostId);
assertTrue(response.isSuccess());
assertFalse(response.getData());
@@ -182,11 +173,10 @@ class HostControllerTest {
@Test
void checkConnectionReturnsFalseForInvalidHostnames() {
- Long clusterId = 1L;
HostReq hostReq = new HostReq();
when(hostService.checkConnection(any(HostDTO.class))).thenReturn(false);
- ResponseEntity<Boolean> response =
hostController.checkConnection(clusterId, hostReq);
+ ResponseEntity<Boolean> response =
hostController.checkConnection(hostReq);
assertTrue(response.isSuccess());
assertFalse(response.getData());
diff --git
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/service/ClusterServiceTest.java
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/service/ClusterServiceTest.java
index 7abda725..6bd070dd 100644
---
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/service/ClusterServiceTest.java
+++
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/service/ClusterServiceTest.java
@@ -25,13 +25,8 @@ import org.apache.bigtop.manager.dao.repository.RepoDao;
import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
import org.apache.bigtop.manager.server.exception.ApiException;
import org.apache.bigtop.manager.server.model.dto.ClusterDTO;
-import org.apache.bigtop.manager.server.model.dto.RepoDTO;
-import org.apache.bigtop.manager.server.model.dto.ServiceDTO;
-import org.apache.bigtop.manager.server.model.dto.StackDTO;
import org.apache.bigtop.manager.server.service.impl.ClusterServiceImpl;
-import org.apache.commons.lang3.tuple.ImmutablePair;
-
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -39,9 +34,7 @@ import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -61,44 +54,29 @@ public class ClusterServiceTest {
@InjectMocks
private ClusterService clusterService = new ClusterServiceImpl();
- @Mock
- private HostService hostService;
-
private ClusterPO clusterPO;
- private ClusterDTO clusterDTO;
- Map<String, ImmutablePair<StackDTO, List<ServiceDTO>>> mockStackKeyMap =
new HashMap<>();
@BeforeEach
public void setup() {
clusterPO = new ClusterPO();
clusterPO.setId(1L);
- clusterPO.setClusterName(CLUSTER_NAME);
-
- clusterDTO = new ClusterDTO();
- clusterDTO.setClusterName(CLUSTER_NAME);
- clusterDTO.setStackName("TestStack");
- clusterDTO.setStackVersion("1.0.0");
- RepoDTO repoDTO = new RepoDTO();
- repoDTO.setArch("x86_64");
- clusterDTO.setRepoInfoList(List.of(repoDTO));
- StackDTO stackDTO = new StackDTO(clusterDTO.getStackName(),
clusterDTO.getStackVersion());
- stackDTO.setStackName("TestStack");
+ clusterPO.setName(CLUSTER_NAME);
}
@Test
public void testListAndGetAndUpdate() {
- when(clusterDao.findAllByJoin()).thenReturn(List.of(clusterPO));
+ when(clusterDao.findAll()).thenReturn(List.of(clusterPO));
assert clusterService.list().size() == 1;
assertEquals(
ApiExceptionEnum.CLUSTER_NOT_FOUND,
assertThrows(ApiException.class, () ->
clusterService.get(1L)).getEx());
- when(clusterDao.findByIdJoin(any())).thenReturn(clusterPO);
- assert clusterService.get(1L).getClusterName().equals(CLUSTER_NAME);
+ when(clusterDao.findDetailsById(any())).thenReturn(clusterPO);
+ assert clusterService.get(1L).getName().equals(CLUSTER_NAME);
ClusterDTO clusterDTO = new ClusterDTO();
- clusterDTO.setClusterName(CLUSTER_NAME);
- assert clusterService.update(1L,
clusterDTO).getClusterName().equals(CLUSTER_NAME);
+ clusterDTO.setName(CLUSTER_NAME);
+ assert clusterService.update(1L,
clusterDTO).getName().equals(CLUSTER_NAME);
}
}
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/param/BigtopParams.java
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/param/BigtopParams.java
index 8ffe6946..41a11d5e 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/param/BigtopParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-bigtop/src/main/java/org/apache/bigtop/manager/stack/bigtop/param/BigtopParams.java
@@ -32,14 +32,14 @@ public abstract class BigtopParams extends BaseParams {
public String stackBinDir() {
String stackName = this.commandPayload.getStackName();
String stackVersion = this.commandPayload.getStackVersion();
- String root = this.commandPayload.getRoot();
+ String root = this.commandPayload.getRootDir();
return MessageFormat.format("{0}/{1}/{2}/usr/bin", root,
stackName.toLowerCase(), stackVersion);
}
public String stackLibDir() {
String stackName = this.commandPayload.getStackName();
String stackVersion = this.commandPayload.getStackVersion();
- String root = this.commandPayload.getRoot();
+ String root = this.commandPayload.getRootDir();
return MessageFormat.format("{0}/{1}/{2}/usr/lib", root,
stackName.toLowerCase(), stackVersion);
}
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/param/BaseParams.java
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/param/BaseParams.java
index e17f47de..51207e9b 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/param/BaseParams.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/param/BaseParams.java
@@ -133,7 +133,7 @@ public abstract class BaseParams implements Params {
public String stackHome() {
String stackName = this.commandPayload.getStackName();
String stackVersion = this.commandPayload.getStackVersion();
- String root = this.commandPayload.getRoot();
+ String root = this.commandPayload.getRootDir();
return MessageFormat.format("{0}/{1}/{2}", root,
stackName.toLowerCase(), stackVersion);
}
}
diff --git
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/LocalSettings.java
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/LocalSettings.java
index 19746fc6..4273cf09 100644
---
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/LocalSettings.java
+++
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/utils/LocalSettings.java
@@ -32,7 +32,6 @@ import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
@Slf4j
public class LocalSettings {
@@ -97,8 +96,7 @@ public class LocalSettings {
}
public static List<String> packages() {
- ClusterInfo cluster = cluster();
- return Optional.ofNullable(cluster.getPackages()).orElse(List.of());
+ return List.of();
}
public static List<RepoInfo> repos() {