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 c41d5ee1 BIGTOP-4247: Refactor APIs for Service (#106)
c41d5ee1 is described below
commit c41d5ee144fd42ab0e7f5ad226a68a5ba1fcee42
Author: Zhiguo Wu <[email protected]>
AuthorDate: Tue Nov 19 17:16:32 2024 +0800
BIGTOP-4247: Refactor APIs for Service (#106)
---
.../apache/bigtop/manager/dao/po/ClusterPO.java | 3 +
.../apache/bigtop/manager/dao/po/ServicePO.java | 39 ++++-------
.../apache/bigtop/manager/dao/query/HostQuery.java | 4 +-
.../query/{HostQuery.java => ServiceQuery.java} | 6 +-
.../bigtop/manager/dao/repository/ServiceDao.java | 6 +-
.../main/resources/mapper/mysql/ClusterMapper.xml | 3 +-
.../resources/mapper/mysql/HostComponentMapper.xml | 2 +-
.../src/main/resources/mapper/mysql/HostMapper.xml | 8 +--
.../main/resources/mapper/mysql/ServiceMapper.xml | 77 ++++++----------------
.../resources/mapper/postgresql/ClusterMapper.xml | 3 +-
.../mapper/postgresql/HostComponentMapper.xml | 2 +-
.../resources/mapper/postgresql/HostMapper.xml | 8 +--
.../resources/mapper/postgresql/ServiceMapper.xml | 77 ++++++----------------
.../server/command/job/AbstractServiceJob.java | 2 +-
.../server/command/job/ServiceInstallJob.java | 3 +-
.../command/stage/AbstractComponentStage.java | 6 +-
.../server/command/task/CacheFileUpdateTask.java | 4 +-
.../validator/RequiredServicesValidator.java | 3 +-
.../manager/server/controller/HostController.java | 2 +-
.../server/controller/ServiceController.java | 22 ++++++-
.../server/model/converter/ServiceConverter.java | 14 +---
.../manager/server/model/dto/ServiceDTO.java | 8 +--
.../bigtop/manager/server/model/vo/ClusterVO.java | 2 +
.../bigtop/manager/server/model/vo/ServiceVO.java | 24 ++-----
.../manager/server/service/ServiceService.java | 8 ++-
.../server/service/impl/HostServiceImpl.java | 6 --
.../server/service/impl/ServiceServiceImpl.java | 72 +++++---------------
.../server/service/impl/StackServiceImpl.java | 2 +-
.../bigtop/manager/server/utils/StackUtils.java | 8 +--
.../src/main/resources/ddl/MySQL-DDL-CREATE.sql | 19 +++---
.../main/resources/ddl/PostgreSQL-DDL-CREATE.sql | 21 +++---
.../server/controller/ServiceControllerTest.java | 10 +--
32 files changed, 177 insertions(+), 297 deletions(-)
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 96789e1e..b3d62f74 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
@@ -60,6 +60,9 @@ public class ClusterPO extends BasePO implements Serializable
{
@Transient
private Long totalHost;
+ @Transient
+ private Long totalService;
+
@Transient
private Long totalProcessor;
diff --git
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServicePO.java
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServicePO.java
index 4584d7f4..d7b22003 100644
---
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServicePO.java
+++
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServicePO.java
@@ -20,14 +20,11 @@ package org.apache.bigtop.manager.dao.po;
import lombok.Data;
import lombok.EqualsAndHashCode;
-import lombok.ToString;
import jakarta.persistence.Column;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
-import jakarta.persistence.Transient;
import java.io.Serializable;
-import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
@@ -38,38 +35,30 @@ public class ServicePO extends BasePO implements
Serializable {
@Column(name = "id")
private Long id;
- @Column(name = "service_name")
- private String serviceName;
+ @Column(name = "name")
+ private String name;
@Column(name = "display_name")
private String displayName;
- @Column(name = "service_desc")
- private String serviceDesc;
+ @Column(name = "desc")
+ private String desc;
- @Column(name = "service_version")
- private String serviceVersion;
+ @Column(name = "user")
+ private String user;
- @Column(name = "package_specifics")
- private String packageSpecifics;
+ @Column(name = "version")
+ private String version;
- @Column(name = "service_user")
- private String serviceUser;
+ @Column(name = "stack")
+ private String stack;
- @Column(name = "required_services")
- private String requiredServices;
+ @Column(name = "need_restart")
+ private Boolean needRestart;
@Column(name = "cluster_id")
private Long clusterId;
- @Transient
- @Column(name = "cluster_name")
- private String clusterName;
-
- @Transient
- @Column(name = "user_group")
- private String userGroup;
-
- @ToString.Exclude
- private List<ComponentPO> components;
+ @Column(name = "status")
+ private Integer status;
}
diff --git
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/query/HostQuery.java
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/query/HostQuery.java
index 5e280836..397758ee 100644
---
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/query/HostQuery.java
+++
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/query/HostQuery.java
@@ -23,11 +23,11 @@ import lombok.Data;
@Data
public class HostQuery {
- private String hostnameLike;
+ private String hostname;
private Long clusterId;
- private String ipv4Like;
+ private String ipv4;
private Integer status;
}
diff --git
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/query/HostQuery.java
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/query/ServiceQuery.java
similarity index 91%
copy from
bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/query/HostQuery.java
copy to
bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/query/ServiceQuery.java
index 5e280836..7b755b48 100644
---
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/query/HostQuery.java
+++
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/query/ServiceQuery.java
@@ -21,13 +21,13 @@ package org.apache.bigtop.manager.dao.query;
import lombok.Data;
@Data
-public class HostQuery {
+public class ServiceQuery {
- private String hostnameLike;
+ private String name;
private Long clusterId;
- private String ipv4Like;
+ private Boolean needRestart;
private Integer status;
}
diff --git
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceDao.java
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceDao.java
index 57d29805..8901b882 100644
---
a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceDao.java
+++
b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceDao.java
@@ -20,17 +20,17 @@
package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.ServicePO;
+import org.apache.bigtop.manager.dao.query.ServiceQuery;
import org.apache.ibatis.annotations.Param;
import java.util.List;
-import java.util.Optional;
public interface ServiceDao extends BaseDao<ServicePO> {
- List<ServicePO> findAllByClusterId(@Param("clusterId") Long clusterId);
+ List<ServicePO> findByQuery(@Param("query") ServiceQuery query);
- Optional<ServicePO> findByIdJoin(@Param("id") Long id);
+ List<ServicePO> findByClusterId(@Param("clusterId") Long clusterId);
ServicePO findByClusterIdAndServiceName(
@Param("clusterId") Long clusterId, @Param("serviceName") String
serviceName);
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 b3dc0141..921380b2 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml
@@ -36,10 +36,11 @@
<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
+ sum(h.total_memory_size) as total_memory, sum(h.total_disk) as
total_disk, count(s.id) as total_service
from
cluster c left join user u on c.create_by = u.id
left join host h on c.id = h.cluster_id
+ left join service s on c.id = s.cluster_id
where c.id = #{id}
limit 1
</select>
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 9410a0f8..51d323b8 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
@@ -201,7 +201,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="hc"/>
</include>
-
,ser.service_name,ser.service_user,clu.root_dir,c.component_name,c.command_script,hst.hostname,
hst.grpc_port
+ ,ser.name as service_name,ser.user as
service_user,clu.root_dir,c.component_name,c.command_script,hst.hostname,
hst.grpc_port
from
host_component hc
inner join host hst
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 97b95be0..12848a4d 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostMapper.xml
@@ -114,14 +114,14 @@
left join cluster c on h.cluster_id = c.id
left join host_component hc on h.id = hc.host_id
<where>
- <if test="query.hostnameLike != null and query.hostnameLike != ''">
- and h.hostname like concat('%', #{query.hostnameLike}, '%')
+ <if test="query.hostname != null and query.hostname != ''">
+ and h.hostname like concat('%', #{query.hostname}, '%')
</if>
<if test="query.clusterId != null">
and h.cluster_id = #{query.clusterId}
</if>
- <if test="query.ipv4Like != null and query.ipv4Like != ''">
- and h.ipv4 like concat('%', #{query.ipv4Like}, '%')
+ <if test="query.ipv4 != null and query.ipv4 != ''">
+ and h.ipv4 like concat('%', #{query.ipv4}, '%')
</if>
<if test="query.status != null">
and h.status = #{query.status}
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 3f951e04..70cbe85d 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
@@ -24,75 +24,40 @@
<mapper namespace="org.apache.bigtop.manager.dao.repository.ServiceDao">
<sql id="baseColumns">
- id, service_name, display_name, service_desc, service_version,
package_specifics, service_user, required_services, cluster_id
+ id, name, display_name, `desc`, user, version, stack, need_restart,
cluster_id, status
</sql>
<sql id="baseColumnsV2">
- ${alias}.id, ${alias}.service_name, ${alias}.display_name,
${alias}.service_desc, ${alias}.service_version, ${alias}.package_specifics,
${alias}.service_user, ${alias}.required_services, ${alias}.cluster_id
+ ${alias}.id, ${alias}.name, ${alias}.display_name, ${alias}.`desc`,
${alias}.user, ${alias}.version, ${alias}.stack, ${alias}.need_restart,
${alias}.cluster_id, ${alias}.status
</sql>
- <resultMap id="serviceMap"
type="org.apache.bigtop.manager.dao.po.ServicePO">
- <id column="id" property="id"/>
- <result column="service_name" property="serviceName"/>
- <result column="display_name" property="displayName"/>
- <result column="service_desc" property="serviceDesc"/>
- <result column="service_version" property="serviceVersion"/>
- <result column="package_specifics" property="packageSpecifics"/>
- <result column="service_user" property="serviceUser"/>
- <result column="required_services" property="requiredServices"/>
- <result column="cluster_id" property="clusterId"/>
- <result column="cluster_name" property="clusterName"/>
- <result column="user_group" property="userGroup"/>
- <collection property="components"
ofType="org.apache.bigtop.manager.dao.po.ComponentPO">
- <id column="cid" property="id"/>
- <result column="component_name" property="componentName"/>
- <result column="category" property="category"/>
- <result column="quick_link" property="quickLink"/>
- <result column="service_id" property="serviceId"/>
- <result column="cluster_id" property="clusterId"/>
- </collection>
- </resultMap>
-
- <select id="findAllByClusterId" parameterType="java.lang.Long"
resultMap="serviceMap">
+ <select id="findByQuery"
resultType="org.apache.bigtop.manager.dao.po.ServicePO">
select
- <include refid="baseColumnsV2">
- <property name="alias" value="s"/>
- </include>
- , clus.name as cluster_name, clus.user_group, c.component_name,
c.category, c.quick_link, c.id as cid
+ <include refid="baseColumns"/>
from
- (select * from service
+ service s
<where>
- <if test="clusterId != 0">
- cluster_id = #{clusterId}
+ <if test="query.name != null and query.name != ''">
+ and s.name like concat('%', #{query.name}, '%')
+ </if>
+ <if test="query.clusterId != null">
+ and s.cluster_id = #{query.clusterId}
+ </if>
+ <if test="query.needRestart != null">
+ and s.need_restart = #{query.needRestart}
+ </if>
+ <if test="query.status != null">
+ and s.status = #{query.status}
</if>
</where>
- ) s
- inner join
- cluster clus
- on s.cluster_id = clus.id
- inner join
- component c
- on c.service_id = s.id
</select>
- <select id="findByIdJoin" parameterType="java.lang.Long"
- resultType="org.apache.bigtop.manager.dao.po.ServicePO">
+ <select id="findByClusterId" parameterType="java.lang.Long"
resultType="org.apache.bigtop.manager.dao.po.ServicePO">
select
- <include refid="baseColumnsV2">
- <property name="alias" value="s"/>
- </include>
- , clus.name as cluster_name, clus.user_group
- from
- (select * from service
- <where>
- <if test="id != 0">
- id = #{id}
- </if>
- </where>
- ) s
- inner join
- cluster clus
- on s.cluster_id = clus.id
+ <include refid="baseColumns" />
+ from service
+ where
+ cluster_id = #{clusterId}
</select>
<select id="findByClusterIdAndServiceName"
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 99c515ed..f2334e0c 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ClusterMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/postgresql/ClusterMapper.xml
@@ -36,10 +36,11 @@
<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
+ sum(h.total_memory_size) as total_memory, sum(h.total_disk) as
total_disk, count(s.id) as total_service
from
cluster c left join user u on c.create_by = u.id
left join host h on c.id = h.cluster_id
+ left join service s on c.id = s.cluster_id
where c.id = #{id}
limit 1
</select>
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 705c4d35..5cdc9c59 100644
---
a/bigtop-manager-dao/src/main/resources/mapper/postgresql/HostComponentMapper.xml
+++
b/bigtop-manager-dao/src/main/resources/mapper/postgresql/HostComponentMapper.xml
@@ -201,7 +201,7 @@
<include refid="baseColumnsV2">
<property name="alias" value="hc"/>
</include>
-
,ser.service_name,ser.service_user,clu.root_dir,c.component_name,c.command_script,hst.hostname,
hst.grpc_port
+ ,ser.name as service_name,ser."user" as
service_user,clu.root_dir,c.component_name,c.command_script,hst.hostname,
hst.grpc_port
from
host_component hc
inner join host hst
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 d98dc593..d7c8c17d 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/HostMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/postgresql/HostMapper.xml
@@ -107,14 +107,14 @@
left join cluster c on h.cluster_id = c.id
left join host_component hc on h.id = hc.host_id
<where>
- <if test="query.hostnameLike != null and query.hostnameLike != ''">
- and h.hostname like concat('%', #{query.hostnameLike}, '%')
+ <if test="query.hostname != null and query.hostname != ''">
+ and h.hostname like concat('%', #{query.hostname}, '%')
</if>
<if test="query.clusterId != null">
and h.cluster_id = #{query.clusterId}
</if>
- <if test="query.ipv4Like != null and query.ipv4Like != ''">
- and h.ipv4 like concat('%', #{query.ipv4Like}, '%')
+ <if test="query.ipv4 != null and query.ipv4 != ''">
+ and h.ipv4 like concat('%', #{query.ipv4}, '%')
</if>
<if test="query.status != null">
and h.status = #{query.status}
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 3f951e04..d540e82d 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ServiceMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/postgresql/ServiceMapper.xml
@@ -24,75 +24,40 @@
<mapper namespace="org.apache.bigtop.manager.dao.repository.ServiceDao">
<sql id="baseColumns">
- id, service_name, display_name, service_desc, service_version,
package_specifics, service_user, required_services, cluster_id
+ id, name, display_name, "desc", "user", version, stack, need_restart,
cluster_id, status
</sql>
<sql id="baseColumnsV2">
- ${alias}.id, ${alias}.service_name, ${alias}.display_name,
${alias}.service_desc, ${alias}.service_version, ${alias}.package_specifics,
${alias}.service_user, ${alias}.required_services, ${alias}.cluster_id
+ ${alias}.id, ${alias}.name, ${alias}.display_name, ${alias}."desc",
${alias}."user", ${alias}.version, ${alias}.stack, ${alias}.need_restart,
${alias}.cluster_id, ${alias}.status
</sql>
- <resultMap id="serviceMap"
type="org.apache.bigtop.manager.dao.po.ServicePO">
- <id column="id" property="id"/>
- <result column="service_name" property="serviceName"/>
- <result column="display_name" property="displayName"/>
- <result column="service_desc" property="serviceDesc"/>
- <result column="service_version" property="serviceVersion"/>
- <result column="package_specifics" property="packageSpecifics"/>
- <result column="service_user" property="serviceUser"/>
- <result column="required_services" property="requiredServices"/>
- <result column="cluster_id" property="clusterId"/>
- <result column="cluster_name" property="clusterName"/>
- <result column="user_group" property="userGroup"/>
- <collection property="components"
ofType="org.apache.bigtop.manager.dao.po.ComponentPO">
- <id column="cid" property="id"/>
- <result column="component_name" property="componentName"/>
- <result column="category" property="category"/>
- <result column="quick_link" property="quickLink"/>
- <result column="service_id" property="serviceId"/>
- <result column="cluster_id" property="clusterId"/>
- </collection>
- </resultMap>
-
- <select id="findAllByClusterId" parameterType="java.lang.Long"
resultMap="serviceMap">
+ <select id="findByQuery"
resultType="org.apache.bigtop.manager.dao.po.ServicePO">
select
- <include refid="baseColumnsV2">
- <property name="alias" value="s"/>
- </include>
- , clus.name as cluster_name, clus.user_group, c.component_name,
c.category, c.quick_link, c.id as cid
+ <include refid="baseColumns"/>
from
- (select * from service
+ service s
<where>
- <if test="clusterId != 0">
- cluster_id = #{clusterId}
+ <if test="query.name != null and query.name != ''">
+ and s.name like concat('%', #{query.name}, '%')
+ </if>
+ <if test="query.clusterId != null">
+ and s.cluster_id = #{query.clusterId}
+ </if>
+ <if test="query.needRestart != null">
+ and s.need_restart = #{query.needRestart}
+ </if>
+ <if test="query.status != null">
+ and s.status = #{query.status}
</if>
</where>
- ) s
- inner join
- cluster clus
- on s.cluster_id = clus.id
- inner join
- component c
- on c.service_id = s.id
</select>
- <select id="findByIdJoin" parameterType="java.lang.Long"
- resultType="org.apache.bigtop.manager.dao.po.ServicePO">
+ <select id="findByClusterId" parameterType="java.lang.Long"
resultType="org.apache.bigtop.manager.dao.po.ServicePO">
select
- <include refid="baseColumnsV2">
- <property name="alias" value="s"/>
- </include>
- , clus.name as cluster_name, clus.user_group
- from
- (select * from service
- <where>
- <if test="id != 0">
- id = #{id}
- </if>
- </where>
- ) s
- inner join
- cluster clus
- on s.cluster_id = clus.id
+ <include refid="baseColumns" />
+ from service
+ where
+ cluster_id = #{clusterId}
</select>
<select id="findByClusterIdAndServiceName"
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractServiceJob.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractServiceJob.java
index c2c69d0b..fbd6dc17 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractServiceJob.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractServiceJob.java
@@ -122,7 +122,7 @@ public abstract class AbstractServiceJob extends
AbstractJob {
for (ServiceDTO serviceDTO : StackUtils.getServiceDTOList(new
StackDTO(stackName, stackVersion))) {
for (ComponentDTO componentDTO : serviceDTO.getComponents()) {
if (componentDTO.getComponentName().equals(componentName)) {
- return serviceDTO.getServiceName();
+ return serviceDTO.getName();
}
}
}
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 1cd1119d..0fb014b9 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,7 +139,8 @@ public class ServiceInstallJob extends AbstractServiceJob {
// 1. Persist service and components
if (servicePO == null) {
ServiceDTO serviceDTO = StackUtils.getServiceDTO(serviceName);
- servicePO = ServiceConverter.INSTANCE.fromDTO2PO(serviceDTO,
clusterPO);
+ servicePO = ServiceConverter.INSTANCE.fromDTO2PO(serviceDTO);
+ servicePO.setClusterId(clusterId);
serviceDao.save(servicePO);
}
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 3398d76f..4c509674 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
@@ -53,7 +53,7 @@ public abstract class AbstractComponentStage extends
AbstractStage {
@Override
protected String getServiceName() {
- return stageContext.getServiceDTO().getServiceName();
+ return stageContext.getServiceDTO().getName();
}
@Override
@@ -69,10 +69,10 @@ public abstract class AbstractComponentStage extends
AbstractStage {
taskContext.setHostDTO(hostDTO);
taskContext.setClusterId(clusterPO.getId());
taskContext.setClusterName(clusterPO.getName());
- taskContext.setServiceName(serviceDTO.getServiceName());
+ taskContext.setServiceName(serviceDTO.getName());
taskContext.setComponentName(componentDTO.getComponentName());
taskContext.setComponentDisplayName(componentDTO.getDisplayName());
- taskContext.setServiceUser(serviceDTO.getServiceUser());
+ taskContext.setServiceUser(serviceDTO.getUser());
taskContext.setRootDir(clusterPO.getRootDir());
Map<String, Object> properties = new HashMap<>();
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 90f1a82c..181e88e2 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
@@ -112,7 +112,7 @@ public class CacheFileUpdateTask extends AbstractTask {
Long clusterId = clusterPO.getId();
- List<ServicePO> servicePOList =
serviceDao.findAllByClusterId(clusterId);
+ List<ServicePO> servicePOList = serviceDao.findByClusterId(clusterId);
List<ServiceConfigPO> serviceConfigPOList =
serviceConfigDao.findByClusterId(clusterPO.getId());
List<HostComponentPO> hostComponentPOList =
hostComponentDao.findAllByClusterId(clusterId);
List<RepoPO> repoPOList =
repoDao.findAllByClusterId(clusterPO.getId());
@@ -158,7 +158,7 @@ public class CacheFileUpdateTask extends AbstractTask {
});
userMap = new HashMap<>();
- servicePOList.forEach(x -> userMap.put(x.getServiceName(),
x.getServiceUser()));
+ servicePOList.forEach(x -> userMap.put(x.getName(), x.getUser()));
settingsMap = new HashMap<>();
settings.forEach(x -> settingsMap.put(x.getTypeName(),
x.getConfigData()));
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/RequiredServicesValidator.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/RequiredServicesValidator.java
index c2073fd0..17e7723c 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/RequiredServicesValidator.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/RequiredServicesValidator.java
@@ -71,8 +71,7 @@ public class RequiredServicesValidator implements
CommandValidator {
}
List<ServicePO> servicePOList =
serviceDao.findByClusterIdAndServiceNameIn(clusterId, requiredServices);
- List<String> list =
-
servicePOList.stream().map(ServicePO::getServiceName).toList();
+ List<String> list =
servicePOList.stream().map(ServicePO::getName).toList();
requiredServices.removeAll(list);
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 e49bf435..5f6890eb 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
@@ -55,7 +55,6 @@ public class HostController {
@Resource
private HostService hostService;
- @Operation(summary = "list", description = "List hosts")
@Parameters({
@Parameter(in = ParameterIn.QUERY, name = "pageNum", schema =
@Schema(type = "integer", defaultValue = "1")),
@Parameter(in = ParameterIn.QUERY, name = "pageSize", schema =
@Schema(type = "integer", defaultValue = "10")),
@@ -66,6 +65,7 @@ public class HostController {
description = "asc/desc",
schema = @Schema(type = "string", defaultValue = "asc"))
})
+ @Operation(summary = "list", description = "List hosts")
@GetMapping
public ResponseEntity<PageVO<HostVO>> list(HostQuery hostQuery) {
return ResponseEntity.success(hostService.list(hostQuery));
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/ServiceController.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/ServiceController.java
index c8e1cfcd..a23c8374 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/ServiceController.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/ServiceController.java
@@ -18,8 +18,10 @@
*/
package org.apache.bigtop.manager.server.controller;
+import org.apache.bigtop.manager.dao.query.ServiceQuery;
import org.apache.bigtop.manager.server.model.req.ServiceConfigReq;
import org.apache.bigtop.manager.server.model.req.ServiceConfigSnapshotReq;
+import org.apache.bigtop.manager.server.model.vo.PageVO;
import org.apache.bigtop.manager.server.model.vo.ServiceConfigSnapshotVO;
import org.apache.bigtop.manager.server.model.vo.ServiceConfigVO;
import org.apache.bigtop.manager.server.model.vo.ServiceVO;
@@ -35,6 +37,10 @@ import
org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Parameters;
+import io.swagger.v3.oas.annotations.enums.ParameterIn;
+import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
@@ -50,10 +56,20 @@ public class ServiceController {
@Resource
private ServiceService serviceService;
- @Operation(summary = "list", description = "List services")
+ @Parameters({
+ @Parameter(in = ParameterIn.QUERY, name = "pageNum", schema =
@Schema(type = "integer", defaultValue = "1")),
+ @Parameter(in = ParameterIn.QUERY, name = "pageSize", schema =
@Schema(type = "integer", defaultValue = "10")),
+ @Parameter(in = ParameterIn.QUERY, name = "orderBy", schema =
@Schema(type = "string", defaultValue = "id")),
+ @Parameter(
+ in = ParameterIn.QUERY,
+ name = "sort",
+ description = "asc/desc",
+ schema = @Schema(type = "string", defaultValue = "asc"))
+ })
+ @Operation(summary = "list", description = "List hosts")
@GetMapping
- public ResponseEntity<List<ServiceVO>> list(@PathVariable Long clusterId) {
- return ResponseEntity.success(serviceService.list(clusterId));
+ public ResponseEntity<PageVO<ServiceVO>> list(@PathVariable Long
clusterId, @RequestBody ServiceQuery query) {
+ return ResponseEntity.success(serviceService.list(query));
}
@Operation(summary = "get", description = "Get a service")
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConverter.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConverter.java
index 2abd3c52..f63cfb94 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConverter.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConverter.java
@@ -18,16 +18,13 @@
*/
package org.apache.bigtop.manager.server.model.converter;
-import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.bigtop.manager.dao.po.ServicePO;
import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
import org.apache.bigtop.manager.server.model.dto.ServiceDTO;
import org.apache.bigtop.manager.server.model.vo.ServiceVO;
import org.apache.bigtop.manager.server.stack.model.ServiceModel;
-import org.mapstruct.Context;
import org.mapstruct.Mapper;
-import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
import java.util.List;
@@ -39,23 +36,14 @@ public interface ServiceConverter {
ServiceConverter INSTANCE = Mappers.getMapper(ServiceConverter.class);
- @Mapping(target = "packageSpecifics", source = "packageSpecifics",
qualifiedByName = "obj2Json")
- @Mapping(target = "requiredServices", source = "requiredServices",
qualifiedByName = "obj2Json")
- @Mapping(target = "clusterId", expression = "java(clusterPO.getId())")
- @Mapping(target = "components", ignore = true)
- ServicePO fromDTO2PO(ServiceDTO serviceDTO, @Context ClusterPO clusterPO);
+ ServicePO fromDTO2PO(ServiceDTO serviceDTO);
ServiceVO fromDTO2VO(ServiceDTO serviceDTO);
List<ServiceVO> fromDTO2VO(List<ServiceDTO> serviceDTOList);
- @Mapping(target = "serviceName", source = "name")
- @Mapping(target = "serviceDesc", source = "desc")
- @Mapping(target = "serviceVersion", source = "version")
- @Mapping(target = "serviceUser", source = "user")
ServiceDTO fromModel2DTO(ServiceModel serviceModel);
- @Mapping(target = "requiredServices", source = "requiredServices",
qualifiedByName = "json2List")
ServiceVO fromPO2VO(ServicePO servicePO);
List<ServiceVO> fromPO2VO(List<ServicePO> servicePOList);
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ServiceDTO.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ServiceDTO.java
index 6c800f70..9b42cb73 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ServiceDTO.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/dto/ServiceDTO.java
@@ -25,15 +25,15 @@ import java.util.List;
@Data
public class ServiceDTO {
- private String serviceName;
+ private String name;
private String displayName;
- private String serviceDesc;
+ private String desc;
- private String serviceVersion;
+ private String version;
- private String serviceUser;
+ private String user;
private List<PackageSpecificDTO> packageSpecifics;
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 c710fb6a..492e21c0 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
@@ -41,6 +41,8 @@ public class ClusterVO {
private Long totalHost;
+ private Long totalService;
+
private Long totalProcessor;
private Long totalMemory;
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/ServiceVO.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/ServiceVO.java
index 99136b9e..20821951 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/ServiceVO.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/ServiceVO.java
@@ -20,34 +20,24 @@ package org.apache.bigtop.manager.server.model.vo;
import lombok.Data;
-import java.util.List;
-
@Data
public class ServiceVO {
private Long id;
- private String serviceName;
+ private String name;
private String displayName;
- private String serviceDesc;
-
- private String serviceVersion;
-
- private String clusterName;
-
- private String serviceUser;
-
- private List<ComponentVO> components;
+ private String desc;
- private List<ServiceConfigVO> configs;
+ private String user;
- private List<String> requiredServices;
+ private String version;
- private Boolean isClient;
+ private String stack;
- private Boolean isHealthy;
+ private Boolean needRestart;
- private List<QuickLinkVO> quickLinks;
+ private Integer status;
}
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/ServiceService.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/ServiceService.java
index b88f933e..20f35ebf 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/ServiceService.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/ServiceService.java
@@ -18,8 +18,10 @@
*/
package org.apache.bigtop.manager.server.service;
+import org.apache.bigtop.manager.dao.query.ServiceQuery;
import org.apache.bigtop.manager.server.model.req.ServiceConfigReq;
import org.apache.bigtop.manager.server.model.req.ServiceConfigSnapshotReq;
+import org.apache.bigtop.manager.server.model.vo.PageVO;
import org.apache.bigtop.manager.server.model.vo.ServiceConfigSnapshotVO;
import org.apache.bigtop.manager.server.model.vo.ServiceConfigVO;
import org.apache.bigtop.manager.server.model.vo.ServiceVO;
@@ -29,11 +31,11 @@ import java.util.List;
public interface ServiceService {
/**
- * Get all stacks.
+ * Get services by query.
*
- * @return Stacks
+ * @return services
*/
- List<ServiceVO> list(Long clusterId);
+ PageVO<ServiceVO> list(ServiceQuery query);
/**
* Get a service.
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 0e1196cd..e3b49537 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
@@ -36,8 +36,6 @@ import org.apache.bigtop.manager.server.service.HostService;
import org.apache.bigtop.manager.server.utils.PageUtils;
import org.apache.bigtop.manager.server.utils.RemoteSSHUtils;
-import org.apache.commons.collections4.CollectionUtils;
-
import org.springframework.stereotype.Service;
import com.github.pagehelper.Page;
@@ -67,10 +65,6 @@ public class HostServiceImpl implements HostService {
try (Page<?> ignored =
PageHelper.startPage(pageQuery.getPageNum(),
pageQuery.getPageSize(), pageQuery.getOrderBy())) {
List<HostPO> hostPOList = hostDao.findByQuery(hostQuery);
- if (CollectionUtils.isEmpty(hostPOList)) {
- throw new ApiException(ApiExceptionEnum.HOST_NOT_FOUND);
- }
-
PageInfo<HostPO> pageInfo = new PageInfo<>(hostPOList);
return PageVO.of(pageInfo);
} finally {
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java
index 47d898c3..c4084eae 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java
@@ -18,39 +18,39 @@
*/
package org.apache.bigtop.manager.server.service.impl;
-import org.apache.bigtop.manager.common.constants.ComponentCategories;
-import org.apache.bigtop.manager.common.enums.MaintainState;
import org.apache.bigtop.manager.common.utils.JsonUtils;
-import org.apache.bigtop.manager.dao.po.ComponentPO;
import org.apache.bigtop.manager.dao.po.HostComponentPO;
import org.apache.bigtop.manager.dao.po.ServiceConfigPO;
import org.apache.bigtop.manager.dao.po.ServiceConfigSnapshotPO;
import org.apache.bigtop.manager.dao.po.ServicePO;
-import org.apache.bigtop.manager.dao.repository.HostComponentDao;
+import org.apache.bigtop.manager.dao.query.ServiceQuery;
import org.apache.bigtop.manager.dao.repository.ServiceConfigDao;
import org.apache.bigtop.manager.dao.repository.ServiceConfigSnapshotDao;
import org.apache.bigtop.manager.dao.repository.ServiceDao;
-import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
-import org.apache.bigtop.manager.server.exception.ApiException;
import org.apache.bigtop.manager.server.model.converter.ServiceConfigConverter;
import
org.apache.bigtop.manager.server.model.converter.ServiceConfigSnapshotConverter;
import org.apache.bigtop.manager.server.model.converter.ServiceConverter;
import org.apache.bigtop.manager.server.model.dto.PropertyDTO;
import org.apache.bigtop.manager.server.model.dto.QuickLinkDTO;
import org.apache.bigtop.manager.server.model.dto.ServiceConfigDTO;
+import org.apache.bigtop.manager.server.model.query.PageQuery;
import org.apache.bigtop.manager.server.model.req.ServiceConfigReq;
import org.apache.bigtop.manager.server.model.req.ServiceConfigSnapshotReq;
+import org.apache.bigtop.manager.server.model.vo.PageVO;
import org.apache.bigtop.manager.server.model.vo.QuickLinkVO;
import org.apache.bigtop.manager.server.model.vo.ServiceConfigSnapshotVO;
import org.apache.bigtop.manager.server.model.vo.ServiceConfigVO;
import org.apache.bigtop.manager.server.model.vo.ServiceVO;
import org.apache.bigtop.manager.server.service.ServiceService;
+import org.apache.bigtop.manager.server.utils.PageUtils;
import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import jakarta.annotation.Resource;
@@ -58,7 +58,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.stream.Collectors;
@Slf4j
@Service
@@ -67,9 +66,6 @@ public class ServiceServiceImpl implements ServiceService {
@Resource
private ServiceDao serviceDao;
- @Resource
- private HostComponentDao hostComponentDao;
-
@Resource
private ServiceConfigDao serviceConfigDao;
@@ -77,55 +73,21 @@ public class ServiceServiceImpl implements ServiceService {
private ServiceConfigSnapshotDao serviceConfigSnapshotDao;
@Override
- public List<ServiceVO> list(Long clusterId) {
- List<ServiceVO> res = new ArrayList<>();
-
- List<ServicePO> servicePOList =
serviceDao.findAllByClusterId(clusterId);
- List<HostComponentPO> allByClusterId =
hostComponentDao.findAllByClusterId(clusterId);
- Map<Long, List<HostComponentPO>> serviceIdToHostComponent =
-
allByClusterId.stream().collect(Collectors.groupingBy(HostComponentPO::getServiceId));
- Map<Long, List<HostComponentPO>> componentIdToHostComponent =
-
allByClusterId.stream().collect(Collectors.groupingBy(HostComponentPO::getComponentId));
-
- for (ServicePO servicePO : servicePOList) {
- Long serviceId = servicePO.getId();
- ServiceVO serviceVO =
ServiceConverter.INSTANCE.fromPO2VO(servicePO);
- List<ComponentPO> components = servicePO.getComponents();
- serviceVO.setQuickLinks(new ArrayList<>());
-
- for (ComponentPO componentPO : components) {
- Long componentId = componentPO.getId();
- List<HostComponentPO> hostComponentPOList =
componentIdToHostComponent.get(componentId);
-
- String quickLink = componentPO.getQuickLink();
- if (StringUtils.isNotBlank(quickLink)) {
- List<QuickLinkVO> quickLinkVOList =
- resolveQuickLink(hostComponentPOList, quickLink,
clusterId, serviceId);
- serviceVO.getQuickLinks().addAll(quickLinkVOList);
- }
- }
- boolean isClient = components.stream()
- .allMatch(componentPO ->
componentPO.getCategory().equalsIgnoreCase(ComponentCategories.CLIENT));
- boolean isHealthy =
serviceIdToHostComponent.get(serviceId).stream().allMatch(hostComponentPO -> {
- MaintainState expectedState =
hostComponentPO.getCategory().equalsIgnoreCase(ComponentCategories.CLIENT)
- ? MaintainState.INSTALLED
- : MaintainState.STARTED;
- return
hostComponentPO.getState().equals(expectedState.getName());
- });
-
- serviceVO.setIsClient(isClient);
- serviceVO.setIsHealthy(isHealthy);
- res.add(serviceVO);
+ public PageVO<ServiceVO> list(ServiceQuery query) {
+ PageQuery pageQuery = PageUtils.getPageQuery();
+ try (Page<?> ignored =
+ PageHelper.startPage(pageQuery.getPageNum(),
pageQuery.getPageSize(), pageQuery.getOrderBy())) {
+ List<ServicePO> servicePOList = serviceDao.findByQuery(query);
+ PageInfo<ServicePO> pageInfo = new PageInfo<>(servicePOList);
+ return PageVO.of(pageInfo);
+ } finally {
+ PageHelper.clearPage();
}
-
- return res;
}
@Override
public ServiceVO get(Long id) {
- ServicePO servicePO =
- serviceDao.findByIdJoin(id).orElseThrow(() -> new
ApiException(ApiExceptionEnum.SERVICE_NOT_FOUND));
- return ServiceConverter.INSTANCE.fromPO2VO(servicePO);
+ return ServiceConverter.INSTANCE.fromPO2VO(serviceDao.findById(id));
}
@Override
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/StackServiceImpl.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/StackServiceImpl.java
index 9a5d26f7..3d777a99 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/StackServiceImpl.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/StackServiceImpl.java
@@ -46,7 +46,7 @@ public class StackServiceImpl implements StackService {
StackDTO stackDTO = entry.getKey();
List<ServiceDTO> serviceDTOList = entry.getValue();
for (ServiceDTO serviceDTO : serviceDTOList) {
-
serviceDTO.setConfigs(StackUtils.SERVICE_CONFIG_MAP.get(serviceDTO.getServiceName()));
+
serviceDTO.setConfigs(StackUtils.SERVICE_CONFIG_MAP.get(serviceDTO.getName()));
}
StackVO stackVO = StackConverter.INSTANCE.fromDTO2VO(stackDTO);
diff --git
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackUtils.java
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackUtils.java
index 0843463c..0f6f8f8f 100644
---
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackUtils.java
+++
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackUtils.java
@@ -112,7 +112,7 @@ public class StackUtils {
ServiceDTO serviceDTO = parseServiceMetaInfo(file);
services.add(serviceDTO);
- parseServiceConfigurations(file, serviceDTO.getServiceName());
+ parseServiceConfigurations(file, serviceDTO.getName());
parseDag(file);
}
@@ -126,7 +126,7 @@ public class StackUtils {
JaxbUtils.readFromPath(file.getAbsolutePath() + "/" +
META_FILE, ServiceMetainfoXml.class);
ServiceModel serviceModel = serviceMetainfoXml.getService();
ServiceDTO serviceDTO =
ServiceConverter.INSTANCE.fromModel2DTO(serviceModel);
-
serviceDTO.setServiceDesc(StringUtils.strip(serviceDTO.getServiceDesc()));
+ serviceDTO.setDesc(StringUtils.strip(serviceDTO.getDesc()));
return serviceDTO;
}
@@ -211,7 +211,7 @@ public class StackUtils {
public static StackDTO getServiceStack(String serviceName) {
for (Map.Entry<StackDTO, List<ServiceDTO>> entry :
STACK_SERVICE_MAP.entrySet()) {
for (ServiceDTO serviceDTO : entry.getValue()) {
- if (serviceDTO.getServiceName().equals(serviceName)) {
+ if (serviceDTO.getName().equals(serviceName)) {
return entry.getKey();
}
}
@@ -232,7 +232,7 @@ public class StackUtils {
public static ServiceDTO getServiceDTO(String serviceName) {
for (Map.Entry<StackDTO, List<ServiceDTO>> entry :
STACK_SERVICE_MAP.entrySet()) {
for (ServiceDTO serviceDTO : entry.getValue()) {
- if (serviceDTO.getServiceName().equals(serviceName)) {
+ if (serviceDTO.getName().equals(serviceName)) {
return serviceDTO;
}
}
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 6c236757..d89400ab 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
@@ -108,7 +108,7 @@ CREATE TABLE `host`
`total_disk` BIGINT,
`total_memory_size` BIGINT,
`desc` VARCHAR(255) DEFAULT NULL,
- `status` INTEGER DEFAULT NULL COMMENT '1-healthy,
2-unhealthy, 3-unknown',
+ `status` INTEGER DEFAULT NULL COMMENT '1-healthy,
2-unhealthy, 3-unknown',
`err_info` VARCHAR(255) DEFAULT NULL,
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE
CURRENT_TIMESTAMP,
@@ -136,21 +136,22 @@ CREATE TABLE `repo`
CREATE TABLE `service`
(
`id` BIGINT NOT NULL AUTO_INCREMENT,
- `display_name` VARCHAR(255),
- `package_specifics` VARCHAR(1024),
- `required_services` VARCHAR(255),
- `service_desc` VARCHAR(1024),
- `service_name` VARCHAR(255),
- `service_user` VARCHAR(255),
- `service_version` VARCHAR(255),
+ `name` VARCHAR(255) DEFAULT NULL,
+ `display_name` VARCHAR(255) DEFAULT NULL,
+ `desc` VARCHAR(1024) DEFAULT NULL,
+ `user` VARCHAR(255) DEFAULT NULL,
+ `version` VARCHAR(255) DEFAULT NULL,
+ `stack` VARCHAR(255) DEFAULT NULL,
+ `need_restart` BOOLEAN DEFAULT FALSE,
`cluster_id` BIGINT,
+ `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),
KEY idx_service_cluster_id (cluster_id),
- UNIQUE KEY `uk_service_name` (`service_name`, `cluster_id`)
+ UNIQUE KEY `uk_service_name` (`name`, `cluster_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `service_config`
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 f7590fda..e59ca7c4 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
@@ -73,8 +73,6 @@ 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;
-
CREATE TABLE host
(
id BIGINT CHECK (id > 0) NOT NULL GENERATED
ALWAYS AS IDENTITY,
@@ -133,22 +131,25 @@ COMMENT ON COLUMN repo.type IS '1-services, 2-tools';
CREATE TABLE service
(
id BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY,
- display_name VARCHAR(255),
- package_specifics VARCHAR(1024),
- required_services VARCHAR(255),
- service_desc VARCHAR(1024),
- service_name VARCHAR(255),
- service_user VARCHAR(255),
- service_version VARCHAR(255),
+ name VARCHAR(255) DEFAULT NULL,
+ display_name VARCHAR(255) DEFAULT NULL,
+ "desc" VARCHAR(1024) DEFAULT NULL,
+ "user" VARCHAR(255) DEFAULT NULL,
+ version VARCHAR(255) DEFAULT NULL,
+ stack VARCHAR(255) DEFAULT NULL,
+ need_restart BOOLEAN DEFAULT FALSE,
cluster_id BIGINT,
+ status INTEGER DEFAULT NULL,
create_time TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP,
create_by BIGINT,
update_by BIGINT,
PRIMARY KEY (id),
- CONSTRAINT uk_service_name UNIQUE (service_name, cluster_id)
+ CONSTRAINT uk_service_name UNIQUE (name, cluster_id)
);
+COMMENT ON COLUMN service.status IS '1-healthy, 2-unhealthy, 3-unknown';
+
CREATE INDEX idx_service_cluster_id ON service (cluster_id);
CREATE TABLE service_config
diff --git
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/controller/ServiceControllerTest.java
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/controller/ServiceControllerTest.java
index 87ab340d..80c5b1bd 100644
---
a/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/controller/ServiceControllerTest.java
+++
b/bigtop-manager-server/src/test/java/org/apache/bigtop/manager/server/controller/ServiceControllerTest.java
@@ -18,6 +18,8 @@
*/
package org.apache.bigtop.manager.server.controller;
+import org.apache.bigtop.manager.dao.query.ServiceQuery;
+import org.apache.bigtop.manager.server.model.vo.PageVO;
import org.apache.bigtop.manager.server.model.vo.ServiceVO;
import org.apache.bigtop.manager.server.service.ServiceService;
import org.apache.bigtop.manager.server.utils.MessageSourceUtils;
@@ -33,9 +35,6 @@ import org.mockito.MockedStatic;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
-import java.util.Arrays;
-import java.util.List;
-
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -66,10 +65,11 @@ class ServiceControllerTest {
@Test
void listReturnsAllServices() {
- List<ServiceVO> services = Arrays.asList(new ServiceVO(), new
ServiceVO());
+ ServiceQuery query = new ServiceQuery();
+ PageVO<ServiceVO> services = new PageVO<>();
when(serviceService.list(any())).thenReturn(services);
- ResponseEntity<List<ServiceVO>> response = serviceController.list(1L);
+ ResponseEntity<PageVO<ServiceVO>> response =
serviceController.list(1L, query);
assertTrue(response.isSuccess());
assertEquals(services, response.getData());