From 5ed58d784dde823b8da7c93e067fbfd1fa8a18a7 Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Thu, 22 Aug 2024 17:04:07 +0800
Subject: [PATCH 01/17] BIGTOP-4192: Switch ORM framework from JPA to MyBatis
for Bigtop-Manager
---
bigtop-manager-bom/pom.xml | 22 ++-
.../manager/common/utils/ClassUtils.java | 41 ++++++
bigtop-manager-dao/pom.xml | 10 +-
.../bigtop/manager/dao/mapper/BaseMapper.java | 38 ++++++
.../manager/dao/mapper/ClusterMapper.java | 14 ++
.../bigtop/manager/dao/mapper/HostMapper.java | 7 +
.../bigtop/manager/dao/mapper/JobMapper.java | 14 ++
.../bigtop/manager/dao/mapper/RepoMapper.java | 18 +++
.../manager/dao/mapper/StackMapper.java | 10 ++
.../manager/dao/mapper/StageMapper.java | 8 ++
.../bigtop/manager/dao/mapper/TaskMapper.java | 8 ++
.../bigtop/manager/dao/mapper/UserMapper.java | 7 +
.../apache/bigtop/manager/dao/po/BasePO.java | 7 +-
.../bigtop/manager/dao/po/ClusterPO.java | 3 +
.../apache/bigtop/manager/dao/po/JobPO.java | 4 +
.../apache/bigtop/manager/dao/po/StagePO.java | 11 +-
.../apache/bigtop/manager/dao/po/TaskPO.java | 15 ++-
.../manager/dao/sql/BaseSqlProvider.java | 66 +++++++++
.../bigtop/manager/dao/sql/SQLBuilder.java | 127 ++++++++++++++++++
.../bigtop/manager/dao/sql/TableMataData.java | 115 ++++++++++++++++
.../resources/mapper/mysql/ClusterMapper.xml | 47 +++++++
.../main/resources/mapper/mysql/JobMapper.xml | 56 ++++++++
.../resources/mapper/mysql/RepoMapper.xml | 69 ++++++++++
.../resources/mapper/mysql/StackMapper.xml | 51 +++++++
bigtop-manager-server/pom.xml | 22 +--
.../server/config/EclipseLinkConfig.java | 55 --------
.../manager/server/model/query/PageQuery.java | 4 +-
.../manager/server/model/vo/PageVO.java | 24 ++++
.../service/impl/ClusterServiceImpl.java | 31 ++---
.../server/service/impl/JobServiceImpl.java | 40 +++---
.../server/service/impl/UserServiceImpl.java | 10 +-
.../manager/server/utils/PageUtils.java | 6 +-
.../src/main/resources/application.yml | 44 +++---
33 files changed, 839 insertions(+), 165 deletions(-)
create mode 100644 bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/ClassUtils.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ClusterMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/RepoMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StackMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StageMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TaskMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/UserMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMataData.java
create mode 100644 bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml
create mode 100644 bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
create mode 100644 bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml
create mode 100644 bigtop-manager-dao/src/main/resources/mapper/mysql/StackMapper.xml
delete mode 100644 bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/EclipseLinkConfig.java
diff --git a/bigtop-manager-bom/pom.xml b/bigtop-manager-bom/pom.xml
index 72f101ad9..43a93cafc 100644
--- a/bigtop-manager-bom/pom.xml
+++ b/bigtop-manager-bom/pom.xml
@@ -51,6 +51,8 @@
1.12.4
8.1.2.192
0.33.0
+ 3.0.3
+ 2.1.0
@@ -159,13 +161,6 @@
${jaxb-runtime.version}
-
- org.hibernate.orm
- hibernate-core
- ${hibernate-core.version}
- provided
-
-
org.apache.commons
commons-text
@@ -203,6 +198,19 @@
${oshi-core.version}
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ ${mybatis-spring-boot-starter.version}
+
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ ${pagehelper-spring-boot-starter.version}
+
+
com.dameng
diff --git a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/ClassUtils.java b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/ClassUtils.java
new file mode 100644
index 000000000..d92cf548f
--- /dev/null
+++ b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/ClassUtils.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.bigtop.manager.common.utils;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class ClassUtils {
+
+ /**
+ * Get all Fields
+ */
+ public static List getFields(Class> loadClass) {
+ List fieldList = new ArrayList<>();
+
+ while (loadClass != null) {
+ fieldList.addAll(Arrays.asList(loadClass.getDeclaredFields()));
+ loadClass = loadClass.getSuperclass();
+ }
+ return fieldList;
+ }
+
+}
diff --git a/bigtop-manager-dao/pom.xml b/bigtop-manager-dao/pom.xml
index 8bf7a5162..96eae894f 100644
--- a/bigtop-manager-dao/pom.xml
+++ b/bigtop-manager-dao/pom.xml
@@ -49,9 +49,15 @@
- org.springframework.data
- spring-data-jpa
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+
+
org.projectlombok
lombok
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java
new file mode 100644
index 000000000..67aed6007
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java
@@ -0,0 +1,38 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.sql.BaseSqlProvider;
+import org.apache.ibatis.annotations.InsertProvider;
+import org.apache.ibatis.annotations.SelectProvider;
+import org.apache.ibatis.annotations.UpdateProvider;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface BaseMapper {
+
+ /**
+ * Insert the entity.
+ */
+ @InsertProvider(type = BaseSqlProvider.class, method = "save")
+ int save(Entity entity);
+
+ /**
+ * Update the entity by primary key.
+ */
+ @UpdateProvider(type = BaseSqlProvider.class, method = "updateById")
+ int updateById(Entity entity);
+
+ /**
+ * Query the entity by primary key.
+ */
+ @SelectProvider(type = BaseSqlProvider.class, method = "findById")
+ Optional findById(Long id);
+
+ /**
+ * Query all entities.
+ */
+ @SelectProvider(type = BaseSqlProvider.class, method = "findAll")
+ List findAll();
+
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ClusterMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ClusterMapper.java
new file mode 100644
index 000000000..e597998d6
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ClusterMapper.java
@@ -0,0 +1,14 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.ClusterPO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Optional;
+
+public interface ClusterMapper extends BaseMapper {
+
+ Optional findByClusterName(@Param("clusterName") String clusterName);
+
+ Integer count();
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
new file mode 100644
index 000000000..c9629bc7e
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
@@ -0,0 +1,7 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.HostPO;
+
+public interface HostMapper extends BaseMapper {
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java
new file mode 100644
index 000000000..966534b48
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java
@@ -0,0 +1,14 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.JobPO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface JobMapper extends BaseMapper {
+
+ List findAllByClusterId(@Param("clusterId") Long clusterId);
+
+ List findAllByClusterIsNull();
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/RepoMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/RepoMapper.java
new file mode 100644
index 000000000..cc806013a
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/RepoMapper.java
@@ -0,0 +1,18 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.ClusterPO;
+import org.apache.bigtop.manager.dao.po.RepoPO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface RepoMapper extends BaseMapper {
+
+ Optional findByRepoName(@Param("repoName") String clusterName);
+
+ int saveAll(@Param("clusters") List repos);
+
+ List findAllByClusterId(@Param("clusterId") Long clusterId);
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StackMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StackMapper.java
new file mode 100644
index 000000000..185f0cee9
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StackMapper.java
@@ -0,0 +1,10 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.StackPO;
+import org.apache.ibatis.annotations.Param;
+
+public interface StackMapper extends BaseMapper {
+
+ StackPO findByStackNameAndStackVersion(@Param("stackName") String stackName, @Param("stackVersion") String stackVersion);
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StageMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StageMapper.java
new file mode 100644
index 000000000..a6e4037d8
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StageMapper.java
@@ -0,0 +1,8 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.StagePO;
+
+public interface StageMapper extends BaseMapper {
+
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TaskMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TaskMapper.java
new file mode 100644
index 000000000..bb85fcc5c
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TaskMapper.java
@@ -0,0 +1,8 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.TaskPO;
+
+public interface TaskMapper extends BaseMapper {
+
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/UserMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/UserMapper.java
new file mode 100644
index 000000000..f88c655b3
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/UserMapper.java
@@ -0,0 +1,7 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.UserPO;
+
+public interface UserMapper extends BaseMapper {
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/BasePO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/BasePO.java
index 819f0c6a0..a1319b4c5 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/BasePO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/BasePO.java
@@ -18,22 +18,17 @@
*/
package org.apache.bigtop.manager.dao.po;
+import jakarta.persistence.Column;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
-import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import lombok.Data;
-import jakarta.persistence.Column;
-import jakarta.persistence.EntityListeners;
-import jakarta.persistence.MappedSuperclass;
import java.sql.Timestamp;
@Data
-@MappedSuperclass
-@EntityListeners(AuditingEntityListener.class)
public abstract class BasePO {
@CreatedDate
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 5e6015b89..59be04c90 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
@@ -84,6 +84,9 @@ public class ClusterPO extends BasePO {
@Column(name = "selected")
private Boolean selected;
+ @Column(name = "stack_id")
+ private Long stackId;
+
@ManyToOne
@JoinColumn(name = "stack_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
private StackPO stackPO;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
index f7ffceb8b..17a82f0b7 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
@@ -40,6 +40,7 @@
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+
import java.util.List;
@Data
@@ -67,6 +68,9 @@ public class JobPO extends BasePO {
@Column(name = "\"context\"", length = 16777216)
private String context;
+ @Column(name = "cluster_id")
+ private Long clusterId;
+
@ManyToOne
@JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
private ClusterPO clusterPO;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
index 7678a3924..270beab75 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
@@ -40,6 +40,7 @@
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+
import java.util.List;
@Data
@@ -48,8 +49,8 @@
@Table(
name = "stage",
indexes = {
- @Index(name = "idx_stage_cluster_id", columnList = "cluster_id"),
- @Index(name = "idx_stage_job_id", columnList = "job_id")
+ @Index(name = "idx_stage_cluster_id", columnList = "cluster_id"),
+ @Index(name = "idx_stage_job_id", columnList = "job_id")
})
@TableGenerator(name = "stage_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
public class StagePO extends BasePO {
@@ -79,6 +80,12 @@ public class StagePO extends BasePO {
@Column(name = "\"context\"", length = 16777216)
private String context;
+ @Column(name = "job_id")
+ private Long jobId;
+
+ @Column(name = "cluster_id")
+ private Long clusterId;
+
@ManyToOne
@JoinColumn(name = "job_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
private JobPO jobPO;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
index c58e5c44d..7921e02da 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
@@ -46,9 +46,9 @@
@Table(
name = "\"task\"",
indexes = {
- @Index(name = "idx_task_cluster_id", columnList = "cluster_id"),
- @Index(name = "idx_task_job_id", columnList = "job_id"),
- @Index(name = "idx_task_stage_id", columnList = "stage_id")
+ @Index(name = "idx_task_cluster_id", columnList = "cluster_id"),
+ @Index(name = "idx_task_job_id", columnList = "job_id"),
+ @Index(name = "idx_task_stage_id", columnList = "stage_id")
})
@TableGenerator(name = "task_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
public class TaskPO extends BasePO {
@@ -98,6 +98,15 @@ public class TaskPO extends BasePO {
@Column(name = "content", length = 16777216)
private String content;
+ @Column(name = "stage_id")
+ private Long stageId;
+
+ @Column(name = "job_id")
+ private Long jobId;
+
+ @Column(name = "cluster_id")
+ private Long clusterId;
+
@ManyToOne
@JoinColumn(name = "job_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
private JobPO jobPO;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
new file mode 100644
index 000000000..858ed232c
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
@@ -0,0 +1,66 @@
+package org.apache.bigtop.manager.dao.sql;
+
+import lombok.extern.slf4j.Slf4j;
+import org.apache.bigtop.manager.dao.mapper.BaseMapper;
+import org.apache.ibatis.builder.annotation.ProviderContext;
+import org.springframework.core.ResolvableType;
+import org.springframework.util.Assert;
+
+import java.lang.reflect.Type;
+
+@Slf4j
+public class BaseSqlProvider {
+
+ public String save(Entity entity, ProviderContext context) {
+ Assert.notNull(entity, "entity must not null");
+
+ String databaseId = context.getDatabaseId();
+
+ Class> entityClass = entity.getClass();
+ TableMataData mataData = TableMataData.forClass(entityClass);
+
+ return SQLBuilder.insert(mataData, entity, databaseId);
+ }
+
+ public String updateById(Entity entity, ProviderContext context) {
+ Assert.notNull(entity, "entity must not null");
+
+ String databaseId = context.getDatabaseId();
+
+ Class> entityClass = entity.getClass();
+ TableMataData mataData = TableMataData.forClass(entityClass);
+
+ return SQLBuilder.update(mataData, entity, databaseId);
+ }
+
+ public String findById(ProviderContext context) {
+ String databaseId = context.getDatabaseId();
+
+ Class> entityClass = getEntityClass(context);
+ TableMataData mataData = TableMataData.forClass(entityClass);
+
+ return SQLBuilder.selectById(mataData, databaseId);
+ }
+
+ public String findAll(ProviderContext context) {
+ String databaseId = context.getDatabaseId();
+
+ Class> entityClass = getEntityClass(context);
+ TableMataData mataData = TableMataData.forClass(entityClass);
+
+ return SQLBuilder.selectAll(mataData, databaseId);
+
+ }
+
+ private Class> getEntityClass(ProviderContext context) {
+ Class> mapperType = context.getMapperType();
+ for (Type parent : mapperType.getGenericInterfaces()) {
+ ResolvableType parentType = ResolvableType.forType(parent);
+ if (parentType.getRawClass() == BaseMapper.class) {
+ return parentType.getGeneric(0).getRawClass();
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
new file mode 100644
index 000000000..8da6248e1
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
@@ -0,0 +1,127 @@
+package org.apache.bigtop.manager.dao.sql;
+
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.jdbc.SQL;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.util.ReflectionUtils;
+
+import java.beans.PropertyDescriptor;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * Multiple data source support
+ */
+@Slf4j
+public class SQLBuilder {
+
+ public static String insert(TableMataData mataData, Entity entity, String databaseId) {
+ Class> entityClass = entity.getClass();
+ Map fieldColumnMap = mataData.getFieldColumnMap();
+
+ SQL sql = new SQL();
+ switch (databaseId) {
+ case "mysql": {
+ sql.INSERT_INTO(mataData.getTableName());
+ for (Map.Entry entry : fieldColumnMap.entrySet()) {
+ // 忽略主键
+ if (Objects.equals(entry.getKey(), mataData.getPkProperty())) {
+ continue;
+ }
+ PropertyDescriptor ps = BeanUtils.getPropertyDescriptor(entityClass, entry.getKey());
+ if (ps == null || ps.getReadMethod() == null) {
+ continue;
+ }
+ Object value = ReflectionUtils.invokeMethod(ps.getReadMethod(), entity);
+ if (!ObjectUtils.isEmpty(value)) {
+ sql.VALUES(entry.getValue(), getTokenParam(entry.getKey()));
+ }
+ }
+ break;
+ }
+ default: {
+ log.error("Unsupported data source");
+ }
+ }
+
+ return sql.toString();
+ }
+
+ public static String update(TableMataData mataData, Entity entity, String databaseId) {
+ Class> entityClass = entity.getClass();
+ Map fieldColumnMap = mataData.getFieldColumnMap();
+
+ SQL sql = new SQL();
+ switch (databaseId) {
+ case "mysql": {
+ sql.UPDATE(mataData.getTableName());
+ for (Map.Entry entry : fieldColumnMap.entrySet()) {
+ // 忽略主键
+ if (Objects.equals(entry.getKey(), mataData.getPkProperty())) {
+ continue;
+ }
+ PropertyDescriptor ps = BeanUtils.getPropertyDescriptor(entityClass, entry.getKey());
+ if (ps == null || ps.getReadMethod() == null) {
+ continue;
+ }
+ Object value = ReflectionUtils.invokeMethod(ps.getReadMethod(), entity);
+ if (!ObjectUtils.isEmpty(value)) {
+ sql.SET(getEquals(entry.getValue(), entry.getKey()));
+ }
+ }
+
+ sql.WHERE(getEquals(mataData.getPkColumn(), mataData.getPkProperty()));
+ break;
+ }
+ default: {
+ log.error("Unsupported data source");
+ }
+ }
+
+ return sql.toString();
+ }
+
+ public static String selectById(TableMataData mataData, String databaseId) {
+
+ SQL sql = new SQL();
+ switch (databaseId) {
+ case "mysql": {
+ sql.SELECT(mataData.getBaseColumns());
+ sql.FROM(mataData.getTableName());
+ sql.WHERE(getEquals(mataData.getPkColumn(), mataData.getPkProperty()));
+ break;
+ }
+ default: {
+ log.error("Unsupported data source");
+ }
+ }
+
+ return sql.toString();
+ }
+
+ public static String selectAll(TableMataData mataData, String databaseId) {
+
+ SQL sql = new SQL();
+ switch (databaseId) {
+ case "mysql": {
+ sql.SELECT(mataData.getBaseColumns());
+ sql.FROM(mataData.getTableName());
+ break;
+ }
+ default: {
+ log.error("Unsupported data source");
+ }
+ }
+
+ return sql.toString();
+ }
+
+ private static String getEquals(String column, String property) {
+ return column + " = " + getTokenParam(property);
+ }
+
+ private static String getTokenParam(String property) {
+ return "#{" + property + "}";
+ }
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMataData.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMataData.java
new file mode 100644
index 000000000..eb39b53e0
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMataData.java
@@ -0,0 +1,115 @@
+package org.apache.bigtop.manager.dao.sql;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
+import lombok.Getter;
+import org.apache.bigtop.manager.common.utils.CaseUtils;
+import org.apache.bigtop.manager.common.utils.ClassUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.CollectionUtils;
+
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+@Getter
+public class TableMataData {
+
+ private static final Map, TableMataData> TABLE_CACHE = new ConcurrentHashMap<>(64);
+
+ /**
+ * tableName
+ */
+ private String tableName;
+
+ /**
+ * primaryField
+ */
+ private String pkProperty;
+
+ /**
+ * primaryKey
+ */
+ private String pkColumn;
+
+ /**
+ * {entityField,column}
+ */
+ private final Map fieldColumnMap = new HashMap<>();
+
+ /**
+ * {column,columnType}
+ */
+ private final Map> fieldTypeMap = new HashMap<>();
+
+ private TableMataData(Class> clazz) {
+ initTableInfo(clazz);
+ }
+
+
+ public static TableMataData forClass(Class> entityClass) {
+ TableMataData tableMataDate = TABLE_CACHE.get(entityClass);
+ if (tableMataDate == null) {
+ tableMataDate = new TableMataData(entityClass);
+ TABLE_CACHE.put(entityClass, tableMataDate);
+ }
+
+ return tableMataDate;
+ }
+
+ public String getBaseColumns() {
+ Collection columns = fieldColumnMap.values();
+ if (CollectionUtils.isEmpty(columns)) {
+ return "";
+ }
+ Iterator iterator = columns.iterator();
+ StringBuilder sb = new StringBuilder();
+ while (iterator.hasNext()) {
+ String next = iterator.next();
+ sb.append(tableName).append(".").append(next);
+ if (iterator.hasNext()) {
+ sb.append(", ");
+ }
+ }
+ return sb.toString();
+ }
+
+ private void initTableInfo(Class> clazz) {
+ tableName = clazz.isAnnotationPresent(Table.class) ? clazz.getAnnotation(Table.class).name()
+ : CaseUtils.toUnderScoreCase(clazz.getSimpleName());
+
+ //获取父类字段
+ List fields = ClassUtils.getFields(clazz);
+ for (Field field : fields) {
+
+ if (Modifier.isStatic(field.getModifiers()) ||
+ field.isAnnotationPresent(Transient.class) ||
+ !BeanUtils.isSimpleValueType(field.getType())) {
+ continue;
+ }
+
+ String property = field.getName();
+ Column column = field.getAnnotation(Column.class);
+ String columnName = column != null ? column.name() : CaseUtils.toUnderScoreCase(property);
+
+ if (field.isAnnotationPresent(Id.class) || (property.equalsIgnoreCase("id") && pkProperty == null)) {
+ pkProperty = property;
+ pkColumn = columnName;
+ }
+ PropertyDescriptor descriptor = BeanUtils.getPropertyDescriptor(clazz, property);
+ if (descriptor != null && descriptor.getReadMethod() != null && descriptor.getWriteMethod() != null) {
+ fieldColumnMap.put(property, columnName);
+ fieldTypeMap.put(property, field.getType());
+ }
+ }
+ }
+
+}
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml
new file mode 100644
index 000000000..66aad7ea1
--- /dev/null
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+ id, cluster_name, cluster_type, root, user_group, packages, repo_template, state, selected, stack_id
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
new file mode 100644
index 000000000..edeb00cf9
--- /dev/null
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+ id, state, name, context, cluster_id
+
+
+ ${alias}.id, ${alias}.state, ${alias}.name, ${alias}.context, ${alias}.cluster_id
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml
new file mode 100644
index 000000000..97be0689f
--- /dev/null
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+ id, base_url, os, arch, repo_id, repo_name, cluster_id
+
+
+ ${alias}.id, ${alias}.base_url, ${alias}.os, ${alias}.arch, ${alias}.repo_id, ${alias}.repo_name, ${alias}.cluster_id
+
+
+
+
+
+ insert into repo (cluster_name, cluster_type, root, user_group, packages, repo_template, state, selected)
+ values
+
+ (#{cluster.clusterName},#{cluster.clusterType},#{cluster.root},#{cluster.userGroup},#{cluster.packages},#{cluster.repoTemplate},#{cluster.state},#{cluster.selected})
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/StackMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/StackMapper.xml
new file mode 100644
index 000000000..a8a59de7a
--- /dev/null
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/StackMapper.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+ id, stack_name, stack_version
+
+
+ ${alias}.id, ${alias}.stack_name, ${alias}.stack_version
+
+
+
+
+
\ No newline at end of file
diff --git a/bigtop-manager-server/pom.xml b/bigtop-manager-server/pom.xml
index c3e6ccf80..b5d88cdbb 100644
--- a/bigtop-manager-server/pom.xml
+++ b/bigtop-manager-server/pom.xml
@@ -71,21 +71,6 @@
-
- org.hibernate.orm
- hibernate-core
-
-
-
- org.eclipse.persistence
- org.eclipse.persistence.jpa
-
-
-
- org.eclipse.persistence
- org.eclipse.persistence.extension
-
-
org.springframework.boot
spring-boot-starter-web
@@ -101,10 +86,15 @@
spring-boot-starter-validation
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+
+
com.mysql
mysql-connector-j
- provided
+
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/EclipseLinkConfig.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/EclipseLinkConfig.java
deleted file mode 100644
index 96e612e89..000000000
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/EclipseLinkConfig.java
+++ /dev/null
@@ -1,55 +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.config;
-
-import org.springframework.beans.factory.ObjectProvider;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration;
-import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter;
-import org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter;
-import org.springframework.transaction.jta.JtaTransactionManager;
-
-import jakarta.annotation.Resource;
-import javax.sql.DataSource;
-import java.util.HashMap;
-import java.util.Map;
-
-@Configuration
-@ConditionalOnProperty(value = "bigtop.manager.orm.type", havingValue = "eclipselink", matchIfMissing = true)
-public class EclipseLinkConfig extends JpaBaseConfiguration {
-
- @Resource
- private JpaProperties properties;
-
- protected EclipseLinkConfig(DataSource ds, JpaProperties props, ObjectProvider txm) {
- super(ds, props, txm);
- }
-
- @Override
- protected AbstractJpaVendorAdapter createJpaVendorAdapter() {
- return new EclipseLinkJpaVendorAdapter();
- }
-
- @Override
- protected Map getVendorProperties() {
- return new HashMap<>(properties.getProperties());
- }
-}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/query/PageQuery.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/query/PageQuery.java
index d33cd9a71..03ac79af2 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/query/PageQuery.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/query/PageQuery.java
@@ -18,8 +18,6 @@
*/
package org.apache.bigtop.manager.server.model.query;
-import org.springframework.data.domain.Sort;
-
import lombok.Data;
@Data
@@ -29,5 +27,5 @@ public class PageQuery {
private Integer pageSize;
- private Sort sort;
+ private String orderBy;
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/PageVO.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/PageVO.java
index cd8cd56da..75187423f 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/PageVO.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/PageVO.java
@@ -18,6 +18,7 @@
*/
package org.apache.bigtop.manager.server.model.vo;
+import com.github.pagehelper.PageInfo;
import org.apache.bigtop.manager.server.exception.ServerException;
import org.mapstruct.factory.Mappers;
@@ -65,4 +66,27 @@ public static PageVO of(Page page) {
res.setTotal(page.getTotalElements());
return res;
}
+
+ @SuppressWarnings("unchecked")
+ public static PageVO of(PageInfo page) {
+ List content = new ArrayList<>();
+ if (page.hasContent()) {
+ try {
+ Class clz = (Class) page.getList().get(0).getClass();
+ String className = "org.apache.bigtop.manager.server.model.converter."
+ + clz.getSimpleName().replace("PO", "") + "Converter";
+ Class> mapper = Class.forName(className);
+ Object o = Mappers.getMapper(mapper);
+ Method method = o.getClass().getDeclaredMethod("fromPO2VO", List.class);
+ content = (List) method.invoke(o, page.getList());
+ } catch (Exception e) {
+ throw new ServerException(e);
+ }
+ }
+
+ PageVO res = new PageVO<>();
+ res.setContent(content);
+ res.setTotal(page.getTotal());
+ return res;
+ }
}
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 7b53820f1..67a5ce185 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
@@ -19,12 +19,12 @@
package org.apache.bigtop.manager.server.service.impl;
import org.apache.bigtop.manager.common.enums.MaintainState;
+import org.apache.bigtop.manager.dao.mapper.ClusterMapper;
+import org.apache.bigtop.manager.dao.mapper.RepoMapper;
+import org.apache.bigtop.manager.dao.mapper.StackMapper;
import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.bigtop.manager.dao.po.RepoPO;
import org.apache.bigtop.manager.dao.po.StackPO;
-import org.apache.bigtop.manager.dao.repository.ClusterRepository;
-import org.apache.bigtop.manager.dao.repository.RepoRepository;
-import org.apache.bigtop.manager.dao.repository.StackRepository;
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;
@@ -41,6 +41,7 @@
import lombok.extern.slf4j.Slf4j;
import jakarta.annotation.Resource;
+
import java.util.ArrayList;
import java.util.List;
@@ -49,13 +50,13 @@
public class ClusterServiceImpl implements ClusterService {
@Resource
- private ClusterRepository clusterRepository;
+ private ClusterMapper clusterMapper;
@Resource
- private RepoRepository repoRepository;
+ private RepoMapper repoMapper;
@Resource
- private StackRepository stackRepository;
+ private StackMapper stackMapper;
@Resource
private HostService hostService;
@@ -63,7 +64,7 @@ public class ClusterServiceImpl implements ClusterService {
@Override
public List list() {
List clusterVOList = new ArrayList<>();
- clusterRepository.findAll().forEach(cluster -> {
+ clusterMapper.findAll().forEach(cluster -> {
ClusterVO clusterVO = ClusterConverter.INSTANCE.fromEntity2VO(cluster);
clusterVOList.add(clusterVO);
});
@@ -75,26 +76,26 @@ public List list() {
public ClusterVO save(ClusterDTO clusterDTO) {
// Save cluster
StackPO stackPO =
- stackRepository.findByStackNameAndStackVersion(clusterDTO.getStackName(), clusterDTO.getStackVersion());
+ stackMapper.findByStackNameAndStackVersion(clusterDTO.getStackName(), clusterDTO.getStackVersion());
StackDTO stackDTO = StackUtils.getStackKeyMap()
.get(StackUtils.fullStackName(clusterDTO.getStackName(), clusterDTO.getStackVersion()))
.getLeft();
ClusterPO clusterPO = ClusterConverter.INSTANCE.fromDTO2PO(clusterDTO, stackDTO, stackPO);
- clusterPO.setSelected(clusterRepository.count() == 0);
+ clusterPO.setSelected(clusterMapper.count() == 0);
clusterPO.setState(MaintainState.UNINSTALLED);
ClusterPO oldClusterPO =
- clusterRepository.findByClusterName(clusterDTO.getClusterName()).orElse(new ClusterPO());
+ clusterMapper.findByClusterName(clusterDTO.getClusterName()).orElse(new ClusterPO());
if (oldClusterPO.getId() != null) {
clusterPO.setId(oldClusterPO.getId());
}
- clusterRepository.save(clusterPO);
+ clusterMapper.save(clusterPO);
hostService.batchSave(clusterPO.getId(), clusterDTO.getHostnames());
// Save repo
List repoPOList = RepoConverter.INSTANCE.fromDTO2PO(clusterDTO.getRepoInfoList(), clusterPO);
- List oldrepoPOList = repoRepository.findAllByClusterPO(clusterPO);
+ List oldrepoPOList = repoMapper.findAllByClusterId(clusterPO.getId());
for (RepoPO repoPO : repoPOList) {
for (RepoPO oldRepoPO : oldrepoPOList) {
@@ -105,14 +106,14 @@ public ClusterVO save(ClusterDTO clusterDTO) {
}
}
- repoRepository.saveAll(repoPOList);
+ repoMapper.saveAll(repoPOList);
return ClusterConverter.INSTANCE.fromEntity2VO(clusterPO);
}
@Override
public ClusterVO get(Long id) {
ClusterPO clusterPO =
- clusterRepository.findById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.CLUSTER_NOT_FOUND));
+ clusterMapper.findById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.CLUSTER_NOT_FOUND));
return ClusterConverter.INSTANCE.fromEntity2VO(clusterPO);
}
@@ -121,7 +122,7 @@ public ClusterVO get(Long id) {
public ClusterVO update(Long id, ClusterDTO clusterDTO) {
ClusterPO clusterPO = ClusterConverter.INSTANCE.fromDTO2PO(clusterDTO);
clusterPO.setId(id);
- clusterRepository.save(clusterPO);
+ clusterMapper.updateById(clusterPO);
return ClusterConverter.INSTANCE.fromEntity2VO(clusterPO);
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
index 05aa6dea5..82cef5cbd 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
@@ -18,14 +18,16 @@
*/
package org.apache.bigtop.manager.server.service.impl;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
import org.apache.bigtop.manager.common.enums.JobState;
import org.apache.bigtop.manager.common.utils.JsonUtils;
+import org.apache.bigtop.manager.dao.mapper.JobMapper;
+import org.apache.bigtop.manager.dao.mapper.StageMapper;
+import org.apache.bigtop.manager.dao.mapper.TaskMapper;
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.JobRepository;
-import org.apache.bigtop.manager.dao.repository.StageRepository;
-import org.apache.bigtop.manager.dao.repository.TaskRepository;
import org.apache.bigtop.manager.server.command.CommandIdentifier;
import org.apache.bigtop.manager.server.command.factory.JobFactories;
import org.apache.bigtop.manager.server.command.factory.JobFactory;
@@ -44,25 +46,23 @@
import org.apache.bigtop.manager.server.utils.ClusterUtils;
import org.apache.bigtop.manager.server.utils.PageUtils;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
+
import java.util.List;
@Service
public class JobServiceImpl implements JobService {
@Resource
- private JobRepository jobRepository;
+ private JobMapper jobMapper;
@Resource
- private StageRepository stageRepository;
+ private StageMapper stageMapper;
@Resource
- private TaskRepository taskRepository;
+ private TaskMapper taskMapper;
@Resource
private JobScheduler jobScheduler;
@@ -70,26 +70,28 @@ public class JobServiceImpl implements JobService {
@Override
public PageVO list(Long clusterId) {
PageQuery pageQuery = PageUtils.getPageQuery();
- Pageable pageable = PageRequest.of(pageQuery.getPageNum(), pageQuery.getPageSize(), pageQuery.getSort());
- Page page;
+
+ PageHelper.startPage(pageQuery.getPageNum(), pageQuery.getPageSize(), pageQuery.getOrderBy());
+ List jobPOList;
if (ClusterUtils.isNoneCluster(clusterId)) {
- page = jobRepository.findAllByClusterPOIsNull(pageable);
+ jobPOList = jobMapper.findAllByClusterIsNull();
} else {
- page = jobRepository.findAllByClusterPOId(clusterId, pageable);
+ jobPOList = jobMapper.findAllByClusterId(clusterId);
}
+ PageInfo pageInfo = new PageInfo<>(jobPOList);
- return PageVO.of(page);
+ return PageVO.of(pageInfo);
}
@Override
public JobVO get(Long id) {
- JobPO jobPO = jobRepository.getReferenceById(id);
+ JobPO jobPO = jobMapper.findById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.JOB_NOT_FOUND));
return JobConverter.INSTANCE.fromPO2VO(jobPO);
}
@Override
public JobVO retry(Long id) {
- JobPO jobPO = jobRepository.getReferenceById(id);
+ JobPO jobPO = jobMapper.findById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.JOB_NOT_FOUND));
if (jobPO.getState() != JobState.FAILED) {
throw new ApiException(ApiExceptionEnum.JOB_NOT_RETRYABLE);
}
@@ -105,15 +107,15 @@ private void resetJobStatusInDB(JobPO jobPO) {
for (StagePO stagePO : jobPO.getStagePOList()) {
for (TaskPO taskPO : stagePO.getTaskPOList()) {
taskPO.setState(JobState.PENDING);
- taskRepository.save(taskPO);
+ taskMapper.updateById(taskPO);
}
stagePO.setState(JobState.PENDING);
- stageRepository.save(stagePO);
+ stageMapper.updateById(stagePO);
}
jobPO.setState(JobState.PENDING);
- jobRepository.save(jobPO);
+ jobMapper.updateById(jobPO);
}
private Job recreateJob(JobPO jobPO) {
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/UserServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/UserServiceImpl.java
index c8165fce9..cf6fa4a22 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/UserServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/UserServiceImpl.java
@@ -18,8 +18,8 @@
*/
package org.apache.bigtop.manager.server.service.impl;
+import org.apache.bigtop.manager.dao.mapper.UserMapper;
import org.apache.bigtop.manager.dao.po.UserPO;
-import org.apache.bigtop.manager.dao.repository.UserRepository;
import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
import org.apache.bigtop.manager.server.exception.ApiException;
import org.apache.bigtop.manager.server.holder.SessionUserHolder;
@@ -36,21 +36,21 @@
public class UserServiceImpl implements UserService {
@Resource
- private UserRepository userRepository;
+ private UserMapper userMapper;
@Override
public UserVO current() {
Long id = SessionUserHolder.getUserId();
- UserPO userPO = userRepository.findById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.NEED_LOGIN));
+ UserPO userPO = userMapper.findById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.NEED_LOGIN));
return UserConverter.INSTANCE.fromPO2VO(userPO);
}
@Override
public UserVO update(UserDTO userDTO) {
Long id = SessionUserHolder.getUserId();
- UserPO userPO = userRepository.findById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.NEED_LOGIN));
+ UserPO userPO = userMapper.findById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.NEED_LOGIN));
userPO.setNickname(userDTO.getNickname());
- userRepository.save(userPO);
+ userMapper.updateById(userPO);
return UserConverter.INSTANCE.fromPO2VO(userPO);
}
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/PageUtils.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/PageUtils.java
index 1c8d0f387..f035b0a14 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/PageUtils.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/PageUtils.java
@@ -23,8 +23,6 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
-import org.springframework.data.domain.Sort;
-
public class PageUtils {
private static final String PAGE_NUM = "pageNum";
@@ -53,9 +51,9 @@ public static PageQuery getPageQuery() {
String orderBy = StringUtils.defaultIfBlank(ServletUtils.getParameter(ORDER_BY), DEFAULT_ORDER_BY);
String sort = StringUtils.defaultIfBlank(ServletUtils.getParameter(SORT), SORT_ASC);
if (SORT_DESC.equals(sort)) {
- query.setSort(Sort.by(orderBy).descending());
+ query.setOrderBy("ORDER BY " + orderBy + " DESC ");
} else {
- query.setSort(Sort.by(orderBy).ascending());
+ query.setOrderBy("ORDER BY " + orderBy + " ASC ");
}
return query;
diff --git a/bigtop-manager-server/src/main/resources/application.yml b/bigtop-manager-server/src/main/resources/application.yml
index 8cb54a728..2fab0f1d3 100644
--- a/bigtop-manager-server/src/main/resources/application.yml
+++ b/bigtop-manager-server/src/main/resources/application.yml
@@ -33,10 +33,10 @@ spring:
main:
banner-mode: log
datasource:
- driver-class-name: org.postgresql.Driver
- url: jdbc:postgresql://localhost:5432/bigtop_manager
- username: postgres
- password: postgres
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://192.168.1.81:3306/bigtop_manager
+ username: root
+ password: root
type: com.zaxxer.hikari.HikariDataSource
hikari:
auto-commit: true
@@ -54,29 +54,6 @@ spring:
jackson:
default-property-inclusion: non-null
- jpa:
- show-sql: true
- properties:
- eclipselink:
- ddl-generation: create-or-extend-tables
- weaving: false
- persistence-context:
- persist-on-commit: false
- cache:
- shared:
- default: false
- logging:
- connection: false
- logger: org.eclipse.persistence.logging.slf4j.SLF4JLogger
- parameters: true
- session: false
- thread: false
- timestamp: false
- level:
- connection: FINE
- sql: FINEST
- jpa: FINER
-
messages:
basename: i18n/messages
@@ -90,4 +67,15 @@ springdoc:
monitoring:
prometheus-host: "http://localhost:9090"
- agent-host-job-name: "bm-agent-host"
\ No newline at end of file
+ agent-host-job-name: "bm-agent-host"
+
+mybatis:
+ mapper-locations: classpath*:mapper/**/*Mapper.xml
+ configuration:
+ map-underscore-to-camel-case: true
+ database-id: mysql
+
+pagehelper:
+ reasonable: false
+ supportMethodsArguments: true
+ params: count=countSql
\ No newline at end of file
From ab72db991cb218e235386a8b604905e6d026b029 Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Fri, 23 Aug 2024 00:35:29 +0800
Subject: [PATCH 02/17] update
---
.../manager/dao/mapper/AuditLogMapper.java | 6 ++
.../bigtop/manager/dao/mapper/BaseMapper.java | 22 ++++-
.../manager/dao/mapper/ComponentMapper.java | 16 ++++
.../dao/mapper/HostComponentMapper.java | 28 ++++++
.../bigtop/manager/dao/mapper/HostMapper.java | 16 ++++
.../dao/mapper/ServiceConfigMapper.java | 8 ++
.../manager/dao/mapper/ServiceMapper.java | 14 +++
.../manager/dao/mapper/SettingMapper.java | 8 ++
.../manager/dao/mapper/TypeConfigMapper.java | 8 ++
.../bigtop/manager/dao/mapper/UserMapper.java | 2 +
.../bigtop/manager/dao/po/ClusterPO.java | 7 --
.../bigtop/manager/dao/po/ComponentPO.java | 15 ++--
.../manager/dao/po/HostComponentPO.java | 15 ++--
.../apache/bigtop/manager/dao/po/HostPO.java | 10 +--
.../apache/bigtop/manager/dao/po/JobPO.java | 8 --
.../apache/bigtop/manager/dao/po/RepoPO.java | 16 ++--
.../manager/dao/po/ServiceConfigPO.java | 20 ++---
.../bigtop/manager/dao/po/ServicePO.java | 15 ++--
.../apache/bigtop/manager/dao/po/StagePO.java | 12 ---
.../apache/bigtop/manager/dao/po/TaskPO.java | 15 ----
.../bigtop/manager/dao/po/TypeConfigPO.java | 10 +--
.../dao/repository/AuditLogRepository.java | 25 ------
.../dao/repository/ClusterRepository.java | 30 -------
.../dao/repository/ComponentRepository.java | 36 --------
.../dao/repository/UserRepository.java | 28 ------
.../manager/dao/sql/BaseSqlProvider.java | 18 +++-
.../bigtop/manager/dao/sql/SQLBuilder.java | 27 +++++-
.../mapper/mysql/ComponentMapper.xml | 89 +++++++++++++++++++
.../main/resources/mapper/mysql/JobMapper.xml | 19 ++--
.../resources/mapper/mysql/RepoMapper.xml | 19 ++--
.../resources/mapper/mysql/StackMapper.xml | 11 +--
.../resources/mapper/mysql/UserMapper.xml | 43 +++++++++
.../manager/server/aop/AuditAspect.java | 6 +-
.../server/command/job/AbstractJob.java | 12 ++-
.../command/job/AbstractServiceJob.java | 32 ++++---
.../command/stage/AbstractComponentStage.java | 8 +-
.../server/command/stage/HostCheckStage.java | 8 +-
.../command/task/AbstractComponentTask.java | 6 +-
.../command/task/CacheFileUpdateTask.java | 16 ++--
.../validator/ClusterCreateValidator.java | 6 +-
.../validator/RequiredServicesValidator.java | 6 +-
.../service/impl/ClusterServiceImpl.java | 2 +-
.../service/impl/CommandServiceImpl.java | 6 +-
.../service/impl/ComponentServiceImpl.java | 10 +--
.../service/impl/ConfigServiceImpl.java | 10 +--
.../impl/HostComponentServiceImpl.java | 8 --
.../server/service/impl/HostServiceImpl.java | 6 +-
.../server/service/impl/JobServiceImpl.java | 4 +-
.../server/service/impl/LoginServiceImpl.java | 6 +-
.../server/service/impl/UserServiceImpl.java | 4 +-
.../manager/server/aop/AuditAspectTest.java | 10 +--
51 files changed, 432 insertions(+), 350 deletions(-)
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/AuditLogMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceConfigMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/SettingMapper.java
create mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TypeConfigMapper.java
delete mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/AuditLogRepository.java
delete mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ClusterRepository.java
delete mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ComponentRepository.java
delete mode 100644 bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/UserRepository.java
create mode 100644 bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml
create mode 100644 bigtop-manager-dao/src/main/resources/mapper/mysql/UserMapper.xml
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/AuditLogMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/AuditLogMapper.java
new file mode 100644
index 000000000..4418a8c01
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/AuditLogMapper.java
@@ -0,0 +1,6 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.AuditLogPO;
+
+public interface AuditLogMapper extends BaseMapper {
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java
index 67aed6007..4c0000210 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java
@@ -5,6 +5,7 @@
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.UpdateProvider;
+import java.util.Collection;
import java.util.List;
import java.util.Optional;
@@ -13,7 +14,7 @@ public interface BaseMapper {
/**
* Insert the entity.
*/
- @InsertProvider(type = BaseSqlProvider.class, method = "save")
+ @InsertProvider(type = BaseSqlProvider.class, method = "insert")
int save(Entity entity);
/**
@@ -25,13 +26,26 @@ public interface BaseMapper {
/**
* Query the entity by primary key.
*/
- @SelectProvider(type = BaseSqlProvider.class, method = "findById")
- Optional findById(Long id);
+ @SelectProvider(type = BaseSqlProvider.class, method = "selectById")
+ Entity findById(Long id);
+
+ /**
+ * Query the entity by primary key.
+ */
+ default Optional findOptionalById(Long id) {
+ return Optional.ofNullable(findById(id));
+ }
+
+ /**
+ * Query the entity by primary key.
+ */
+ @SelectProvider(type = BaseSqlProvider.class, method = "selectByIds")
+ List findByIds(Collection ids);
/**
* Query all entities.
*/
- @SelectProvider(type = BaseSqlProvider.class, method = "findAll")
+ @SelectProvider(type = BaseSqlProvider.class, method = "selectAll")
List findAll();
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java
new file mode 100644
index 000000000..cfc1d73ed
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java
@@ -0,0 +1,16 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.ComponentPO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface ComponentMapper extends BaseMapper {
+
+ ComponentPO findByClusterIdAndComponentName(@Param("clusterId") Long clusterId, @Param("componentName") String componentName);
+
+ List findAllByClusterId(@Param("clusterId") Long clusterId);
+
+ List findAllByClusterIdAndServiceServiceNameIn(@Param("clusterId") Long clusterId, @Param("serviceNames") List serviceNames);
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
new file mode 100644
index 000000000..4c503cd22
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
@@ -0,0 +1,28 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.HostComponentPO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface HostComponentMapper extends BaseMapper {
+
+ List findAllByClusterIdAndComponentName(
+ @Param("clusterId") Long clusterId, @Param("componentName") String componentName);
+
+ HostComponentPO findByComponentPOClusterPOIdAndComponentPOComponentNameAndHostPOHostname(
+ Long clusterId, String componentName, String hostnames);
+
+ List findAllByComponentPOClusterPOIdAndComponentPOComponentNameAndHostPOHostnameIn(
+ Long clusterId, String componentName, List hostnames);
+
+ List findAllByComponentPOClusterPOId(Long clusterId);
+
+ HostComponentPO findByComponentPOComponentNameAndHostPOHostname(String componentName, String hostName);
+
+ List findAllByComponentPOClusterPOIdAndHostPOId(Long clusterId, Long componentId);
+
+ List findAllByComponentPOClusterPOIdAndComponentPOServicePOId(Long clusterId, Long serviceId);
+
+ List findAllByComponentPOServicePOId(Long serviceId);
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
index c9629bc7e..c750366c9 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
@@ -1,7 +1,23 @@
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.HostPO;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+
+import java.util.Collection;
+import java.util.List;
public interface HostMapper extends BaseMapper {
+ HostPO findByHostname(String hostname);
+
+ List findAllByHostnameIn(Collection hostnames);
+
+ List findAllByClusterPOIdAndHostnameIn(Long clusterId, Collection hostnames);
+
+ List findAllByClusterPOId(Long clusterId);
+
+ Page findAllByClusterPOId(Long clusterId, Pageable pageable);
+
+ List findAllByClusterPOClusterName(String clusterName);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceConfigMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceConfigMapper.java
new file mode 100644
index 000000000..e371cdb13
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceConfigMapper.java
@@ -0,0 +1,8 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.ServiceConfigPO;
+
+public interface ServiceConfigMapper extends BaseMapper {
+
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java
new file mode 100644
index 000000000..8eaa13708
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java
@@ -0,0 +1,14 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.ServicePO;
+
+import java.util.List;
+
+public interface ServiceMapper extends BaseMapper {
+
+ List findAllByClusterPOId(Long clusterId);
+
+ ServicePO findByClusterPOIdAndServiceName(Long clusterId, String serviceName);
+
+ List findByClusterPOIdAndServiceNameIn(Long clusterId, List serviceNames);
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/SettingMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/SettingMapper.java
new file mode 100644
index 000000000..bdc07065c
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/SettingMapper.java
@@ -0,0 +1,8 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.SettingPO;
+
+public interface SettingMapper extends BaseMapper {
+
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TypeConfigMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TypeConfigMapper.java
new file mode 100644
index 000000000..1009412cf
--- /dev/null
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TypeConfigMapper.java
@@ -0,0 +1,8 @@
+package org.apache.bigtop.manager.dao.mapper;
+
+import org.apache.bigtop.manager.dao.po.TypeConfigPO;
+
+public interface TypeConfigMapper extends BaseMapper {
+
+
+}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/UserMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/UserMapper.java
index f88c655b3..1be4ba662 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/UserMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/UserMapper.java
@@ -1,7 +1,9 @@
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.UserPO;
+import org.apache.ibatis.annotations.Param;
public interface UserMapper extends BaseMapper {
+ UserPO findByUsername(@Param("username") String username);
}
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 59be04c90..a36e70cf3 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
@@ -24,15 +24,11 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import jakarta.persistence.UniqueConstraint;
@@ -87,7 +83,4 @@ public class ClusterPO extends BasePO {
@Column(name = "stack_id")
private Long stackId;
- @ManyToOne
- @JoinColumn(name = "stack_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private StackPO stackPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
index d5e530a80..326668b7f 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
@@ -23,17 +23,13 @@
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import jakarta.persistence.UniqueConstraint;
@@ -84,11 +80,10 @@ public class ComponentPO extends BasePO {
@Column(name = "quick_link")
private String quickLink;
- @ManyToOne
- @JoinColumn(name = "service_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ServicePO servicePO;
+ @Column(name = "service_id")
+ private Long serviceId;
+
+ @Column(name = "cluster_id")
+ private Long clusterId;
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
index 74fe6afee..153dd96f6 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
@@ -24,15 +24,11 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
@@ -60,11 +56,10 @@ public class HostComponentPO extends BasePO {
@Column(name = "state")
private MaintainState state;
- @ManyToOne
- @JoinColumn(name = "host_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private HostPO hostPO;
+ @Column(name = "host_id")
+ private Long hostId;
+
+ @Column(name = "component_id")
+ private Long componentId;
- @ManyToOne
- @JoinColumn(name = "component_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ComponentPO componentPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
index 36df7fe9f..d5b6d0418 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
@@ -24,15 +24,11 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import jakarta.persistence.UniqueConstraint;
@@ -89,7 +85,7 @@ public class HostPO extends BasePO {
@Column(name = "state")
private MaintainState state;
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
+ @Column(name = "cluster_id")
+ private Long clusterId;
+
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
index 17a82f0b7..2c7a9f958 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
@@ -26,17 +26,13 @@
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
@@ -71,10 +67,6 @@ public class JobPO extends BasePO {
@Column(name = "cluster_id")
private Long clusterId;
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
-
@ToString.Exclude
@OneToMany(mappedBy = "jobPO")
private List stagePOList;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java
index d0a922a4c..bd1f23281 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java
@@ -22,15 +22,11 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import jakarta.persistence.UniqueConstraint;
@@ -41,9 +37,9 @@
@Table(
name = "repo",
uniqueConstraints = {
- @UniqueConstraint(
- name = "uk_repo_id",
- columnNames = {"repo_id", "os", "arch", "cluster_id"})
+ @UniqueConstraint(
+ name = "uk_repo_id",
+ columnNames = {"repo_id", "os", "arch", "cluster_id"})
},
indexes = {@Index(name = "idx_repo_cluster_id", columnList = "cluster_id")})
@TableGenerator(name = "repo_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
@@ -72,7 +68,7 @@ public class RepoPO extends BasePO {
@Column(name = "repo_type")
private String repoType;
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
+ @Column(name = "cluster_id")
+ private Long clusterId;
+
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
index fe8856d6d..1ee8fd6d9 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
@@ -23,18 +23,15 @@
import lombok.ToString;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+
import java.util.List;
@Data
@@ -43,8 +40,8 @@
@Table(
name = "service_config",
indexes = {
- @Index(name = "idx_sc_cluster_id", columnList = "cluster_id"),
- @Index(name = "idx_sc_service_id", columnList = "service_id")
+ @Index(name = "idx_sc_cluster_id", columnList = "cluster_id"),
+ @Index(name = "idx_sc_service_id", columnList = "service_id")
})
@TableGenerator(
name = "service_config_generator",
@@ -71,11 +68,10 @@ public class ServiceConfigPO extends BasePO {
@OneToMany(mappedBy = "serviceConfigPO")
private List configs;
- @ManyToOne
- @JoinColumn(name = "service_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ServicePO servicePO;
+ @Column(name = "service_id")
+ private Long serviceId;
+
+ @Column(name = "cluster_id")
+ private Long clusterId;
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
}
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 51a7369b8..55604b7b7 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
@@ -22,15 +22,11 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import jakarta.persistence.UniqueConstraint;
@@ -41,9 +37,9 @@
@Table(
name = "service",
uniqueConstraints = {
- @UniqueConstraint(
- name = "uk_service_name",
- columnNames = {"service_name", "cluster_id"})
+ @UniqueConstraint(
+ name = "uk_service_name",
+ columnNames = {"service_name", "cluster_id"})
},
indexes = {@Index(name = "idx_service_cluster_id", columnList = "cluster_id")})
@TableGenerator(
@@ -79,7 +75,6 @@ public class ServicePO extends BasePO {
@Column(name = "required_services")
private String requiredServices;
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
+ @Column(name = "cluster_id")
+ private Long clusterId;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
index 270beab75..53d4a97fd 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
@@ -26,17 +26,13 @@
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
@@ -86,14 +82,6 @@ public class StagePO extends BasePO {
@Column(name = "cluster_id")
private Long clusterId;
- @ManyToOne
- @JoinColumn(name = "job_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private JobPO jobPO;
-
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
-
@ToString.Exclude
@OneToMany(mappedBy = "stagePO")
private List taskPOList;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
index 7921e02da..87db0bd97 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
@@ -26,17 +26,13 @@
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
@@ -107,15 +103,4 @@ public class TaskPO extends BasePO {
@Column(name = "cluster_id")
private Long clusterId;
- @ManyToOne
- @JoinColumn(name = "job_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private JobPO jobPO;
-
- @ManyToOne
- @JoinColumn(name = "stage_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private StagePO stagePO;
-
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java
index 919060cbd..dd4df2d87 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java
@@ -23,16 +23,12 @@
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
@@ -60,7 +56,7 @@ public class TypeConfigPO extends BasePO {
@Column(name = "properties_json", length = 16777216)
private String propertiesJson;
- @ManyToOne
- @JoinColumn(name = "service_config_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ServiceConfigPO serviceConfigPO;
+ @Column(name = "service_config_id")
+ private Long serviceConfigId;
+
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/AuditLogRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/AuditLogRepository.java
deleted file mode 100644
index 7564a4e75..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/AuditLogRepository.java
+++ /dev/null
@@ -1,25 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.AuditLogPO;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-
-public interface AuditLogRepository extends JpaRepository {}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ClusterRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ClusterRepository.java
deleted file mode 100644
index fceb8bff2..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ClusterRepository.java
+++ /dev/null
@@ -1,30 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.ClusterPO;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.util.Optional;
-
-public interface ClusterRepository extends JpaRepository {
-
- Optional findByClusterName(String clusterName);
-}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ComponentRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ComponentRepository.java
deleted file mode 100644
index 074f5b6b9..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ComponentRepository.java
+++ /dev/null
@@ -1,36 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.ComponentPO;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.util.List;
-
-public interface ComponentRepository extends JpaRepository {
-
- ComponentPO findByClusterPOIdAndComponentName(Long clusterId, String componentName);
-
- List findAllByClusterPOIdAndComponentNameIn(Long clusterId, List componentNames);
-
- List findAllByClusterPOId(Long clusterId);
-
- List findAllByClusterPOIdAndServicePOServiceNameIn(Long clusterId, List serviceNames);
-}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/UserRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/UserRepository.java
deleted file mode 100644
index ee55af280..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/UserRepository.java
+++ /dev/null
@@ -1,28 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.UserPO;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-
-public interface UserRepository extends JpaRepository {
-
- UserPO findByUsername(String username);
-}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
index 858ed232c..1c6e01598 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
@@ -7,11 +7,12 @@
import org.springframework.util.Assert;
import java.lang.reflect.Type;
+import java.util.Collection;
@Slf4j
public class BaseSqlProvider {
- public String save(Entity entity, ProviderContext context) {
+ public String insert(Entity entity, ProviderContext context) {
Assert.notNull(entity, "entity must not null");
String databaseId = context.getDatabaseId();
@@ -33,16 +34,25 @@ public String updateById(Entity entity, ProviderContext context) {
return SQLBuilder.update(mataData, entity, databaseId);
}
- public String findById(ProviderContext context) {
+ public String selectById(Long id, ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
TableMataData mataData = TableMataData.forClass(entityClass);
- return SQLBuilder.selectById(mataData, databaseId);
+ return SQLBuilder.selectById(mataData, databaseId, id);
}
- public String findAll(ProviderContext context) {
+ public String selectByIds(Collection ids, ProviderContext context) {
+ String databaseId = context.getDatabaseId();
+
+ Class> entityClass = getEntityClass(context);
+ TableMataData mataData = TableMataData.forClass(entityClass);
+
+ return SQLBuilder.selectByIds(mataData, databaseId, ids);
+ }
+
+ public String selectAll(ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
index 8da6248e1..a5b8c9331 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
@@ -1,14 +1,17 @@
package org.apache.bigtop.manager.dao.sql;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.jdbc.SQL;
import org.springframework.beans.BeanUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.ReflectionUtils;
import java.beans.PropertyDescriptor;
+import java.util.Collection;
import java.util.Map;
import java.util.Objects;
+import java.util.stream.Collectors;
/**
* Multiple data source support
@@ -82,14 +85,33 @@ public static String update(TableMataData mataData, Entity entity, Stri
return sql.toString();
}
- public static String selectById(TableMataData mataData, String databaseId) {
+ public static String selectById(TableMataData mataData, String databaseId, Long id) {
SQL sql = new SQL();
switch (databaseId) {
case "mysql": {
sql.SELECT(mataData.getBaseColumns());
sql.FROM(mataData.getTableName());
- sql.WHERE(getEquals(mataData.getPkColumn(), mataData.getPkProperty()));
+ sql.WHERE(mataData.getPkColumn() + " = '" + id + "'");
+ break;
+ }
+ default: {
+ log.error("Unsupported data source");
+ }
+ }
+
+ return sql.toString();
+ }
+
+ public static String selectByIds(TableMataData mataData, String databaseId, Collection ids) {
+
+ SQL sql = new SQL();
+ switch (databaseId) {
+ case "mysql": {
+ String idsStr = ids.stream().map(String::valueOf).collect(Collectors.joining("', '"));
+ sql.SELECT(mataData.getBaseColumns());
+ sql.FROM(mataData.getTableName());
+ sql.WHERE(mataData.getPkColumn() + " in ('" + idsStr + "')");
break;
}
default: {
@@ -124,4 +146,5 @@ private static String getEquals(String column, String property) {
private static String getTokenParam(String property) {
return "#{" + property + "}";
}
+
}
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml
new file mode 100644
index 000000000..8764c65be
--- /dev/null
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+ id, component_name, display_name, command_script, custom_commands, category, quick_link, service_id, cluster_id
+
+
+ ${alias}.id, ${alias}.component_name, ${alias}.command_script, ${alias}.custom_commands, ${alias}.category, ${alias}.quick_link, ${alias}.service_id, ${alias}.cluster_id
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
index edeb00cf9..469ce41b7 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
@@ -26,23 +26,18 @@
id, state, name, context, cluster_id
-
- ${alias}.id, ${alias}.state, ${alias}.name, ${alias}.context, ${alias}.cluster_id
-
-
- org.eclipse.persistence
- org.eclipse.persistence.jpa
- ${eclipse-link.version}
-
-
-
- org.eclipse.persistence
- org.eclipse.persistence.extension
- ${eclipse-link.version}
-
-
org.springframework.boot
spring-boot-starter-actuator
diff --git a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/MaintainState.java b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/MaintainState.java
index 81617b76d..6c9df3112 100644
--- a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/MaintainState.java
+++ b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/MaintainState.java
@@ -22,20 +22,25 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.AllArgsConstructor;
import lombok.Getter;
+@AllArgsConstructor
@Getter
public enum MaintainState {
- UNINSTALLED,
+ UNINSTALLED("uninstalled", "Uninstalled"),
- INSTALLED,
+ INSTALLED("installed", "Installed"),
- MAINTAINED,
+ MAINTAINED("maintained", "Maintained"),
- STARTED,
+ STARTED("started", "Started"),
- STOPPED,
- ;
+ STOPPED("stopped", "Stopped");
+
+ private final String code;
+
+ private final String name;
@JsonCreator
public static MaintainState fromString(String value) {
diff --git a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/ClassUtils.java b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/ClassUtils.java
index d92cf548f..8c43ea563 100644
--- a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/ClassUtils.java
+++ b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/ClassUtils.java
@@ -37,5 +37,4 @@ public static List getFields(Class> loadClass) {
}
return fieldList;
}
-
}
diff --git a/bigtop-manager-dao/pom.xml b/bigtop-manager-dao/pom.xml
index 96eae894f..6fed3ad75 100644
--- a/bigtop-manager-dao/pom.xml
+++ b/bigtop-manager-dao/pom.xml
@@ -48,11 +48,6 @@
bigtop-manager-common
-
- org.springframework.boot
- spring-boot-starter-data-jpa
-
-
org.mybatis.spring.boot
mybatis-spring-boot-starter
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/AuditLogMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/AuditLogMapper.java
index 4418a8c01..9fdd4378a 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/AuditLogMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/AuditLogMapper.java
@@ -1,6 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.AuditLogPO;
-public interface AuditLogMapper extends BaseMapper {
-}
+public interface AuditLogMapper extends BaseMapper {}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java
index 4c0000210..4c378e99e 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java
@@ -1,10 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.sql.BaseSqlProvider;
+
+import org.apache.ibatis.annotations.DeleteProvider;
import org.apache.ibatis.annotations.InsertProvider;
+import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.UpdateProvider;
+import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
@@ -14,6 +37,7 @@ public interface BaseMapper {
/**
* Insert the entity.
*/
+ @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
@InsertProvider(type = BaseSqlProvider.class, method = "insert")
int save(Entity entity);
@@ -27,12 +51,12 @@ public interface BaseMapper {
* Query the entity by primary key.
*/
@SelectProvider(type = BaseSqlProvider.class, method = "selectById")
- Entity findById(Long id);
+ Entity findById(Serializable id);
/**
* Query the entity by primary key.
*/
- default Optional findOptionalById(Long id) {
+ default Optional findOptionalById(Serializable id) {
return Optional.ofNullable(findById(id));
}
@@ -40,7 +64,7 @@ default Optional findOptionalById(Long id) {
* Query the entity by primary key.
*/
@SelectProvider(type = BaseSqlProvider.class, method = "selectByIds")
- List findByIds(Collection ids);
+ List findByIds(Collection extends Serializable> ids);
/**
* Query all entities.
@@ -48,5 +72,9 @@ default Optional findOptionalById(Long id) {
@SelectProvider(type = BaseSqlProvider.class, method = "selectAll")
List findAll();
+ @DeleteProvider(type = BaseSqlProvider.class, method = "deleteById")
+ boolean deleteById(Serializable id);
+ @DeleteProvider(type = BaseSqlProvider.class, method = "deleteByIds")
+ boolean deleteByIds(Collection extends Serializable> ids);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ClusterMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ClusterMapper.java
index e597998d6..78b4547f8 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ClusterMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ClusterMapper.java
@@ -1,8 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.ClusterPO;
+
import org.apache.ibatis.annotations.Param;
+import java.util.List;
import java.util.Optional;
public interface ClusterMapper extends BaseMapper {
@@ -11,4 +32,7 @@ public interface ClusterMapper extends BaseMapper {
Integer count();
+ ClusterPO findByIdJoin(@Param("clusterId") Long clusterId);
+
+ List findAllByJoin();
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java
index cfc1d73ed..65f94003f 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java
@@ -1,16 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.ComponentPO;
+
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface ComponentMapper extends BaseMapper {
- ComponentPO findByClusterIdAndComponentName(@Param("clusterId") Long clusterId, @Param("componentName") String componentName);
+ ComponentPO findByClusterIdAndComponentName(
+ @Param("clusterId") Long clusterId, @Param("componentName") String componentName);
List findAllByClusterId(@Param("clusterId") Long clusterId);
- List findAllByClusterIdAndServiceServiceNameIn(@Param("clusterId") Long clusterId, @Param("serviceNames") List serviceNames);
+ List findAllJoinService();
+ List findAllByClusterIdAndServiceServiceNameIn(
+ @Param("clusterId") Long clusterId, @Param("serviceNames") List serviceNames);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
index 4c503cd22..bb20b28c3 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
@@ -1,28 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.HostComponentPO;
+
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface HostComponentMapper extends BaseMapper {
+ List findAllJoin();
+
List findAllByClusterIdAndComponentName(
@Param("clusterId") Long clusterId, @Param("componentName") String componentName);
- HostComponentPO findByComponentPOClusterPOIdAndComponentPOComponentNameAndHostPOHostname(
- Long clusterId, String componentName, String hostnames);
+ HostComponentPO findByClusterIdAndComponentNameAndHostname(
+ @Param("clusterId") Long clusterId,
+ @Param("componentName") String componentName,
+ @Param("hostname") String hostname);
- List findAllByComponentPOClusterPOIdAndComponentPOComponentNameAndHostPOHostnameIn(
- Long clusterId, String componentName, List hostnames);
+ List findAllByClusterIdAndComponentNameAndHostnameIn(
+ @Param("clusterId") Long clusterId,
+ @Param("componentName") String componentName,
+ @Param("hostnames") List hostnames);
- List findAllByComponentPOClusterPOId(Long clusterId);
+ List findAllByClusterId(@Param("clusterId") Long clusterId);
HostComponentPO findByComponentPOComponentNameAndHostPOHostname(String componentName, String hostName);
- List findAllByComponentPOClusterPOIdAndHostPOId(Long clusterId, Long componentId);
+ List findAllByClusterIdAndHostId(@Param("clusterId") Long clusterId, @Param("hostId") Long hostId);
- List findAllByComponentPOClusterPOIdAndComponentPOServicePOId(Long clusterId, Long serviceId);
+ List findAllByClusterIdAndServiceId(
+ @Param("clusterId") Long clusterId, @Param("serviceId") Long serviceId);
List findAllByComponentPOServicePOId(Long serviceId);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
index c750366c9..3fb269425 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
@@ -1,23 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.HostPO;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
+
+import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.List;
public interface HostMapper extends BaseMapper {
- HostPO findByHostname(String hostname);
-
- List findAllByHostnameIn(Collection hostnames);
-
- List findAllByClusterPOIdAndHostnameIn(Long clusterId, Collection hostnames);
+ int saveAll(@Param("hosts") List hosts);
- List findAllByClusterPOId(Long clusterId);
+ HostPO findByHostname(@Param("hostname") String hostname);
- Page findAllByClusterPOId(Long clusterId, Pageable pageable);
+ List findAllByHostnameIn(@Param("hostnames") Collection hostnames);
- List findAllByClusterPOClusterName(String clusterName);
+ List findAllByClusterId(@Param("clusterId") Long clusterId);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java
index 966534b48..97a849ad7 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java
@@ -1,6 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.JobPO;
+
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -10,5 +30,4 @@ public interface JobMapper extends BaseMapper {
List findAllByClusterId(@Param("clusterId") Long clusterId);
List findAllByClusterIsNull();
-
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/RepoMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/RepoMapper.java
index cc806013a..f06e55b70 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/RepoMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/RepoMapper.java
@@ -1,7 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
-import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.bigtop.manager.dao.po.RepoPO;
+
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -14,5 +33,4 @@ public interface RepoMapper extends BaseMapper {
int saveAll(@Param("clusters") List repos);
List findAllByClusterId(@Param("clusterId") Long clusterId);
-
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceConfigMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceConfigMapper.java
index e371cdb13..2b56b13bc 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceConfigMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceConfigMapper.java
@@ -1,8 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.ServiceConfigPO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
public interface ServiceConfigMapper extends BaseMapper {
+ List findAllByClusterId(@Param("clusterId") Long clusterId);
+
+ ServiceConfigPO findByClusterIdAndServiceIdAndSelectedIsTrue(
+ @Param("clusterId") Long clusterId, @Param("serviceId") Long serviceId);
+ List findAllByClusterIdAndSelectedIsTrue(@Param("clusterId") Long clusterId);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java
index 8eaa13708..afb462da7 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java
@@ -1,14 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.ServicePO;
+import org.apache.ibatis.annotations.Param;
+
import java.util.List;
public interface ServiceMapper extends BaseMapper {
- List findAllByClusterPOId(Long clusterId);
+ List findAllByClusterId(@Param("clusterId") Long clusterId);
- ServicePO findByClusterPOIdAndServiceName(Long clusterId, String serviceName);
+ ServicePO findByClusterIdAndServiceName(
+ @Param("clusterId") Long clusterId, @Param("serviceName") String serviceName);
- List findByClusterPOIdAndServiceNameIn(Long clusterId, List serviceNames);
+ List findByClusterIdAndServiceNameIn(
+ @Param("clusterId") Long clusterId, @Param("serviceNames") List serviceNames);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/SettingMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/SettingMapper.java
index bdc07065c..7706c8bc9 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/SettingMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/SettingMapper.java
@@ -1,8 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.SettingPO;
-public interface SettingMapper extends BaseMapper {
-
-
-}
+public interface SettingMapper extends BaseMapper {}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StackMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StackMapper.java
index 185f0cee9..fe377817f 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StackMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StackMapper.java
@@ -1,10 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.StackPO;
+
import org.apache.ibatis.annotations.Param;
public interface StackMapper extends BaseMapper {
- StackPO findByStackNameAndStackVersion(@Param("stackName") String stackName, @Param("stackVersion") String stackVersion);
-
+ StackPO findByStackNameAndStackVersion(
+ @Param("stackName") String stackName, @Param("stackVersion") String stackVersion);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StageMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StageMapper.java
index a6e4037d8..9cb3b39da 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StageMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StageMapper.java
@@ -1,8 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.StagePO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
public interface StageMapper extends BaseMapper {
+ List findByJobId(@Param("jobId") Long jobId);
+ void updateStateByIds(@Param("stages") List stages);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TaskMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TaskMapper.java
index bb85fcc5c..503c59e0b 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TaskMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TaskMapper.java
@@ -1,8 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.TaskPO;
-public interface TaskMapper extends BaseMapper {
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+public interface TaskMapper extends BaseMapper {
+ void updateStateByIds(@Param("tasks") List tasks);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TypeConfigMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TypeConfigMapper.java
index 1009412cf..a57b99852 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TypeConfigMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TypeConfigMapper.java
@@ -1,8 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.TypeConfigPO;
-public interface TypeConfigMapper extends BaseMapper {
-
-
-}
+public interface TypeConfigMapper extends BaseMapper {}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/UserMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/UserMapper.java
index 1be4ba662..5dda7045c 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/UserMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/UserMapper.java
@@ -1,6 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.mapper;
import org.apache.bigtop.manager.dao.po.UserPO;
+
import org.apache.ibatis.annotations.Param;
public interface UserMapper extends BaseMapper {
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/AuditLogPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/AuditLogPO.java
index 61366579f..8de0e32f9 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/AuditLogPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/AuditLogPO.java
@@ -31,6 +31,7 @@
import jakarta.persistence.Lob;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
@@ -41,7 +42,7 @@
table = "sequence",
pkColumnName = "seq_name",
valueColumnName = "seq_count")
-public class AuditLogPO extends BasePO {
+public class AuditLogPO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "audit_log_generator")
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/BasePO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/BasePO.java
index a1319b4c5..f3fc63070 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/BasePO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/BasePO.java
@@ -18,32 +18,23 @@
*/
package org.apache.bigtop.manager.dao.po;
-import jakarta.persistence.Column;
-import org.springframework.data.annotation.CreatedBy;
-import org.springframework.data.annotation.CreatedDate;
-import org.springframework.data.annotation.LastModifiedBy;
-import org.springframework.data.annotation.LastModifiedDate;
-
import lombok.Data;
+import jakarta.persistence.Column;
import java.sql.Timestamp;
@Data
public abstract class BasePO {
- @CreatedDate
@Column(name = "create_time", updatable = false)
private Timestamp createTime;
- @LastModifiedDate
@Column(name = "update_time")
private Timestamp updateTime;
- @CreatedBy
@Column(name = "create_by", updatable = false)
private Long createBy;
- @LastModifiedBy
@Column(name = "update_by")
private Long updateBy;
}
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 a36e70cf3..be13da630 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
@@ -18,8 +18,6 @@
*/
package org.apache.bigtop.manager.dao.po;
-import org.apache.bigtop.manager.common.enums.MaintainState;
-
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -31,13 +29,15 @@
import jakarta.persistence.Index;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+import jakarta.persistence.Transient;
import jakarta.persistence.UniqueConstraint;
+import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
@Entity
@Table(
- name = "\"cluster\"",
+ name = "cluster",
uniqueConstraints = {
@UniqueConstraint(
name = "uk_cluster_name",
@@ -49,7 +49,7 @@
table = "sequence",
pkColumnName = "seq_name",
valueColumnName = "seq_count")
-public class ClusterPO extends BasePO {
+public class ClusterPO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "cluster_generator")
@@ -62,7 +62,7 @@ public class ClusterPO extends BasePO {
@Column(name = "cluster_type")
private Integer clusterType;
- @Column(name = "\"root\"")
+ @Column(name = "root")
private String root;
@Column(name = "user_group")
@@ -75,7 +75,7 @@ public class ClusterPO extends BasePO {
private String repoTemplate;
@Column(name = "state")
- private MaintainState state;
+ private String state;
@Column(name = "selected")
private Boolean selected;
@@ -83,4 +83,11 @@ public class ClusterPO extends BasePO {
@Column(name = "stack_id")
private Long stackId;
+ @Transient
+ @Column(name = "stack_name")
+ private String stackName;
+
+ @Transient
+ @Column(name = "stack_version")
+ private String stackVersion;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
index 326668b7f..edfadf096 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
@@ -23,16 +23,22 @@
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
+import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
+import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
+import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+import jakarta.persistence.Transient;
import jakarta.persistence.UniqueConstraint;
+import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
@@ -53,7 +59,7 @@
table = "sequence",
pkColumnName = "seq_name",
valueColumnName = "seq_count")
-public class ComponentPO extends BasePO {
+public class ComponentPO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "component_generator")
@@ -86,4 +92,15 @@ public class ComponentPO extends BasePO {
@Column(name = "cluster_id")
private Long clusterId;
+ @Transient
+ @Column(name = "service_name")
+ private String serviceName;
+
+ @ManyToOne
+ @JoinColumn(name = "service_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private ServicePO servicePO;
+
+ @ManyToOne
+ @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private ClusterPO clusterPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
index 153dd96f6..898a2991f 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
@@ -18,19 +18,23 @@
*/
package org.apache.bigtop.manager.dao.po;
-import org.apache.bigtop.manager.common.enums.MaintainState;
-
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
+import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
+import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+import jakarta.persistence.Transient;
+import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
@@ -46,7 +50,7 @@
table = "sequence",
pkColumnName = "seq_name",
valueColumnName = "seq_count")
-public class HostComponentPO extends BasePO {
+public class HostComponentPO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "host_component_generator")
@@ -54,7 +58,7 @@ public class HostComponentPO extends BasePO {
private Long id;
@Column(name = "state")
- private MaintainState state;
+ private String state;
@Column(name = "host_id")
private Long hostId;
@@ -62,4 +66,47 @@ public class HostComponentPO extends BasePO {
@Column(name = "component_id")
private Long componentId;
+ @Transient
+ @Column(name = "stack_name")
+ private String stackName;
+
+ @Transient
+ @Column(name = "stack_version")
+ private String stackVersion;
+
+ @Transient
+ @Column(name = "service_id")
+ private Long serviceId;
+
+ @Transient
+ @Column(name = "service_name")
+ private String serviceName;
+
+ @Transient
+ @Column(name = "service_user")
+ private String serviceUser;
+
+ @Transient
+ @Column(name = "\"root\"")
+ private String root;
+
+ @Transient
+ @Column(name = "component_name")
+ private String componentName;
+
+ @Transient
+ @Column(name = "command_script")
+ private String commandScript;
+
+ @Transient
+ @Column(name = "hostname")
+ private String hostname;
+
+ @ManyToOne
+ @JoinColumn(name = "host_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private HostPO hostPO;
+
+ @ManyToOne
+ @JoinColumn(name = "component_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private ComponentPO componentPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
index d5b6d0418..c66c4bdd2 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
@@ -18,20 +18,23 @@
*/
package org.apache.bigtop.manager.dao.po;
-import org.apache.bigtop.manager.common.enums.MaintainState;
-
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
+import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
+import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import jakarta.persistence.UniqueConstraint;
+import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
@@ -45,7 +48,7 @@
},
indexes = {@Index(name = "idx_host_cluster_id", columnList = "cluster_id")})
@TableGenerator(name = "host_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
-public class HostPO extends BasePO {
+public class HostPO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "host_generator")
@@ -83,9 +86,12 @@ public class HostPO extends BasePO {
private Long totalDisk;
@Column(name = "state")
- private MaintainState state;
+ private String state;
@Column(name = "cluster_id")
private Long clusterId;
+ @ManyToOne
+ @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private ClusterPO clusterPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
index 2c7a9f958..98a02844e 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
@@ -26,17 +26,21 @@
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
+import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
+import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
+import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
-
+import java.io.Serializable;
import java.util.List;
@Data
@@ -46,7 +50,7 @@
name = "\"job\"",
indexes = {@Index(name = "idx_job_cluster_id", columnList = "cluster_id")})
@TableGenerator(name = "job_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
-public class JobPO extends BasePO {
+public class JobPO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "job_generator")
@@ -67,6 +71,10 @@ public class JobPO extends BasePO {
@Column(name = "cluster_id")
private Long clusterId;
+ @ManyToOne
+ @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private ClusterPO clusterPO;
+
@ToString.Exclude
@OneToMany(mappedBy = "jobPO")
private List stagePOList;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java
index bd1f23281..62b691d08 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java
@@ -22,14 +22,19 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
+import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
+import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import jakarta.persistence.UniqueConstraint;
+import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
@@ -37,13 +42,13 @@
@Table(
name = "repo",
uniqueConstraints = {
- @UniqueConstraint(
- name = "uk_repo_id",
- columnNames = {"repo_id", "os", "arch", "cluster_id"})
+ @UniqueConstraint(
+ name = "uk_repo_id",
+ columnNames = {"repo_id", "os", "arch", "cluster_id"})
},
indexes = {@Index(name = "idx_repo_cluster_id", columnList = "cluster_id")})
@TableGenerator(name = "repo_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
-public class RepoPO extends BasePO {
+public class RepoPO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "repo_generator")
@@ -71,4 +76,7 @@ public class RepoPO extends BasePO {
@Column(name = "cluster_id")
private Long clusterId;
+ @ManyToOne
+ @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private ClusterPO clusterPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
index 1ee8fd6d9..a5753bb81 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
@@ -23,15 +23,19 @@
import lombok.ToString;
import jakarta.persistence.Column;
+import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
+import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
-
+import java.io.Serializable;
import java.util.List;
@Data
@@ -40,15 +44,15 @@
@Table(
name = "service_config",
indexes = {
- @Index(name = "idx_sc_cluster_id", columnList = "cluster_id"),
- @Index(name = "idx_sc_service_id", columnList = "service_id")
+ @Index(name = "idx_sc_cluster_id", columnList = "cluster_id"),
+ @Index(name = "idx_sc_service_id", columnList = "service_id")
})
@TableGenerator(
name = "service_config_generator",
table = "sequence",
pkColumnName = "seq_name",
valueColumnName = "seq_count")
-public class ServiceConfigPO extends BasePO {
+public class ServiceConfigPO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "service_config_generator")
@@ -74,4 +78,11 @@ public class ServiceConfigPO extends BasePO {
@Column(name = "cluster_id")
private Long clusterId;
+ @ManyToOne
+ @JoinColumn(name = "service_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private ServicePO servicePO;
+
+ @ManyToOne
+ @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private ClusterPO clusterPO;
}
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 55604b7b7..982e40a2d 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
@@ -22,14 +22,19 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
+import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
+import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import jakarta.persistence.UniqueConstraint;
+import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
@@ -37,9 +42,9 @@
@Table(
name = "service",
uniqueConstraints = {
- @UniqueConstraint(
- name = "uk_service_name",
- columnNames = {"service_name", "cluster_id"})
+ @UniqueConstraint(
+ name = "uk_service_name",
+ columnNames = {"service_name", "cluster_id"})
},
indexes = {@Index(name = "idx_service_cluster_id", columnList = "cluster_id")})
@TableGenerator(
@@ -47,7 +52,7 @@
table = "sequence",
pkColumnName = "seq_name",
valueColumnName = "seq_count")
-public class ServicePO extends BasePO {
+public class ServicePO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "service_generator")
@@ -77,4 +82,8 @@ public class ServicePO extends BasePO {
@Column(name = "cluster_id")
private Long clusterId;
+
+ @ManyToOne
+ @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private ClusterPO clusterPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/SettingPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/SettingPO.java
index dac018172..6ff632e80 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/SettingPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/SettingPO.java
@@ -31,6 +31,7 @@
import jakarta.persistence.Lob;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
@@ -41,7 +42,7 @@
table = "sequence",
pkColumnName = "seq_name",
valueColumnName = "seq_count")
-public class SettingPO extends BasePO {
+public class SettingPO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "settings_generator")
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StackPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StackPO.java
index 0f8211ac7..f154a3966 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StackPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StackPO.java
@@ -29,6 +29,7 @@
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import jakarta.persistence.UniqueConstraint;
+import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
@@ -41,7 +42,7 @@
columnNames = {"stack_name", "stack_version"})
})
@TableGenerator(name = "stack_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
-public class StackPO extends BasePO {
+public class StackPO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "stack_generator")
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
index 53d4a97fd..8dca61ce8 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
@@ -26,17 +26,21 @@
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
+import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
+import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
+import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
-
+import java.io.Serializable;
import java.util.List;
@Data
@@ -45,11 +49,11 @@
@Table(
name = "stage",
indexes = {
- @Index(name = "idx_stage_cluster_id", columnList = "cluster_id"),
- @Index(name = "idx_stage_job_id", columnList = "job_id")
+ @Index(name = "idx_stage_cluster_id", columnList = "cluster_id"),
+ @Index(name = "idx_stage_job_id", columnList = "job_id")
})
@TableGenerator(name = "stage_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
-public class StagePO extends BasePO {
+public class StagePO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "stage_generator")
@@ -85,4 +89,12 @@ public class StagePO extends BasePO {
@ToString.Exclude
@OneToMany(mappedBy = "stagePO")
private List taskPOList;
+
+ @ManyToOne
+ @JoinColumn(name = "job_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private JobPO jobPO;
+
+ @ManyToOne
+ @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private ClusterPO clusterPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
index 87db0bd97..d03045b6b 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
@@ -26,15 +26,20 @@
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
+import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
+import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
+import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
@@ -42,12 +47,12 @@
@Table(
name = "\"task\"",
indexes = {
- @Index(name = "idx_task_cluster_id", columnList = "cluster_id"),
- @Index(name = "idx_task_job_id", columnList = "job_id"),
- @Index(name = "idx_task_stage_id", columnList = "stage_id")
+ @Index(name = "idx_task_cluster_id", columnList = "cluster_id"),
+ @Index(name = "idx_task_job_id", columnList = "job_id"),
+ @Index(name = "idx_task_stage_id", columnList = "stage_id")
})
@TableGenerator(name = "task_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
-public class TaskPO extends BasePO {
+public class TaskPO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "task_generator")
@@ -103,4 +108,15 @@ public class TaskPO extends BasePO {
@Column(name = "cluster_id")
private Long clusterId;
+ @ManyToOne
+ @JoinColumn(name = "job_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private JobPO jobPO;
+
+ @ManyToOne
+ @JoinColumn(name = "stage_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private StagePO stagePO;
+
+ @ManyToOne
+ @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private ClusterPO clusterPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java
index dd4df2d87..71bd8d1b8 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java
@@ -23,14 +23,19 @@
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
+import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
+import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
+import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
@@ -41,7 +46,7 @@
table = "sequence",
pkColumnName = "seq_name",
valueColumnName = "seq_count")
-public class TypeConfigPO extends BasePO {
+public class TypeConfigPO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "type_config_generator")
@@ -59,4 +64,7 @@ public class TypeConfigPO extends BasePO {
@Column(name = "service_config_id")
private Long serviceConfigId;
+ @ManyToOne
+ @JoinColumn(name = "service_config_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
+ private ServiceConfigPO serviceConfigPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/UserPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/UserPO.java
index d5684280c..8bd167dd8 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/UserPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/UserPO.java
@@ -28,13 +28,14 @@
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
@Entity
@Table(name = "\"user\"")
@TableGenerator(name = "user_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
-public class UserPO extends BasePO {
+public class UserPO extends BasePO implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.TABLE, generator = "user_generator")
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/HostComponentRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/HostComponentRepository.java
deleted file mode 100644
index 4b677252c..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/HostComponentRepository.java
+++ /dev/null
@@ -1,47 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.HostComponentPO;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.util.List;
-
-public interface HostComponentRepository extends JpaRepository {
-
- List findAllByComponentPOClusterPOIdAndComponentPOComponentName(
- Long clusterId, String componentName);
-
- HostComponentPO findByComponentPOClusterPOIdAndComponentPOComponentNameAndHostPOHostname(
- Long clusterId, String componentName, String hostnames);
-
- List findAllByComponentPOClusterPOIdAndComponentPOComponentNameAndHostPOHostnameIn(
- Long clusterId, String componentName, List hostnames);
-
- List findAllByComponentPOClusterPOId(Long clusterId);
-
- HostComponentPO findByComponentPOComponentNameAndHostPOHostname(String componentName, String hostName);
-
- List findAllByComponentPOClusterPOIdAndHostPOId(Long clusterId, Long componentId);
-
- List findAllByComponentPOClusterPOIdAndComponentPOServicePOId(Long clusterId, Long serviceId);
-
- List findAllByComponentPOServicePOId(Long serviceId);
-}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/HostRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/HostRepository.java
deleted file mode 100644
index 49db05eb1..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/HostRepository.java
+++ /dev/null
@@ -1,43 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.HostPO;
-
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.util.Collection;
-import java.util.List;
-
-public interface HostRepository extends JpaRepository {
-
- HostPO findByHostname(String hostname);
-
- List findAllByHostnameIn(Collection hostnames);
-
- List findAllByClusterPOIdAndHostnameIn(Long clusterId, Collection hostnames);
-
- List findAllByClusterPOId(Long clusterId);
-
- Page findAllByClusterPOId(Long clusterId, Pageable pageable);
-
- List findAllByClusterPOClusterName(String clusterName);
-}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/JobRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/JobRepository.java
deleted file mode 100644
index 7aafcf3cd..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/JobRepository.java
+++ /dev/null
@@ -1,36 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.JobPO;
-
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.util.List;
-
-public interface JobRepository extends JpaRepository {
-
- Page findAllByClusterPOIsNull(Pageable pageable);
-
- Page findAllByClusterPOId(Long clusterId, Pageable pageable);
-
- List findAllByClusterPOId(Long clusterId);
-}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/RepoRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/RepoRepository.java
deleted file mode 100644
index 39d629f5b..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/RepoRepository.java
+++ /dev/null
@@ -1,31 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.ClusterPO;
-import org.apache.bigtop.manager.dao.po.RepoPO;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.util.List;
-
-public interface RepoRepository extends JpaRepository {
-
- List findAllByClusterPO(ClusterPO clusterPO);
-}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceConfigRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceConfigRepository.java
deleted file mode 100644
index 12ff2e4d4..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceConfigRepository.java
+++ /dev/null
@@ -1,49 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.ClusterPO;
-import org.apache.bigtop.manager.dao.po.ServiceConfigPO;
-import org.apache.bigtop.manager.dao.po.ServicePO;
-
-import org.springframework.data.domain.Sort;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Modifying;
-import org.springframework.data.jpa.repository.Query;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-
-public interface ServiceConfigRepository extends JpaRepository {
-
- List findAllByClusterPO(ClusterPO clusterPO);
-
- List findAllByClusterPO(ClusterPO clusterPO, Sort sort);
-
- List findAllByClusterPOAndServicePO(ClusterPO clusterPO, ServicePO servicePO);
-
- ServiceConfigPO findByClusterPOAndServicePOAndSelectedIsTrue(ClusterPO clusterPO, ServicePO servicePO);
-
- List findAllByClusterPOAndSelectedIsTrue(ClusterPO clusterPO);
-
- @Transactional
- @Modifying
- @Query("UPDATE ServiceConfigPO s SET s.selected = false WHERE s.clusterPO = :cluster AND s.servicePO = :service")
- void setAllSelectedToFalseByClusterAndService(ClusterPO clusterPO, ServicePO servicePO);
-}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceRepository.java
deleted file mode 100644
index f84df78c7..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceRepository.java
+++ /dev/null
@@ -1,38 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.ServicePO;
-
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.util.List;
-
-public interface ServiceRepository extends JpaRepository {
-
- List findAllByClusterPOId(Long clusterId);
-
- Page findAllByClusterPOId(Long clusterId, Pageable pageable);
-
- ServicePO findByClusterPOIdAndServiceName(Long clusterId, String serviceName);
-
- List findByClusterPOIdAndServiceNameIn(Long clusterId, List serviceNames);
-}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/SettingRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/SettingRepository.java
deleted file mode 100644
index 67cfbd627..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/SettingRepository.java
+++ /dev/null
@@ -1,25 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.SettingPO;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-
-public interface SettingRepository extends JpaRepository {}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/StackRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/StackRepository.java
deleted file mode 100644
index 797e2d542..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/StackRepository.java
+++ /dev/null
@@ -1,28 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.StackPO;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-
-public interface StackRepository extends JpaRepository {
-
- StackPO findByStackNameAndStackVersion(String stackName, String stackVersion);
-}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/StageRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/StageRepository.java
deleted file mode 100644
index d37128e43..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/StageRepository.java
+++ /dev/null
@@ -1,31 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.JobPO;
-import org.apache.bigtop.manager.dao.po.StagePO;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.util.List;
-
-public interface StageRepository extends JpaRepository {
-
- List findByJobPO(JobPO jobPO);
-}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/TaskRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/TaskRepository.java
deleted file mode 100644
index 045ee6d52..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/TaskRepository.java
+++ /dev/null
@@ -1,38 +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.dao.repository;
-
-import org.apache.bigtop.manager.common.enums.JobState;
-import org.apache.bigtop.manager.dao.po.StagePO;
-import org.apache.bigtop.manager.dao.po.TaskPO;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.util.List;
-
-public interface TaskRepository extends JpaRepository {
-
- List findByStagePO(StagePO stagePO);
-
- List findAllByJobPOId(Long jobId);
-
- List findAllByJobPOIdAndState(Long jobId, JobState state);
-
- List findAllByJobPOIdAndHostnameAndState(Long jobId, String hostname, JobState state);
-}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/TypeConfigRepository.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/TypeConfigRepository.java
deleted file mode 100644
index ea03ead99..000000000
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/TypeConfigRepository.java
+++ /dev/null
@@ -1,25 +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.dao.repository;
-
-import org.apache.bigtop.manager.dao.po.TypeConfigPO;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-
-public interface TypeConfigRepository extends JpaRepository {}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
index 1c6e01598..f6ab0518a 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
@@ -1,11 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.sql;
-import lombok.extern.slf4j.Slf4j;
import org.apache.bigtop.manager.dao.mapper.BaseMapper;
+
import org.apache.ibatis.builder.annotation.ProviderContext;
+
import org.springframework.core.ResolvableType;
import org.springframework.util.Assert;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.Serializable;
import java.lang.reflect.Type;
import java.util.Collection;
@@ -34,7 +57,7 @@ public String updateById(Entity entity, ProviderContext context) {
return SQLBuilder.update(mataData, entity, databaseId);
}
- public String selectById(Long id, ProviderContext context) {
+ public String selectById(Serializable id, ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
@@ -43,7 +66,7 @@ public String selectById(Long id, ProviderContext context) {
return SQLBuilder.selectById(mataData, databaseId, id);
}
- public String selectByIds(Collection ids, ProviderContext context) {
+ public String selectByIds(Collection extends Serializable> ids, ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
@@ -59,7 +82,24 @@ public String selectAll(ProviderContext context) {
TableMataData mataData = TableMataData.forClass(entityClass);
return SQLBuilder.selectAll(mataData, databaseId);
+ }
+
+ public String deleteById(Serializable id, ProviderContext context) {
+ String databaseId = context.getDatabaseId();
+
+ Class> entityClass = getEntityClass(context);
+ TableMataData mataData = TableMataData.forClass(entityClass);
+
+ return SQLBuilder.deleteById(mataData, databaseId, id);
+ }
+
+ public String deleteByIds(Collection extends Serializable> ids, ProviderContext context) {
+ String databaseId = context.getDatabaseId();
+ Class> entityClass = getEntityClass(context);
+ TableMataData mataData = TableMataData.forClass(entityClass);
+
+ return SQLBuilder.deleteByIds(mataData, databaseId, ids);
}
private Class> getEntityClass(ProviderContext context) {
@@ -72,5 +112,4 @@ private Class> getEntityClass(ProviderContext context) {
}
return null;
}
-
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/JpaAuditConfig.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/DBType.java
similarity index 52%
rename from bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/JpaAuditConfig.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/DBType.java
index 6bba2adab..c280c9526 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/JpaAuditConfig.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/DBType.java
@@ -7,7 +7,7 @@
* "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
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
@@ -16,26 +16,35 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.bigtop.manager.server.config;
-import org.apache.bigtop.manager.server.holder.SessionUserHolder;
+package org.apache.bigtop.manager.dao.sql;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.domain.AuditorAware;
+import java.util.stream.Stream;
-import jakarta.annotation.Nonnull;
-import java.util.Optional;
+public enum DBType {
+ MYSQL("mysql", "MYSQL"),
+ DM("dm", "DaMeng");
-@Configuration
-public class JpaAuditConfig implements AuditorAware {
+ DBType(String code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ private final String code;
+ private final String desc;
+
+ public String getCode() {
+ return this.code;
+ }
+
+ public String getDesc() {
+ return this.desc;
+ }
- @Nonnull
- @Override
- public Optional getCurrentAuditor() {
- try {
- return Optional.of(SessionUserHolder.getUserId());
- } catch (Exception e) {
- return Optional.empty();
- }
+ public static DBType toType(String databaseId) {
+ return Stream.of(DBType.values())
+ .filter(p -> p.getCode().equals(databaseId))
+ .findFirst()
+ .orElse(null);
}
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
index a5b8c9331..aae9987e6 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
@@ -1,13 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.sql;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.jdbc.SQL;
+
import org.springframework.beans.BeanUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.ReflectionUtils;
+import lombok.extern.slf4j.Slf4j;
+
import java.beans.PropertyDescriptor;
+import java.io.Serializable;
import java.util.Collection;
import java.util.Map;
import java.util.Objects;
@@ -24,8 +45,8 @@ public static String insert(TableMataData mataData, Entity entity, Stri
Map fieldColumnMap = mataData.getFieldColumnMap();
SQL sql = new SQL();
- switch (databaseId) {
- case "mysql": {
+ switch (DBType.toType(databaseId)) {
+ case MYSQL: {
sql.INSERT_INTO(mataData.getTableName());
for (Map.Entry entry : fieldColumnMap.entrySet()) {
// 忽略主键
@@ -56,8 +77,8 @@ public static String update(TableMataData mataData, Entity entity, Stri
Map fieldColumnMap = mataData.getFieldColumnMap();
SQL sql = new SQL();
- switch (databaseId) {
- case "mysql": {
+ switch (DBType.toType(databaseId)) {
+ case MYSQL: {
sql.UPDATE(mataData.getTableName());
for (Map.Entry entry : fieldColumnMap.entrySet()) {
// 忽略主键
@@ -85,11 +106,11 @@ public static String update(TableMataData mataData, Entity entity, Stri
return sql.toString();
}
- public static String selectById(TableMataData mataData, String databaseId, Long id) {
+ public static String selectById(TableMataData mataData, String databaseId, Serializable id) {
SQL sql = new SQL();
- switch (databaseId) {
- case "mysql": {
+ switch (DBType.toType(databaseId)) {
+ case MYSQL: {
sql.SELECT(mataData.getBaseColumns());
sql.FROM(mataData.getTableName());
sql.WHERE(mataData.getPkColumn() + " = '" + id + "'");
@@ -103,11 +124,12 @@ public static String selectById(TableMataData mataData, String databaseId, Long
return sql.toString();
}
- public static String selectByIds(TableMataData mataData, String databaseId, Collection ids) {
+ public static String selectByIds(
+ TableMataData mataData, String databaseId, Collection extends Serializable> ids) {
SQL sql = new SQL();
- switch (databaseId) {
- case "mysql": {
+ switch (DBType.toType(databaseId)) {
+ case MYSQL: {
String idsStr = ids.stream().map(String::valueOf).collect(Collectors.joining("', '"));
sql.SELECT(mataData.getBaseColumns());
sql.FROM(mataData.getTableName());
@@ -125,8 +147,8 @@ public static String selectByIds(TableMataData mataData, String databaseId, Coll
public static String selectAll(TableMataData mataData, String databaseId) {
SQL sql = new SQL();
- switch (databaseId) {
- case "mysql": {
+ switch (DBType.toType(databaseId)) {
+ case MYSQL: {
sql.SELECT(mataData.getBaseColumns());
sql.FROM(mataData.getTableName());
break;
@@ -139,6 +161,40 @@ public static String selectAll(TableMataData mataData, String databaseId) {
return sql.toString();
}
+ public static String deleteById(TableMataData mataData, String databaseId, Serializable id) {
+ SQL sql = new SQL();
+ switch (DBType.toType(databaseId)) {
+ case MYSQL: {
+ sql.DELETE_FROM(mataData.getTableName());
+ sql.WHERE(mataData.getPkColumn() + " = '" + id + "'");
+ break;
+ }
+ default: {
+ log.error("Unsupported data source");
+ }
+ }
+
+ return sql.toString();
+ }
+
+ public static String deleteByIds(
+ TableMataData mataData, String databaseId, Collection extends Serializable> ids) {
+ SQL sql = new SQL();
+ switch (DBType.toType(databaseId)) {
+ case MYSQL: {
+ String idsStr = ids.stream().map(String::valueOf).collect(Collectors.joining("', '"));
+ sql.DELETE_FROM(mataData.getTableName());
+ sql.WHERE(mataData.getPkColumn() + " in ('" + idsStr + "')");
+ break;
+ }
+ default: {
+ log.error("Unsupported data source");
+ }
+ }
+
+ return sql.toString();
+ }
+
private static String getEquals(String column, String property) {
return column + " = " + getTokenParam(property);
}
@@ -146,5 +202,4 @@ private static String getEquals(String column, String property) {
private static String getTokenParam(String property) {
return "#{" + property + "}";
}
-
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMataData.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMataData.java
index eb39b53e0..893680c6c 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMataData.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMataData.java
@@ -1,15 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
package org.apache.bigtop.manager.dao.sql;
-import jakarta.persistence.Column;
-import jakarta.persistence.Id;
-import jakarta.persistence.Table;
-import jakarta.persistence.Transient;
-import lombok.Getter;
import org.apache.bigtop.manager.common.utils.CaseUtils;
import org.apache.bigtop.manager.common.utils.ClassUtils;
+
import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils;
+import lombok.Getter;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
@@ -54,7 +75,6 @@ private TableMataData(Class> clazz) {
initTableInfo(clazz);
}
-
public static TableMataData forClass(Class> entityClass) {
TableMataData tableMataDate = TABLE_CACHE.get(entityClass);
if (tableMataDate == null) {
@@ -83,16 +103,17 @@ public String getBaseColumns() {
}
private void initTableInfo(Class> clazz) {
- tableName = clazz.isAnnotationPresent(Table.class) ? clazz.getAnnotation(Table.class).name()
+ tableName = clazz.isAnnotationPresent(Table.class)
+ ? clazz.getAnnotation(Table.class).name()
: CaseUtils.toUnderScoreCase(clazz.getSimpleName());
- //获取父类字段
+ // 获取父类字段
List fields = ClassUtils.getFields(clazz);
for (Field field : fields) {
- if (Modifier.isStatic(field.getModifiers()) ||
- field.isAnnotationPresent(Transient.class) ||
- !BeanUtils.isSimpleValueType(field.getType())) {
+ if (Modifier.isStatic(field.getModifiers())
+ || field.isAnnotationPresent(Transient.class)
+ || !BeanUtils.isSimpleValueType(field.getType())) {
continue;
}
@@ -111,5 +132,4 @@ private void initTableInfo(Class> clazz) {
}
}
}
-
}
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 66aad7ea1..d0e9fec3c 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml
@@ -26,6 +26,9 @@
id, cluster_name, cluster_type, root, user_group, packages, repo_template, state, selected, stack_id
+
+ ${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
+
select
@@ -44,4 +47,35 @@
select count(*) from cluster
+
+ select
+
+
+
+ , s.stack_name, s.stack_version
+ from
+ cluster r
+ left join stack s
+ on r.stack_id = s.id
+
+
+ r.id=#{clusterId}
+
+
+
+
+
+ select
+
+
+
+ , s.stack_name, s.stack_version
+ from
+ cluster r
+ left join stack s
+ on r.stack_id = s.id
+
+
\ 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 8764c65be..d401ad683 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml
@@ -86,4 +86,17 @@
on r.service_id = s.id and r.cluster_id = s.cluster_id
+
+ select
+
+
+
+ , s.service_name
+ from
+ component r
+ left join service s
+ on r.service_id = s.id and r.cluster_id = s.cluster_id
+
+
\ No newline at end of file
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
new file mode 100644
index 000000000..50b2ee9fb
--- /dev/null
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+ id, state, host_id, component_id
+
+
+ ${alias}.id, ${alias}.state, ${alias}.host_id, ${alias}.component_id
+
+
+
+ select
+
+
+
+ from
+ host_component hc
+ left join (select * from component
+
+
+ component_name = #{componentName}
+
+
+ and cluster_id = #{clusterId}
+
+
+ ) c
+ on hc.component_id = c.id
+
+
+
+ select
+
+
+
+ from
+ host_component hc
+ left join (select * from component
+
+
+ service_id = #{serviceId}
+
+
+ and cluster_id = #{clusterId}
+
+
+ ) c
+ on hc.component_id = c.id
+
+
+
+ select
+
+
+
+ from
+ host_component hc
+ left join (select * from host
+
+
+ hostname = #{hostname}
+
+
+ and cluster_id = #{clusterId}
+
+
+ ) h
+ on hc.host_id = h.id
+ left join (select * from component
+
+
+ component_name = #{componentName}
+
+
+ and cluster_id = #{clusterId}
+
+
+ ) c
+ on hc.component_id = c.id
+
+
+
+ select
+
+
+
+ from
+ host_component hc
+ left join (select * from host
+
+
+ id = #{hostId}
+
+
+ and cluster_id = #{clusterId}
+
+
+ ) h
+ on hc.host_id = h.id
+
+
+
+ select
+
+
+
+ , c.service_id
+ from
+ host_component hc
+ left join (select * from component
+
+
+ cluster_id = #{clusterId}
+
+
+ ) c
+ on hc.component_id = c.id
+
+
+
+ select
+
+
+
+ ,st.stack_name,st.stack_version,ser.service_name,ser.service_user,clu.root,c.component_name,c.command_script,hst.hostname
+ from
+ host_component hc
+ left join host hst
+ on hc.host_id = hst.id
+ left join
+ component c
+ on hc.component_id = c.id
+ left join
+ cluster clu
+ on c.cluster_id = clu.id
+ left join
+ service ser
+ on c.service_id=ser.id and c.cluster_id = ser.cluster_id
+ left join stack st
+ on clu.stack_id = st.id
+
+
+
\ No newline at end of file
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostMapper.xml
new file mode 100644
index 000000000..9f9509777
--- /dev/null
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostMapper.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+ id, hostname, ipv4, ipv6, os, arch, available_processors, free_memory_size, total_memory_size, free_disk, total_disk, state, cluster_id
+
+
+
+ select
+
+ from
+ host
+
+
+ hostname=#{hostname}
+
+
+ limit 1
+
+
+
+ select
+
+ from
+ host
+
+
+ cluster_id = #{clusterId}
+
+
+
+
+
+ select
+
+ from
+ host
+
+
+ cluster_id = in
+
+ #{hostname}
+
+
+
+
+
+
+ insert into host (hostname, ipv4, ipv6, os, arch, available_processors, free_memory_size, total_memory_size, free_disk, total_disk, state, cluster_id)
+ values
+
+ (#{host.hostname}, #{host.ipv4}, #{host.ipv6}, #{host.os}, #{host.arch}, #{host.available_processors}, #{host.free_memory_size}, #{host.total_memory_size}, #{host.free_disk}, #{host.total_disk}, #{host.state}, #{host.cluster_id})
+
+
+
+
\ No newline at end of file
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceConfigMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceConfigMapper.xml
new file mode 100644
index 000000000..47b6f75c5
--- /dev/null
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceConfigMapper.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+ id, config_desc, version, selected, service_id, cluster_id
+
+
+
+ select
+
+ from
+ service
+
+
+ cluster_id = #{clusterId}
+
+
+ service_id = #{serviceId}
+
+
+ order by version desc
+
+
+
+ select
+
+ from
+ service
+ where selected = 'true'
+
+
+ and cluster_id = #{clusterId}
+
+
+ and service_name = #{serviceName}
+
+
+ limit 1
+
+
+
+ select
+
+ from
+ service
+ where selected = 'true'
+
+
+ cluster_id = #{clusterId}
+
+
+ limit 1
+
+
+
\ No newline at end of file
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
new file mode 100644
index 000000000..c0be16b34
--- /dev/null
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+ id, service_name, display_name, service_desc, service_version, os_specifics, service_user, required_services, cluster_id
+
+
+
+ select
+
+ from
+ service
+
+
+ cluster_id = #{clusterId}
+
+
+
+
+
+ select
+
+ from
+ service
+
+
+ cluster_id = #{clusterId}
+
+
+ service_name = #{serviceName}
+
+
+
+
+
+ select
+
+ from
+ service
+
+
+ cluster_id = #{clusterId}
+
+
+ and service_name = in
+
+ #{serviceName}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/StackMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/StackMapper.xml
index 04c3c0262..5805f9837 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/StackMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/StackMapper.xml
@@ -34,7 +34,7 @@
stack
- cluster_name=#{clusterName}
+ stack_name=#{stackName}
and stack_version=#{stackVersion}
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/StageMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/StageMapper.xml
new file mode 100644
index 000000000..86829cc5c
--- /dev/null
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/StageMapper.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+ update stage
+
+
+ `state` = #{stage.state},
+
+
+ where id = #{stage.id}
+
+
+
+
\ No newline at end of file
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/TaskMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/TaskMapper.xml
new file mode 100644
index 000000000..5460d4088
--- /dev/null
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/TaskMapper.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+ update task
+
+
+ `state` = #{task.state},
+
+
+ where id = #{task.id}
+
+
+
+
\ No newline at end of file
diff --git a/bigtop-manager-server/pom.xml b/bigtop-manager-server/pom.xml
index b5d88cdbb..eb603fa54 100644
--- a/bigtop-manager-server/pom.xml
+++ b/bigtop-manager-server/pom.xml
@@ -60,17 +60,6 @@
bigtop-manager-ui
-
- org.springframework.boot
- spring-boot-starter-data-jpa
-
-
- org.hibernate.orm
- hibernate-core
-
-
-
-
org.springframework.boot
spring-boot-starter-web
@@ -94,7 +83,7 @@
com.mysql
mysql-connector-j
-
+
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/ServerApplication.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/ServerApplication.java
index 5eafb01ae..9ce9dcbb9 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/ServerApplication.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/ServerApplication.java
@@ -18,19 +18,17 @@
*/
package org.apache.bigtop.manager.server;
+import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
-import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableAsync
@EnableScheduling
-@EnableJpaAuditing
-@EntityScan("org.apache.bigtop.manager.dao")
-@EnableJpaRepositories("org.apache.bigtop.manager.dao")
+// @EntityScan("org.apache.bigtop.manager.dao")
+@MapperScan("org.apache.bigtop.manager.dao")
+// @EnableJpaRepositories("org.apache.bigtop.manager.dao")
@SpringBootApplication(scanBasePackages = {"org.apache.bigtop.manager.server", "org.apache.bigtop.manager.common"})
public class ServerApplication {
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
index 6ed587e10..310200cce 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
@@ -21,14 +21,14 @@
import org.apache.bigtop.manager.common.enums.JobState;
import org.apache.bigtop.manager.common.utils.JsonUtils;
import org.apache.bigtop.manager.dao.mapper.ClusterMapper;
+import org.apache.bigtop.manager.dao.mapper.JobMapper;
import org.apache.bigtop.manager.dao.mapper.StackMapper;
+import org.apache.bigtop.manager.dao.mapper.StageMapper;
+import org.apache.bigtop.manager.dao.mapper.TaskMapper;
import org.apache.bigtop.manager.dao.po.ClusterPO;
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.JobRepository;
-import org.apache.bigtop.manager.dao.repository.StageRepository;
-import org.apache.bigtop.manager.dao.repository.TaskRepository;
import org.apache.bigtop.manager.server.command.stage.Stage;
import org.apache.bigtop.manager.server.command.task.Task;
import org.apache.bigtop.manager.server.holder.SpringContextHolder;
@@ -41,9 +41,9 @@ public abstract class AbstractJob implements Job {
protected StackMapper stackMapper;
protected ClusterMapper clusterMapper;
- protected JobRepository jobRepository;
- protected StageRepository stageRepository;
- protected TaskRepository taskRepository;
+ protected JobMapper jobMapper;
+ protected StageMapper stageMapper;
+ protected TaskMapper taskMapper;
protected JobContext jobContext;
protected List stages;
@@ -70,9 +70,9 @@ protected void injectBeans() {
this.stackMapper = SpringContextHolder.getBean(StackMapper.class);
this.clusterMapper = SpringContextHolder.getBean(ClusterMapper.class);
- this.jobRepository = SpringContextHolder.getBean(JobRepository.class);
- this.stageRepository = SpringContextHolder.getBean(StageRepository.class);
- this.taskRepository = SpringContextHolder.getBean(TaskRepository.class);
+ this.jobMapper = SpringContextHolder.getBean(JobMapper.class);
+ this.stageMapper = SpringContextHolder.getBean(StageMapper.class);
+ this.taskMapper = SpringContextHolder.getBean(TaskMapper.class);
}
protected void beforeCreateStages() {
@@ -86,7 +86,7 @@ protected void beforeCreateStages() {
public void beforeRun() {
JobPO jobPO = getJobPO();
jobPO.setState(JobState.PROCESSING);
- jobRepository.save(jobPO);
+ jobMapper.save(jobPO);
}
@Override
@@ -121,7 +121,7 @@ public void run() {
public void onSuccess() {
JobPO jobPO = getJobPO();
jobPO.setState(JobState.SUCCESSFUL);
- jobRepository.save(jobPO);
+ jobMapper.updateById(jobPO);
}
@Override
@@ -146,9 +146,9 @@ public void onFailure() {
}
}
- taskRepository.saveAll(taskPOList);
- stageRepository.saveAll(stagePOList);
- jobRepository.save(jobPO);
+ taskMapper.updateStateByIds(taskPOList);
+ stageMapper.updateStateByIds(stagePOList);
+ jobMapper.updateById(jobPO);
}
@Override
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 f41f8f78a..90c5b70ce 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
@@ -154,18 +154,15 @@ protected Boolean isClientComponent(String componentName) {
protected List findHostnamesByComponentName(String componentName) {
List hostComponentPOList =
- hostComponentMapper.findAllByClusterIdAndComponentName(
- clusterPO.getId(), componentName);
+ hostComponentMapper.findAllByClusterIdAndComponentName(clusterPO.getId(), componentName);
if (hostComponentPOList == null) {
return new ArrayList<>();
} else {
- List hostPOList = hostMapper.findByIds(hostComponentPOList.stream()
- .map(HostComponentPO::getHostId).toList());
+ List hostPOList = hostMapper.findByIds(
+ hostComponentPOList.stream().map(HostComponentPO::getHostId).toList());
- return hostPOList.stream()
- .map(HostPO::getHostname)
- .toList();
+ return hostPOList.stream().map(HostPO::getHostname).toList();
}
}
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 4282a2ce5..736bd330b 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
@@ -71,28 +71,28 @@ public void onSuccess() {
super.onSuccess();
CommandDTO commandDTO = jobContext.getCommandDTO();
- ClusterPO clusterPO = clusterRepository
+ ClusterPO clusterPO = clusterMapper
.findByClusterName(commandDTO.getClusterCommand().getClusterName())
.orElse(new ClusterPO());
// Update cluster state to installed
- clusterPO.setState(MaintainState.INSTALLED);
- clusterRepository.save(clusterPO);
+ clusterPO.setState(MaintainState.INSTALLED.getName());
+ clusterMapper.updateById(clusterPO);
// Link job to cluster after cluster successfully added
JobPO jobPO = getJobPO();
jobPO.setClusterPO(clusterPO);
- jobRepository.save(jobPO);
+ jobMapper.updateById(jobPO);
for (Stage stage : getStages()) {
StagePO stagePO = stage.getStagePO();
stagePO.setClusterPO(clusterPO);
- stageRepository.save(stagePO);
+ stageMapper.updateById(stagePO);
for (Task task : stage.getTasks()) {
TaskPO taskPO = task.getTaskPO();
taskPO.setClusterPO(clusterPO);
- taskRepository.save(taskPO);
+ taskMapper.updateById(taskPO);
}
}
}
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 dd5c727a9..29de8ec78 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
@@ -19,13 +19,13 @@
package org.apache.bigtop.manager.server.command.job;
import org.apache.bigtop.manager.common.enums.MaintainState;
+import org.apache.bigtop.manager.dao.mapper.HostMapper;
+import org.apache.bigtop.manager.dao.mapper.ServiceMapper;
import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.bigtop.manager.dao.po.ComponentPO;
import org.apache.bigtop.manager.dao.po.HostComponentPO;
import org.apache.bigtop.manager.dao.po.HostPO;
import org.apache.bigtop.manager.dao.po.ServicePO;
-import org.apache.bigtop.manager.dao.repository.HostRepository;
-import org.apache.bigtop.manager.dao.repository.ServiceRepository;
import org.apache.bigtop.manager.server.holder.SpringContextHolder;
import org.apache.bigtop.manager.server.model.converter.ComponentConverter;
import org.apache.bigtop.manager.server.model.converter.ServiceConverter;
@@ -43,8 +43,8 @@
public class ServiceInstallJob extends AbstractServiceJob {
private ConfigService configService;
- private ServiceRepository serviceRepository;
- private HostRepository hostRepository;
+ private ServiceMapper serviceMapper;
+ private HostMapper hostMapper;
public ServiceInstallJob(JobContext jobContext) {
super(jobContext);
@@ -55,8 +55,8 @@ protected void injectBeans() {
super.injectBeans();
this.configService = SpringContextHolder.getBean(ConfigService.class);
- this.serviceRepository = SpringContextHolder.getBean(ServiceRepository.class);
- this.hostRepository = SpringContextHolder.getBean(HostRepository.class);
+ this.serviceMapper = SpringContextHolder.getBean(ServiceMapper.class);
+ this.hostMapper = SpringContextHolder.getBean(HostMapper.class);
}
@Override
@@ -99,8 +99,8 @@ protected List findHostnamesByComponentName(String componentName) {
if (componentHost.getComponentName().equals(componentName)) {
List hostnames = new ArrayList<>(componentHost.getHostnames());
if (serviceCommand.getInstalled()) {
- List existHostnames = hostComponentRepository
- .findAllByComponentPOClusterPOIdAndComponentPOComponentNameAndHostPOHostnameIn(
+ List existHostnames = hostComponentMapper
+ .findAllByClusterIdAndComponentNameAndHostnameIn(
clusterPO.getId(), componentName, hostnames)
.stream()
.map(hostComponent -> hostComponent.getHostPO().getHostname())
@@ -128,7 +128,7 @@ public void beforeRun() {
// Persist service, component and hostComponent metadata to database
for (ServiceCommandDTO serviceCommand : serviceCommands) {
String serviceName = serviceCommand.getServiceName();
- ServicePO servicePO = serviceRepository.findByClusterPOIdAndServiceName(clusterId, serviceName);
+ ServicePO servicePO = serviceMapper.findByClusterIdAndServiceName(clusterId, serviceName);
upsertService(servicePO, serviceCommand);
}
}
@@ -137,16 +137,16 @@ private void upsertService(ServicePO servicePO, ServiceCommandDTO serviceCommand
CommandDTO commandDTO = jobContext.getCommandDTO();
Long clusterId = commandDTO.getClusterId();
String serviceName = serviceCommand.getServiceName();
- ClusterPO clusterPO = clusterRepository.getReferenceById(clusterId);
+ ClusterPO clusterPO = clusterMapper.findByIdJoin(clusterId);
- String stackName = clusterPO.getStackPO().getStackName();
- String stackVersion = clusterPO.getStackPO().getStackVersion();
+ String stackName = clusterPO.getStackName();
+ String stackVersion = clusterPO.getStackVersion();
// 1. Persist service and components
if (servicePO == null) {
ServiceDTO serviceDTO = StackUtils.getServiceDTO(stackName, stackVersion, serviceName);
servicePO = ServiceConverter.INSTANCE.fromDTO2PO(serviceDTO, clusterPO);
- servicePO = serviceRepository.save(servicePO);
+ serviceMapper.save(servicePO);
}
// 2. Update configs
@@ -156,26 +156,25 @@ private void upsertService(ServicePO servicePO, ServiceCommandDTO serviceCommand
String componentName = componentHostDTO.getComponentName();
// 3. Persist component
- ComponentPO componentPO = componentRepository.findByClusterPOIdAndComponentName(clusterId, componentName);
+ ComponentPO componentPO = componentMapper.findByClusterIdAndComponentName(clusterId, componentName);
if (componentPO == null) {
ComponentDTO componentDTO = StackUtils.getComponentDTO(stackName, stackVersion, componentName);
componentPO = ComponentConverter.INSTANCE.fromDTO2PO(componentDTO, servicePO, clusterPO);
- componentPO = componentRepository.save(componentPO);
+ componentMapper.save(componentPO);
}
// 4. Persist hostComponent
for (String hostname : componentHostDTO.getHostnames()) {
HostComponentPO hostComponentPO =
- hostComponentRepository.findByComponentPOComponentNameAndHostPOHostname(
- componentName, hostname);
+ hostComponentMapper.findByComponentPOComponentNameAndHostPOHostname(componentName, hostname);
if (hostComponentPO == null) {
- HostPO hostPO = hostRepository.findByHostname(hostname);
+ HostPO hostPO = hostMapper.findByHostname(hostname);
hostComponentPO = new HostComponentPO();
hostComponentPO.setHostPO(hostPO);
- hostComponentPO.setComponentPO(componentPO);
- hostComponentPO.setState(MaintainState.UNINSTALLED);
- hostComponentRepository.save(hostComponentPO);
+ hostComponentPO.setComponentId(componentPO.getId());
+ hostComponentPO.setState(MaintainState.UNINSTALLED.getName());
+ hostComponentMapper.save(hostComponentPO);
}
}
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/AbstractStage.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/AbstractStage.java
index fd3037398..f4a7bd9fd 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/AbstractStage.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/AbstractStage.java
@@ -20,8 +20,8 @@
import org.apache.bigtop.manager.common.enums.JobState;
import org.apache.bigtop.manager.common.utils.JsonUtils;
+import org.apache.bigtop.manager.dao.mapper.StageMapper;
import org.apache.bigtop.manager.dao.po.StagePO;
-import org.apache.bigtop.manager.dao.repository.StageRepository;
import org.apache.bigtop.manager.server.command.task.Task;
import org.apache.bigtop.manager.server.holder.SpringContextHolder;
@@ -31,7 +31,7 @@
public abstract class AbstractStage implements Stage {
- protected StageRepository stageRepository;
+ protected StageMapper stageMapper;
protected StageContext stageContext;
protected List tasks;
@@ -55,7 +55,7 @@ public AbstractStage(StageContext stageContext) {
}
protected void injectBeans() {
- this.stageRepository = SpringContextHolder.getBean(StageRepository.class);
+ this.stageMapper = SpringContextHolder.getBean(StageMapper.class);
}
protected abstract void beforeCreateTasks();
@@ -74,7 +74,7 @@ protected String getComponentName() {
public void beforeRun() {
StagePO stagePO = getStagePO();
stagePO.setState(JobState.PROCESSING);
- stageRepository.save(stagePO);
+ stageMapper.save(stagePO);
}
@Override
@@ -117,14 +117,14 @@ public Boolean run() {
public void onSuccess() {
StagePO stagePO = getStagePO();
stagePO.setState(JobState.SUCCESSFUL);
- stageRepository.save(stagePO);
+ stageMapper.updateById(stagePO);
}
@Override
public void onFailure() {
StagePO stagePO = getStagePO();
stagePO.setState(JobState.FAILED);
- stageRepository.save(stagePO);
+ stageMapper.updateById(stagePO);
}
@Override
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/CacheFileUpdateStage.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/CacheFileUpdateStage.java
index 9223af7eb..040fbfca8 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/CacheFileUpdateStage.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/CacheFileUpdateStage.java
@@ -19,8 +19,8 @@
package org.apache.bigtop.manager.server.command.stage;
import org.apache.bigtop.manager.common.enums.Command;
+import org.apache.bigtop.manager.dao.mapper.HostMapper;
import org.apache.bigtop.manager.dao.po.HostPO;
-import org.apache.bigtop.manager.dao.repository.HostRepository;
import org.apache.bigtop.manager.server.command.task.CacheFileUpdateTask;
import org.apache.bigtop.manager.server.command.task.Task;
import org.apache.bigtop.manager.server.command.task.TaskContext;
@@ -33,7 +33,7 @@
public class CacheFileUpdateStage extends AbstractStage {
- private HostRepository hostRepository;
+ private HostMapper hostMapper;
public CacheFileUpdateStage(StageContext stageContext) {
super(stageContext);
@@ -43,7 +43,7 @@ public CacheFileUpdateStage(StageContext stageContext) {
protected void injectBeans() {
super.injectBeans();
- this.hostRepository = SpringContextHolder.getBean(HostRepository.class);
+ this.hostMapper = SpringContextHolder.getBean(HostMapper.class);
}
@Override
@@ -54,7 +54,7 @@ protected void beforeCreateTasks() {
hostnames.addAll(stageContext.getHostnames());
} else {
hostnames.addAll(stageContext.getHostnames() == null ? List.of() : stageContext.getHostnames());
- hostnames.addAll(hostRepository.findAllByClusterPOId(stageContext.getClusterId()).stream()
+ hostnames.addAll(hostMapper.findAllByClusterId(stageContext.getClusterId()).stream()
.map(HostPO::getHostname)
.toList());
}
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 a68a6d45f..c0be708e5 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
@@ -44,10 +44,10 @@ protected void injectBeans() {
@Override
protected void beforeCreateTasks() {
if (stageContext.getClusterId() != null) {
- ClusterPO clusterPO = clusterMapper.findById(stageContext.getClusterId());
+ ClusterPO clusterPO = clusterMapper.findByIdJoin(stageContext.getClusterId());
- stageContext.setStackName(clusterPO.getStackPO().getStackName());
- stageContext.setStackVersion(clusterPO.getStackPO().getStackVersion());
+ stageContext.setStackName(clusterPO.getStackName());
+ stageContext.setStackVersion(clusterPO.getStackVersion());
}
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractTask.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractTask.java
index fc750b763..c7385faf9 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractTask.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractTask.java
@@ -22,8 +22,8 @@
import org.apache.bigtop.manager.common.enums.Command;
import org.apache.bigtop.manager.common.enums.JobState;
import org.apache.bigtop.manager.common.utils.JsonUtils;
+import org.apache.bigtop.manager.dao.mapper.TaskMapper;
import org.apache.bigtop.manager.dao.po.TaskPO;
-import org.apache.bigtop.manager.dao.repository.TaskRepository;
import org.apache.bigtop.manager.grpc.generated.CommandReply;
import org.apache.bigtop.manager.grpc.generated.CommandRequest;
import org.apache.bigtop.manager.grpc.generated.CommandServiceGrpc;
@@ -33,7 +33,7 @@
public abstract class AbstractTask implements Task {
- protected TaskRepository taskRepository;
+ protected TaskMapper taskMapper;
protected TaskContext taskContext;
@@ -51,7 +51,7 @@ public AbstractTask(TaskContext taskContext) {
}
protected void injectBeans() {
- this.taskRepository = SpringContextHolder.getBean(TaskRepository.class);
+ this.taskMapper = SpringContextHolder.getBean(TaskMapper.class);
}
protected abstract Command getCommand();
@@ -66,7 +66,7 @@ protected String getCustomCommand() {
public void beforeRun() {
TaskPO taskPO = getTaskPO();
taskPO.setState(JobState.PROCESSING);
- taskRepository.save(taskPO);
+ taskMapper.save(taskPO);
}
@Override
@@ -103,7 +103,7 @@ public void onSuccess() {
TaskPO taskPO = getTaskPO();
taskPO.setContent(ProtobufUtil.toJson(commandRequest));
taskPO.setState(JobState.SUCCESSFUL);
- taskRepository.save(taskPO);
+ taskMapper.updateById(taskPO);
}
@Override
@@ -111,7 +111,7 @@ public void onFailure() {
TaskPO taskPO = getTaskPO();
taskPO.setContent(ProtobufUtil.toJson(commandRequest));
taskPO.setState(JobState.FAILED);
- taskRepository.save(taskPO);
+ taskMapper.updateById(taskPO);
}
@Override
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 37f5e26e8..84285d83e 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
@@ -27,6 +27,12 @@
import org.apache.bigtop.manager.common.utils.JsonUtils;
import org.apache.bigtop.manager.dao.mapper.ClusterMapper;
import org.apache.bigtop.manager.dao.mapper.ComponentMapper;
+import org.apache.bigtop.manager.dao.mapper.HostComponentMapper;
+import org.apache.bigtop.manager.dao.mapper.HostMapper;
+import org.apache.bigtop.manager.dao.mapper.RepoMapper;
+import org.apache.bigtop.manager.dao.mapper.ServiceConfigMapper;
+import org.apache.bigtop.manager.dao.mapper.ServiceMapper;
+import org.apache.bigtop.manager.dao.mapper.SettingMapper;
import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.bigtop.manager.dao.po.ComponentPO;
import org.apache.bigtop.manager.dao.po.HostComponentPO;
@@ -36,12 +42,6 @@
import org.apache.bigtop.manager.dao.po.ServicePO;
import org.apache.bigtop.manager.dao.po.SettingPO;
import org.apache.bigtop.manager.dao.po.TypeConfigPO;
-import org.apache.bigtop.manager.dao.repository.HostComponentRepository;
-import org.apache.bigtop.manager.dao.repository.HostRepository;
-import org.apache.bigtop.manager.dao.repository.RepoRepository;
-import org.apache.bigtop.manager.dao.repository.ServiceConfigRepository;
-import org.apache.bigtop.manager.dao.repository.ServiceRepository;
-import org.apache.bigtop.manager.dao.repository.SettingRepository;
import org.apache.bigtop.manager.grpc.generated.CommandRequest;
import org.apache.bigtop.manager.grpc.generated.CommandType;
import org.apache.bigtop.manager.server.holder.SpringContextHolder;
@@ -70,12 +70,12 @@
public class CacheFileUpdateTask extends AbstractTask {
private ClusterMapper clusterMapper;
- private HostComponentRepository hostComponentRepository;
- private ServiceRepository serviceRepository;
- private ServiceConfigRepository serviceConfigRepository;
- private RepoRepository repoRepository;
- private SettingRepository settingRepository;
- private HostRepository hostRepository;
+ private HostComponentMapper hostComponentMapper;
+ private ServiceMapper serviceMapper;
+ private ServiceConfigMapper serviceConfigMapper;
+ private RepoMapper repoMapper;
+ private SettingMapper settingMapper;
+ private HostMapper hostMapper;
private ComponentMapper componentMapper;
private ClusterInfo clusterInfo;
@@ -95,12 +95,12 @@ protected void injectBeans() {
super.injectBeans();
this.clusterMapper = SpringContextHolder.getBean(ClusterMapper.class);
- this.hostComponentRepository = SpringContextHolder.getBean(HostComponentRepository.class);
- this.serviceRepository = SpringContextHolder.getBean(ServiceRepository.class);
- this.serviceConfigRepository = SpringContextHolder.getBean(ServiceConfigRepository.class);
- this.repoRepository = SpringContextHolder.getBean(RepoRepository.class);
- this.settingRepository = SpringContextHolder.getBean(SettingRepository.class);
- this.hostRepository = SpringContextHolder.getBean(HostRepository.class);
+ this.hostComponentMapper = SpringContextHolder.getBean(HostComponentMapper.class);
+ this.serviceMapper = SpringContextHolder.getBean(ServiceMapper.class);
+ this.serviceConfigMapper = SpringContextHolder.getBean(ServiceConfigMapper.class);
+ this.repoMapper = SpringContextHolder.getBean(RepoMapper.class);
+ this.settingMapper = SpringContextHolder.getBean(SettingMapper.class);
+ this.hostMapper = SpringContextHolder.getBean(HostMapper.class);
this.componentMapper = SpringContextHolder.getBean(ComponentMapper.class);
}
@@ -120,20 +120,21 @@ private void genCaches() {
}
private void genFullCaches() {
- ClusterPO clusterPO = clusterMapper.findById(taskContext.getClusterId());
+ ClusterPO clusterPO = clusterMapper.findByIdJoin(taskContext.getClusterId());
Long clusterId = clusterPO.getId();
String clusterName = clusterPO.getClusterName();
- String stackName = clusterPO.getStackPO().getStackName();
- String stackVersion = clusterPO.getStackPO().getStackVersion();
- List servicePOList = serviceRepository.findAllByClusterPOId(clusterId);
+ String stackName = clusterPO.getStackName();
+ String stackVersion = clusterPO.getStackVersion();
+
+ List servicePOList = serviceMapper.findAllByClusterId(clusterId);
List serviceConfigPOList =
- serviceConfigRepository.findAllByClusterPOAndSelectedIsTrue(clusterPO);
- List hostComponentPOList = hostComponentRepository.findAllByComponentPOClusterPOId(clusterId);
- List repoPOList = repoRepository.findAllByClusterPO(clusterPO);
- Iterable settings = settingRepository.findAll();
- List hostPOList = hostRepository.findAllByClusterPOId(clusterId);
+ serviceConfigMapper.findAllByClusterIdAndSelectedIsTrue(clusterPO.getId());
+ List hostComponentPOList = hostComponentMapper.findAllByClusterId(clusterId);
+ List repoPOList = repoMapper.findAllByClusterId(clusterPO.getId());
+ Iterable settings = settingMapper.findAll();
+ List hostPOList = hostMapper.findAllByClusterId(clusterId);
clusterInfo = new ClusterInfo();
clusterInfo.setClusterName(clusterName);
@@ -192,7 +193,7 @@ private void genFullCaches() {
settings.forEach(x -> settingsMap.put(x.getTypeName(), x.getConfigData()));
componentInfoMap = new HashMap<>();
- List componentPOList = componentMapper.findAll();
+ List componentPOList = componentMapper.findAllJoinService();
componentPOList.forEach(c -> {
ComponentInfo componentInfo = new ComponentInfo();
componentInfo.setComponentName(c.getComponentName());
@@ -200,7 +201,7 @@ private void genFullCaches() {
componentInfo.setDisplayName(c.getDisplayName());
componentInfo.setCategory(c.getCategory());
componentInfo.setCustomCommands(c.getCustomCommands());
- componentInfo.setServiceName(c.getServicePO().getServiceName());
+ componentInfo.setServiceName(c.getServiceName());
componentInfoMap.put(c.getComponentName(), componentInfo);
});
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentInstallTask.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentInstallTask.java
index 8bc9530c7..26d0c4f93 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentInstallTask.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentInstallTask.java
@@ -41,10 +41,9 @@ public void onSuccess() {
String componentName = taskContext.getComponentName();
String hostname = taskContext.getHostname();
HostComponentPO hostComponentPO =
- hostComponentRepository.findByComponentPOClusterPOIdAndComponentPOComponentNameAndHostPOHostname(
- clusterId, componentName, hostname);
- hostComponentPO.setState(MaintainState.INSTALLED);
- hostComponentRepository.save(hostComponentPO);
+ hostComponentMapper.findByClusterIdAndComponentNameAndHostname(clusterId, componentName, hostname);
+ hostComponentPO.setState(MaintainState.INSTALLED.getName());
+ hostComponentMapper.updateById(hostComponentPO);
}
@Override
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStartTask.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStartTask.java
index 3160fe814..83bf3609e 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStartTask.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStartTask.java
@@ -41,10 +41,9 @@ public void onSuccess() {
String componentName = taskContext.getComponentName();
String hostname = taskContext.getHostname();
HostComponentPO hostComponentPO =
- hostComponentRepository.findByComponentPOClusterPOIdAndComponentPOComponentNameAndHostPOHostname(
- clusterId, componentName, hostname);
- hostComponentPO.setState(MaintainState.STARTED);
- hostComponentRepository.save(hostComponentPO);
+ hostComponentMapper.findByClusterIdAndComponentNameAndHostname(clusterId, componentName, hostname);
+ hostComponentPO.setState(MaintainState.STARTED.getName());
+ hostComponentMapper.updateById(hostComponentPO);
}
@Override
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStopTask.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStopTask.java
index 3c946fec0..c9a282717 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStopTask.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/ComponentStopTask.java
@@ -41,10 +41,9 @@ public void onSuccess() {
String componentName = taskContext.getComponentName();
String hostname = taskContext.getHostname();
HostComponentPO hostComponentPO =
- hostComponentRepository.findByComponentPOClusterPOIdAndComponentPOComponentNameAndHostPOHostname(
- clusterId, componentName, hostname);
- hostComponentPO.setState(MaintainState.STOPPED);
- hostComponentRepository.save(hostComponentPO);
+ hostComponentMapper.findByClusterIdAndComponentNameAndHostname(clusterId, componentName, hostname);
+ hostComponentPO.setState(MaintainState.STOPPED.getName());
+ hostComponentMapper.updateById(hostComponentPO);
}
@Override
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
index 9d2509f81..66d36384e 100644
--- 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
@@ -19,8 +19,8 @@
package org.apache.bigtop.manager.server.command.validator;
import org.apache.bigtop.manager.common.enums.Command;
+import org.apache.bigtop.manager.dao.mapper.HostMapper;
import org.apache.bigtop.manager.dao.po.HostPO;
-import org.apache.bigtop.manager.dao.repository.HostRepository;
import org.apache.bigtop.manager.server.command.CommandIdentifier;
import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
import org.apache.bigtop.manager.server.enums.CommandLevel;
@@ -39,7 +39,7 @@
public class ClusterHostValidator implements CommandValidator {
@Resource
- private HostRepository hostRepository;
+ private HostMapper hostMapper;
@Override
public List getCommandIdentifiers() {
@@ -51,7 +51,7 @@ public void validate(ValidatorContext context) {
ClusterCommandDTO clusterCommand = context.getCommandDTO().getClusterCommand();
List hostnames = clusterCommand.getHostnames();
- List hostPOList = hostRepository.findAllByHostnameIn(hostnames);
+ List hostPOList = hostMapper.findAllByHostnameIn(hostnames);
if (CollectionUtils.isNotEmpty(hostPOList)) {
List existsHostnames =
hostPOList.stream().map(HostPO::getHostname).toList();
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/HostAddValidator.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/HostAddValidator.java
index c57c7342b..ecfb96114 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/HostAddValidator.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/HostAddValidator.java
@@ -19,8 +19,8 @@
package org.apache.bigtop.manager.server.command.validator;
import org.apache.bigtop.manager.common.enums.Command;
+import org.apache.bigtop.manager.dao.mapper.HostMapper;
import org.apache.bigtop.manager.dao.po.HostPO;
-import org.apache.bigtop.manager.dao.repository.HostRepository;
import org.apache.bigtop.manager.server.command.CommandIdentifier;
import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
import org.apache.bigtop.manager.server.enums.CommandLevel;
@@ -38,7 +38,7 @@
public class HostAddValidator implements CommandValidator {
@Resource
- private HostRepository hostRepository;
+ private HostMapper hostMapper;
@Override
public List getCommandIdentifiers() {
@@ -51,7 +51,7 @@ public void validate(ValidatorContext context) {
.map(HostCommandDTO::getHostname)
.toList();
- List hostPOList = hostRepository.findAllByHostnameIn(hostnames);
+ List hostPOList = hostMapper.findAllByHostnameIn(hostnames);
if (CollectionUtils.isNotEmpty(hostPOList)) {
List existsHostnames =
hostPOList.stream().map(HostPO::getHostname).toList();
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 234375818..07842a3c1 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
@@ -20,9 +20,9 @@
import org.apache.bigtop.manager.common.enums.Command;
import org.apache.bigtop.manager.dao.mapper.ClusterMapper;
+import org.apache.bigtop.manager.dao.mapper.ServiceMapper;
import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.bigtop.manager.dao.po.ServicePO;
-import org.apache.bigtop.manager.dao.repository.ServiceRepository;
import org.apache.bigtop.manager.server.command.CommandIdentifier;
import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
import org.apache.bigtop.manager.server.enums.CommandLevel;
@@ -46,7 +46,7 @@ public class RequiredServicesValidator implements CommandValidator {
private ClusterMapper clusterMapper;
@Resource
- private ServiceRepository serviceRepository;
+ private ServiceMapper serviceMapper;
@Override
public List getCommandIdentifiers() {
@@ -59,9 +59,9 @@ public void validate(ValidatorContext context) {
List serviceCommands = commandDTO.getServiceCommands();
Long clusterId = commandDTO.getClusterId();
- ClusterPO clusterPO = clusterMapper.findById(clusterId);
- String stackName = clusterPO.getStackPO().getStackName();
- String stackVersion = clusterPO.getStackPO().getStackVersion();
+ ClusterPO clusterPO = clusterMapper.findByIdJoin(clusterId);
+ String stackName = clusterPO.getStackName();
+ String stackVersion = clusterPO.getStackVersion();
List serviceNames =
serviceCommands.stream().map(ServiceCommandDTO::getServiceName).toList();
@@ -73,8 +73,7 @@ public void validate(ValidatorContext context) {
return;
}
- List servicePOList =
- serviceRepository.findByClusterPOIdAndServiceNameIn(clusterId, requiredServices);
+ List servicePOList = serviceMapper.findByClusterIdAndServiceNameIn(clusterId, requiredServices);
List list =
servicePOList.stream().map(ServicePO::getServiceName).toList();
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/ServiceHostValidator.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/ServiceHostValidator.java
index f6a4dd115..67bad2b3d 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/ServiceHostValidator.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/ServiceHostValidator.java
@@ -19,8 +19,8 @@
package org.apache.bigtop.manager.server.command.validator;
import org.apache.bigtop.manager.common.enums.Command;
+import org.apache.bigtop.manager.dao.mapper.HostMapper;
import org.apache.bigtop.manager.dao.po.HostPO;
-import org.apache.bigtop.manager.dao.repository.HostRepository;
import org.apache.bigtop.manager.server.command.CommandIdentifier;
import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
import org.apache.bigtop.manager.server.enums.CommandLevel;
@@ -39,7 +39,7 @@
public class ServiceHostValidator implements CommandValidator {
@Resource
- private HostRepository hostRepository;
+ private HostMapper hostMapper;
@Override
public List getCommandIdentifiers() {
@@ -56,7 +56,7 @@ public void validate(ValidatorContext context) {
.flatMap(x -> x.getHostnames().stream())
.collect(Collectors.toSet());
- List hostnames = hostRepository.findAllByHostnameIn(hostnameSet);
+ List hostnames = hostMapper.findAllByHostnameIn(hostnameSet);
if (hostnames.size() != hostnameSet.size()) {
throw new ApiException(ApiExceptionEnum.HOST_NOT_FOUND);
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/StackValidator.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/StackValidator.java
index 42404c044..c07920b02 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/StackValidator.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/validator/StackValidator.java
@@ -19,8 +19,8 @@
package org.apache.bigtop.manager.server.command.validator;
import org.apache.bigtop.manager.common.enums.Command;
+import org.apache.bigtop.manager.dao.mapper.StackMapper;
import org.apache.bigtop.manager.dao.po.StackPO;
-import org.apache.bigtop.manager.dao.repository.StackRepository;
import org.apache.bigtop.manager.server.command.CommandIdentifier;
import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
import org.apache.bigtop.manager.server.enums.CommandLevel;
@@ -36,7 +36,7 @@
public class StackValidator implements CommandValidator {
@Resource
- private StackRepository stackRepository;
+ private StackMapper stackMapper;
@Override
public List getCommandIdentifiers() {
@@ -49,7 +49,7 @@ public void validate(ValidatorContext context) {
String stackName = clusterCommand.getStackName();
String stackVersion = clusterCommand.getStackVersion();
- StackPO stackPO = stackRepository.findByStackNameAndStackVersion(stackName, stackVersion);
+ StackPO stackPO = stackMapper.findByStackNameAndStackVersion(stackName, stackVersion);
if (stackPO == null) {
throw new ApiException(ApiExceptionEnum.STACK_NOT_FOUND);
}
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 b093dfd9b..96fbca630 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
@@ -45,10 +45,9 @@ public interface ClusterConverter {
ClusterDTO fromPO2DTO(ClusterPO clusterPO);
- @Mapping(target = "stackName", source = "stackPO.stackName")
- @Mapping(target = "stackVersion", source = "stackPO.stackVersion")
ClusterVO fromEntity2VO(ClusterPO clusterPO);
- @Mapping(target = "stackPO", expression = "java(stackPO)")
+ @Mapping(target = "stackName", expression = "java(stackPO.getStackName())")
+ @Mapping(target = "stackVersion", expression = "java(stackPO.getStackVersion())")
ClusterPO fromDTO2PO(ClusterDTO clusterDTO, StackDTO stackDTO, @Context StackPO stackPO);
}
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 dca7b9f2b..d9c168a4c 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
@@ -18,8 +18,6 @@
*/
package org.apache.bigtop.manager.server.model.vo;
-import org.apache.bigtop.manager.common.enums.MaintainState;
-
import lombok.Data;
@Data
@@ -37,5 +35,5 @@ public class ClusterVO {
private Boolean selected;
- private MaintainState state;
+ private String state;
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/PageVO.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/PageVO.java
index 75187423f..d28dc052c 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/PageVO.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/PageVO.java
@@ -18,12 +18,11 @@
*/
package org.apache.bigtop.manager.server.model.vo;
-import com.github.pagehelper.PageInfo;
import org.apache.bigtop.manager.server.exception.ServerException;
import org.mapstruct.factory.Mappers;
-import org.springframework.data.domain.Page;
+import com.github.pagehelper.PageInfo;
import lombok.Data;
import java.lang.reflect.Method;
@@ -44,29 +43,6 @@ public static PageVO of(List content, Long total) {
return res;
}
- @SuppressWarnings("unchecked")
- public static PageVO of(Page page) {
- List content = new ArrayList<>();
- if (page.hasContent()) {
- try {
- Class clz = (Class) page.getContent().get(0).getClass();
- String className = "org.apache.bigtop.manager.server.model.converter."
- + clz.getSimpleName().replace("PO", "") + "Converter";
- Class> mapper = Class.forName(className);
- Object o = Mappers.getMapper(mapper);
- Method method = o.getClass().getDeclaredMethod("fromPO2VO", List.class);
- content = (List) method.invoke(o, page.getContent());
- } catch (Exception e) {
- throw new ServerException(e);
- }
- }
-
- PageVO res = new PageVO<>();
- res.setContent(content);
- res.setTotal(page.getTotalElements());
- return res;
- }
-
@SuppressWarnings("unchecked")
public static PageVO of(PageInfo page) {
List content = new ArrayList<>();
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/scheduler/ComponentStatusScheduler.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/scheduler/ComponentStatusScheduler.java
index 43882aba5..d31a680de 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/scheduler/ComponentStatusScheduler.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/scheduler/ComponentStatusScheduler.java
@@ -19,13 +19,8 @@
package org.apache.bigtop.manager.server.scheduler;
import org.apache.bigtop.manager.common.enums.MaintainState;
-import org.apache.bigtop.manager.dao.po.ClusterPO;
-import org.apache.bigtop.manager.dao.po.ComponentPO;
+import org.apache.bigtop.manager.dao.mapper.HostComponentMapper;
import org.apache.bigtop.manager.dao.po.HostComponentPO;
-import org.apache.bigtop.manager.dao.po.HostPO;
-import org.apache.bigtop.manager.dao.po.ServicePO;
-import org.apache.bigtop.manager.dao.po.StackPO;
-import org.apache.bigtop.manager.dao.repository.HostComponentRepository;
import org.apache.bigtop.manager.grpc.generated.ComponentStatusReply;
import org.apache.bigtop.manager.grpc.generated.ComponentStatusRequest;
import org.apache.bigtop.manager.grpc.generated.ComponentStatusServiceGrpc;
@@ -46,46 +41,43 @@
public class ComponentStatusScheduler {
@Resource
- private HostComponentRepository hostComponentRepository;
+ private HostComponentMapper hostComponentMapper;
@Async
@Scheduled(fixedDelay = 30, timeUnit = TimeUnit.SECONDS)
public void execute() {
- List hostComponentPOList = hostComponentRepository.findAll();
+ List hostComponentPOList = hostComponentMapper.findAllJoin();
for (HostComponentPO hostComponentPO : hostComponentPOList) {
// Only check services which should be in running
- if (!List.of(MaintainState.STARTED, MaintainState.STOPPED).contains(hostComponentPO.getState())) {
+ if (!List.of(MaintainState.STARTED, MaintainState.STOPPED)
+ .contains(MaintainState.fromString(hostComponentPO.getState()))) {
continue;
}
- HostPO hostPO = hostComponentPO.getHostPO();
- ComponentPO componentPO = hostComponentPO.getComponentPO();
- ServicePO servicePO = componentPO.getServicePO();
- ClusterPO clusterPO = hostPO.getClusterPO();
- StackPO stackPO = clusterPO.getStackPO();
-
ComponentStatusRequest request = ComponentStatusRequest.newBuilder()
- .setServiceName(servicePO.getServiceName())
- .setServiceUser(servicePO.getServiceUser())
- .setComponentName(componentPO.getComponentName())
- .setCommandScript(componentPO.getCommandScript())
- .setRoot(clusterPO.getRoot())
- .setStackName(stackPO.getStackName())
- .setStackVersion(stackPO.getStackVersion())
+ .setServiceName(hostComponentPO.getServiceName())
+ .setServiceUser(hostComponentPO.getServiceUser())
+ .setComponentName(hostComponentPO.getComponentName())
+ .setCommandScript(hostComponentPO.getCommandScript())
+ .setRoot(hostComponentPO.getRoot())
+ .setStackName(hostComponentPO.getStackName())
+ .setStackVersion(hostComponentPO.getStackVersion())
.build();
ComponentStatusServiceGrpc.ComponentStatusServiceBlockingStub blockingStub = GrpcClient.getBlockingStub(
- hostPO.getHostname(), ComponentStatusServiceGrpc.ComponentStatusServiceBlockingStub.class);
+ hostComponentPO.getHostname(), ComponentStatusServiceGrpc.ComponentStatusServiceBlockingStub.class);
ComponentStatusReply reply = blockingStub.getComponentStatus(request);
// Status 0 means the service is running
- if (reply.getStatus() == 0 && hostComponentPO.getState() == MaintainState.STOPPED) {
- hostComponentPO.setState(MaintainState.STARTED);
- hostComponentRepository.save(hostComponentPO);
+ if (reply.getStatus() == 0
+ && MaintainState.fromString(hostComponentPO.getState()) == MaintainState.STOPPED) {
+ hostComponentPO.setState(MaintainState.STARTED.getName());
+ hostComponentMapper.updateById(hostComponentPO);
}
- if (reply.getStatus() != 0 && hostComponentPO.getState() == MaintainState.STARTED) {
- hostComponentPO.setState(MaintainState.STOPPED);
- hostComponentRepository.save(hostComponentPO);
+ if (reply.getStatus() != 0
+ && MaintainState.fromString(hostComponentPO.getState()) == MaintainState.STARTED) {
+ hostComponentPO.setState(MaintainState.STOPPED.getName());
+ hostComponentMapper.updateById(hostComponentPO);
}
}
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/scheduler/HostInfoScheduler.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/scheduler/HostInfoScheduler.java
index 7c0b9377a..af7f2769c 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/scheduler/HostInfoScheduler.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/scheduler/HostInfoScheduler.java
@@ -19,8 +19,8 @@
package org.apache.bigtop.manager.server.scheduler;
import org.apache.bigtop.manager.common.enums.MaintainState;
+import org.apache.bigtop.manager.dao.mapper.HostMapper;
import org.apache.bigtop.manager.dao.po.HostPO;
-import org.apache.bigtop.manager.dao.repository.HostRepository;
import org.apache.bigtop.manager.grpc.generated.HostInfoReply;
import org.apache.bigtop.manager.grpc.generated.HostInfoRequest;
import org.apache.bigtop.manager.grpc.generated.HostInfoServiceGrpc;
@@ -41,12 +41,12 @@
public class HostInfoScheduler {
@Resource
- private HostRepository hostRepository;
+ private HostMapper hostMapper;
@Async
@Scheduled(fixedDelay = 30, timeUnit = TimeUnit.SECONDS)
public void execute() {
- List hostPOList = hostRepository.findAll();
+ List hostPOList = hostMapper.findAll();
for (HostPO hostPO : hostPOList) {
getHostInfo(hostPO);
}
@@ -69,12 +69,12 @@ private void getHostInfo(HostPO hostPO) {
hostPO.setFreeDisk(reply.getFreeDisk());
hostPO.setTotalDisk(reply.getTotalDisk());
- hostPO.setState(MaintainState.STARTED);
+ hostPO.setState(MaintainState.STARTED.getName());
} catch (Exception e) {
log.error("Error getting host info", e);
- hostPO.setState(MaintainState.STOPPED);
+ hostPO.setState(MaintainState.STOPPED.getName());
}
- hostRepository.save(hostPO);
+ hostMapper.updateById(hostPO);
}
}
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 0c9d5c298..8fac62a58 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
@@ -41,7 +41,6 @@
import lombok.extern.slf4j.Slf4j;
import jakarta.annotation.Resource;
-
import java.util.ArrayList;
import java.util.List;
@@ -64,7 +63,7 @@ public class ClusterServiceImpl implements ClusterService {
@Override
public List list() {
List clusterVOList = new ArrayList<>();
- clusterMapper.findAll().forEach(cluster -> {
+ clusterMapper.findAllByJoin().forEach(cluster -> {
ClusterVO clusterVO = ClusterConverter.INSTANCE.fromEntity2VO(cluster);
clusterVOList.add(clusterVO);
});
@@ -82,7 +81,7 @@ public ClusterVO save(ClusterDTO clusterDTO) {
.getLeft();
ClusterPO clusterPO = ClusterConverter.INSTANCE.fromDTO2PO(clusterDTO, stackDTO, stackPO);
clusterPO.setSelected(clusterMapper.count() == 0);
- clusterPO.setState(MaintainState.UNINSTALLED);
+ clusterPO.setState(MaintainState.UNINSTALLED.getName());
ClusterPO oldClusterPO =
clusterMapper.findByClusterName(clusterDTO.getClusterName()).orElse(new ClusterPO());
@@ -112,8 +111,11 @@ public ClusterVO save(ClusterDTO clusterDTO) {
@Override
public ClusterVO get(Long id) {
- ClusterPO clusterPO =
- clusterMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.CLUSTER_NOT_FOUND));
+ ClusterPO clusterPO = clusterMapper.findByIdJoin(id);
+
+ if (clusterPO == null) {
+ throw new ApiException(ApiExceptionEnum.CLUSTER_NOT_FOUND);
+ }
return ClusterConverter.INSTANCE.fromEntity2VO(clusterPO);
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
index dbcbfdb35..f37994d3c 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
@@ -20,13 +20,13 @@
import org.apache.bigtop.manager.common.enums.JobState;
import org.apache.bigtop.manager.dao.mapper.ClusterMapper;
+import org.apache.bigtop.manager.dao.mapper.JobMapper;
+import org.apache.bigtop.manager.dao.mapper.StageMapper;
+import org.apache.bigtop.manager.dao.mapper.TaskMapper;
import org.apache.bigtop.manager.dao.po.ClusterPO;
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.JobRepository;
-import org.apache.bigtop.manager.dao.repository.StageRepository;
-import org.apache.bigtop.manager.dao.repository.TaskRepository;
import org.apache.bigtop.manager.server.command.CommandIdentifier;
import org.apache.bigtop.manager.server.command.factory.JobFactories;
import org.apache.bigtop.manager.server.command.factory.JobFactory;
@@ -59,13 +59,13 @@ public class CommandServiceImpl implements CommandService {
private ClusterMapper clusterMapper;
@Resource
- private JobRepository jobRepository;
+ private JobMapper jobMapper;
@Resource
- private StageRepository stageRepository;
+ private StageMapper stageMapper;
@Resource
- private TaskRepository taskRepository;
+ private TaskMapper taskMapper;
@Override
public CommandVO command(CommandDTO commandDTO) {
@@ -97,27 +97,27 @@ protected JobPO saveJob(Job job) {
ClusterPO clusterPO = clusterId == null ? null : clusterMapper.findById(clusterId);
JobPO jobPO = job.getJobPO();
- jobPO.setClusterPO(clusterPO);
+ jobPO.setClusterId(clusterPO.getId());
jobPO.setState(JobState.PENDING);
- jobRepository.save(jobPO);
+ jobMapper.save(jobPO);
for (int i = 0; i < job.getStages().size(); i++) {
Stage stage = job.getStages().get(i);
StagePO stagePO = stage.getStagePO();
- stagePO.setClusterPO(clusterPO);
- stagePO.setJobPO(jobPO);
+ stagePO.setClusterId(clusterPO.getId());
+ stagePO.setJobId(jobPO.getId());
stagePO.setOrder(i + 1);
stagePO.setState(JobState.PENDING);
- stageRepository.save(stagePO);
+ stageMapper.save(stagePO);
for (int j = 0; j < stage.getTasks().size(); j++) {
Task task = stage.getTasks().get(j);
TaskPO taskPO = task.getTaskPO();
- taskPO.setClusterPO(clusterPO);
- taskPO.setJobPO(jobPO);
- taskPO.setStagePO(stagePO);
+ taskPO.setClusterId(clusterPO.getId());
+ taskPO.setJobId(jobPO.getId());
+ taskPO.setStageId(stagePO.getId());
taskPO.setState(JobState.PENDING);
- taskRepository.save(taskPO);
+ taskMapper.save(taskPO);
}
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ConfigServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ConfigServiceImpl.java
index 909b0ae86..3fb6d475b 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ConfigServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ConfigServiceImpl.java
@@ -20,13 +20,13 @@
import org.apache.bigtop.manager.common.utils.JsonUtils;
import org.apache.bigtop.manager.dao.mapper.ClusterMapper;
+import org.apache.bigtop.manager.dao.mapper.ServiceConfigMapper;
+import org.apache.bigtop.manager.dao.mapper.ServiceMapper;
+import org.apache.bigtop.manager.dao.mapper.TypeConfigMapper;
import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.bigtop.manager.dao.po.ServiceConfigPO;
import org.apache.bigtop.manager.dao.po.ServicePO;
import org.apache.bigtop.manager.dao.po.TypeConfigPO;
-import org.apache.bigtop.manager.dao.repository.ServiceConfigRepository;
-import org.apache.bigtop.manager.dao.repository.ServiceRepository;
-import org.apache.bigtop.manager.dao.repository.TypeConfigRepository;
import org.apache.bigtop.manager.server.model.converter.ServiceConfigConverter;
import org.apache.bigtop.manager.server.model.converter.TypeConfigConverter;
import org.apache.bigtop.manager.server.model.dto.PropertyDTO;
@@ -34,7 +34,6 @@
import org.apache.bigtop.manager.server.model.vo.ServiceConfigVO;
import org.apache.bigtop.manager.server.service.ConfigService;
-import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
@@ -50,26 +49,25 @@ public class ConfigServiceImpl implements ConfigService {
private ClusterMapper clusterMapper;
@Resource
- private ServiceRepository serviceRepository;
+ private ServiceMapper serviceMapper;
@Resource
- private ServiceConfigRepository serviceConfigRepository;
+ private ServiceConfigMapper serviceConfigMapper;
@Resource
- private TypeConfigRepository typeConfigRepository;
+ private TypeConfigMapper typeConfigMapper;
@Override
public List list(Long clusterId) {
ClusterPO clusterPO = clusterMapper.findById(clusterId);
- Sort sort = Sort.by(Sort.Direction.DESC, "version");
- List list = serviceConfigRepository.findAllByClusterPO(clusterPO, sort);
+ List list = serviceConfigMapper.findAllByClusterId(clusterPO.getId());
return ServiceConfigConverter.INSTANCE.fromPO2VO(list);
}
@Override
public List latest(Long clusterId) {
ClusterPO clusterPO = clusterMapper.findById(clusterId);
- List list = serviceConfigRepository.findAllByClusterPOAndSelectedIsTrue(clusterPO);
+ List list = serviceConfigMapper.findAllByClusterIdAndSelectedIsTrue(clusterPO.getId());
return ServiceConfigConverter.INSTANCE.fromPO2VO(list);
}
@@ -77,7 +75,7 @@ public List latest(Long clusterId) {
public void upsert(Long clusterId, Long serviceId, List configs) {
// Save configs
ClusterPO clusterPO = clusterMapper.findById(clusterId);
- ServicePO servicePO = serviceRepository.getReferenceById(serviceId);
+ ServicePO servicePO = serviceMapper.findById(serviceId);
ServiceConfigPO serviceCurrentConfig = findServiceCurrentConfig(clusterPO, servicePO);
if (serviceCurrentConfig == null) {
// Add config for new service
@@ -89,7 +87,7 @@ public void upsert(Long clusterId, Long serviceId, List configs)
}
private ServiceConfigPO findServiceCurrentConfig(ClusterPO clusterPO, ServicePO servicePO) {
- return serviceConfigRepository.findByClusterPOAndServicePOAndSelectedIsTrue(clusterPO, servicePO);
+ return serviceConfigMapper.findByClusterIdAndServiceIdAndSelectedIsTrue(clusterPO.getId(), servicePO.getId());
}
private void upsertServiceConfig(
@@ -98,7 +96,7 @@ private void upsertServiceConfig(
if (shouldUpdateConfig(existConfigs, configs)) {
// Unselect current config
currentConfig.setSelected(false);
- serviceConfigRepository.save(currentConfig);
+ serviceConfigMapper.updateById(currentConfig);
// Create a new config
String configDesc = "Update config for " + servicePO.getServiceName();
@@ -134,12 +132,12 @@ private void addServiceConfig(ClusterPO clusterPO, ServicePO servicePO, List configs, String configDesc, Integer version) {
ServiceConfigPO serviceConfigPO = new ServiceConfigPO();
- serviceConfigPO.setClusterPO(clusterPO);
- serviceConfigPO.setServicePO(servicePO);
+ serviceConfigPO.setClusterId(clusterPO.getId());
+ serviceConfigPO.setServiceId(servicePO.getId());
serviceConfigPO.setConfigDesc(configDesc);
serviceConfigPO.setVersion(version);
serviceConfigPO.setSelected(true);
- serviceConfigRepository.save(serviceConfigPO);
+ serviceConfigMapper.save(serviceConfigPO);
for (TypeConfigDTO typeConfigDTO : configs) {
String typeName = typeConfigDTO.getTypeName();
@@ -147,8 +145,8 @@ private void addServiceConfig(
TypeConfigPO typeConfigPO = new TypeConfigPO();
typeConfigPO.setTypeName(typeName);
typeConfigPO.setPropertiesJson(JsonUtils.writeAsString(properties));
- typeConfigPO.setServiceConfigPO(serviceConfigPO);
- typeConfigRepository.save(typeConfigPO);
+ typeConfigPO.setServiceConfigId(serviceConfigPO.getId());
+ typeConfigMapper.save(typeConfigPO);
}
}
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostComponentServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostComponentServiceImpl.java
index a23d433a9..f318bae50 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostComponentServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostComponentServiceImpl.java
@@ -18,8 +18,8 @@
*/
package org.apache.bigtop.manager.server.service.impl;
+import org.apache.bigtop.manager.dao.mapper.HostComponentMapper;
import org.apache.bigtop.manager.dao.po.HostComponentPO;
-import org.apache.bigtop.manager.dao.repository.HostComponentRepository;
import org.apache.bigtop.manager.server.model.converter.HostComponentConverter;
import org.apache.bigtop.manager.server.model.vo.HostComponentVO;
import org.apache.bigtop.manager.server.service.HostComponentService;
@@ -36,25 +36,24 @@
public class HostComponentServiceImpl implements HostComponentService {
@Resource
- private HostComponentRepository hostComponentRepository;
+ private HostComponentMapper hostComponentMapper;
@Override
public List list(Long clusterId) {
- List hostComponentPOList = hostComponentRepository.findAllByComponentPOClusterPOId(clusterId);
+ List hostComponentPOList = hostComponentMapper.findAllByClusterId(clusterId);
return HostComponentConverter.INSTANCE.fromPO2VO(hostComponentPOList);
}
@Override
public List listByHost(Long clusterId, Long hostId) {
- List hostComponentPOList =
- hostComponentRepository.findAllByComponentPOClusterPOIdAndHostPOId(clusterId, clusterId);
+ List hostComponentPOList = hostComponentMapper.findAllByClusterIdAndHostId(clusterId, hostId);
return HostComponentConverter.INSTANCE.fromPO2VO(hostComponentPOList);
}
@Override
public List listByService(Long clusterId, Long serviceId) {
List hostComponentPOList =
- hostComponentRepository.findAllByComponentPOClusterPOIdAndComponentPOServicePOId(clusterId, serviceId);
+ hostComponentMapper.findAllByClusterIdAndServiceId(clusterId, serviceId);
return HostComponentConverter.INSTANCE.fromPO2VO(hostComponentPOList);
}
}
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 785a6273e..aaab0abc8 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
@@ -20,9 +20,9 @@
import org.apache.bigtop.manager.common.enums.MaintainState;
import org.apache.bigtop.manager.dao.mapper.ClusterMapper;
+import org.apache.bigtop.manager.dao.mapper.HostMapper;
import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.bigtop.manager.dao.po.HostPO;
-import org.apache.bigtop.manager.dao.repository.HostRepository;
import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
import org.apache.bigtop.manager.server.exception.ApiException;
import org.apache.bigtop.manager.server.grpc.GrpcClient;
@@ -51,11 +51,11 @@ public class HostServiceImpl implements HostService {
private ClusterMapper clusterMapper;
@Resource
- private HostRepository hostRepository;
+ private HostMapper hostMapper;
@Override
public List list(Long clusterId) {
- List hostPOList = hostRepository.findAllByClusterPOId(clusterId);
+ List hostPOList = hostMapper.findAllByClusterId(clusterId);
if (CollectionUtils.isEmpty(hostPOList)) {
throw new ApiException(ApiExceptionEnum.HOST_NOT_FOUND);
}
@@ -67,7 +67,7 @@ public List list(Long clusterId) {
public List batchSave(Long clusterId, List hostnames) {
ClusterPO clusterPO = clusterMapper.findById(clusterId);
- List hostnameIn = hostRepository.findAllByHostnameIn(hostnames);
+ List hostnameIn = hostMapper.findAllByHostnameIn(hostnames);
List hostPOList = new ArrayList<>();
Map hostInMap =
@@ -76,8 +76,8 @@ public List batchSave(Long clusterId, List hostnames) {
for (String hostname : hostnames) {
HostPO hostPO = new HostPO();
hostPO.setHostname(hostname);
- hostPO.setClusterPO(clusterPO);
- hostPO.setState(MaintainState.INSTALLED);
+ hostPO.setClusterId(clusterPO.getId());
+ hostPO.setState(MaintainState.INSTALLED.getName());
if (hostInMap.containsKey(hostname)) {
hostPO.setId(hostInMap.get(hostname).getId());
@@ -86,7 +86,7 @@ public List batchSave(Long clusterId, List hostnames) {
hostPOList.add(hostPO);
}
- hostRepository.saveAll(hostPOList);
+ hostMapper.saveAll(hostPOList);
return HostConverter.INSTANCE.fromPO2VO(hostPOList);
}
@@ -94,7 +94,7 @@ public List batchSave(Long clusterId, List hostnames) {
@Override
public HostVO get(Long id) {
HostPO hostPO =
- hostRepository.findById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.HOST_NOT_FOUND));
+ hostMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.HOST_NOT_FOUND));
return HostConverter.INSTANCE.fromPO2VO(hostPO);
}
@@ -103,14 +103,14 @@ public HostVO get(Long id) {
public HostVO update(Long id, HostDTO hostDTO) {
HostPO hostPO = HostConverter.INSTANCE.fromDTO2PO(hostDTO);
hostPO.setId(id);
- hostRepository.save(hostPO);
+ hostMapper.updateById(hostPO);
return HostConverter.INSTANCE.fromPO2VO(hostPO);
}
@Override
public Boolean delete(Long id) {
- hostRepository.deleteById(id);
+ hostMapper.deleteById(id);
return true;
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
index 1670459e1..29ad4d74c 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
@@ -18,8 +18,6 @@
*/
package org.apache.bigtop.manager.server.service.impl;
-import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
import org.apache.bigtop.manager.common.enums.JobState;
import org.apache.bigtop.manager.common.utils.JsonUtils;
import org.apache.bigtop.manager.dao.mapper.JobMapper;
@@ -48,8 +46,10 @@
import org.springframework.stereotype.Service;
-import jakarta.annotation.Resource;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import jakarta.annotation.Resource;
import java.util.List;
@Service
@@ -85,13 +85,15 @@ public PageVO list(Long clusterId) {
@Override
public JobVO get(Long id) {
- JobPO jobPO = jobMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.JOB_NOT_FOUND));
+ JobPO jobPO =
+ jobMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.JOB_NOT_FOUND));
return JobConverter.INSTANCE.fromPO2VO(jobPO);
}
@Override
public JobVO retry(Long id) {
- JobPO jobPO = jobMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.JOB_NOT_FOUND));
+ JobPO jobPO =
+ jobMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.JOB_NOT_FOUND));
if (jobPO.getState() != JobState.FAILED) {
throw new ApiException(ApiExceptionEnum.JOB_NOT_RETRYABLE);
}
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 e3643be2d..440247751 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
@@ -21,6 +21,9 @@
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.mapper.HostComponentMapper;
+import org.apache.bigtop.manager.dao.mapper.ServiceConfigMapper;
+import org.apache.bigtop.manager.dao.mapper.ServiceMapper;
import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.bigtop.manager.dao.po.ComponentPO;
import org.apache.bigtop.manager.dao.po.HostComponentPO;
@@ -28,9 +31,6 @@
import org.apache.bigtop.manager.dao.po.ServiceConfigPO;
import org.apache.bigtop.manager.dao.po.ServicePO;
import org.apache.bigtop.manager.dao.po.TypeConfigPO;
-import org.apache.bigtop.manager.dao.repository.HostComponentRepository;
-import org.apache.bigtop.manager.dao.repository.ServiceConfigRepository;
-import org.apache.bigtop.manager.dao.repository.ServiceRepository;
import org.apache.bigtop.manager.server.model.converter.ServiceConverter;
import org.apache.bigtop.manager.server.model.converter.TypeConfigConverter;
import org.apache.bigtop.manager.server.model.dto.PropertyDTO;
@@ -57,24 +57,24 @@
public class ServiceServiceImpl implements ServiceService {
@Resource
- private ServiceRepository serviceRepository;
+ private ServiceMapper serviceMapper;
@Resource
- private HostComponentRepository hostComponentRepository;
+ private HostComponentMapper hostComponentMapper;
@Resource
- private ServiceConfigRepository serviceConfigRepository;
+ private ServiceConfigMapper serviceConfigMapper;
@Override
public List list(Long clusterId) {
List res = new ArrayList<>();
Map> serviceIdToHostComponent =
- hostComponentRepository.findAllByComponentPOClusterPOId(clusterId).stream()
- .collect(Collectors.groupingBy(hostComponent ->
- hostComponent.getComponentPO().getServicePO().getId()));
+ hostComponentMapper.findAllByClusterId(clusterId).stream()
+ .collect(Collectors.groupingBy(HostComponentPO::getServiceId));
for (Map.Entry> entry : serviceIdToHostComponent.entrySet()) {
List hostComponentPOList = entry.getValue();
+ HostComponentPO hostComponentPO1 = hostComponentPOList.get(0);
ServicePO servicePO = hostComponentPOList.get(0).getComponentPO().getServicePO();
ServiceVO serviceVO = ServiceConverter.INSTANCE.fromPO2VO(servicePO);
serviceVO.setQuickLinks(new ArrayList<>());
@@ -98,7 +98,7 @@ public List list(Long clusterId) {
MaintainState expectedState = category.equalsIgnoreCase(ComponentCategories.CLIENT)
? MaintainState.INSTALLED
: MaintainState.STARTED;
- if (!hostComponentPO.getState().equals(expectedState)) {
+ if (!MaintainState.fromString(hostComponentPO.getState()).equals(expectedState)) {
isHealthy = false;
}
}
@@ -113,7 +113,7 @@ public List list(Long clusterId) {
@Override
public ServiceVO get(Long id) {
- ServicePO servicePO = serviceRepository.findById(id).orElse(new ServicePO());
+ ServicePO servicePO = serviceMapper.findOptionalById(id).orElse(new ServicePO());
return ServiceConverter.INSTANCE.fromPO2VO(servicePO);
}
@@ -128,7 +128,7 @@ private QuickLinkVO resolveQuickLink(HostComponentPO hostComponentPO, String qui
HostPO hostPO = hostComponentPO.getHostPO();
ServicePO servicePO = componentPO.getServicePO();
ServiceConfigPO serviceConfigPO =
- serviceConfigRepository.findByClusterPOAndServicePOAndSelectedIsTrue(clusterPO, servicePO);
+ serviceConfigMapper.findByClusterIdAndServiceIdAndSelectedIsTrue(clusterPO.getId(), servicePO.getId());
List typeConfigPOList = serviceConfigPO.getConfigs();
// Use HTTP for now, need to handle https in the future
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/TaskLogServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/TaskLogServiceImpl.java
index 62b5613a3..99b9dece6 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/TaskLogServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/TaskLogServiceImpl.java
@@ -19,8 +19,8 @@
package org.apache.bigtop.manager.server.service.impl;
import org.apache.bigtop.manager.common.enums.JobState;
+import org.apache.bigtop.manager.dao.mapper.TaskMapper;
import org.apache.bigtop.manager.dao.po.TaskPO;
-import org.apache.bigtop.manager.dao.repository.TaskRepository;
import org.apache.bigtop.manager.grpc.generated.TaskLogReply;
import org.apache.bigtop.manager.grpc.generated.TaskLogRequest;
import org.apache.bigtop.manager.grpc.generated.TaskLogServiceGrpc;
@@ -38,10 +38,10 @@
public class TaskLogServiceImpl implements TaskLogService {
@Resource
- private TaskRepository taskRepository;
+ private TaskMapper taskMapper;
public void registerSink(Long taskId, FluxSink sink) {
- TaskPO taskPO = taskRepository.getReferenceById(taskId);
+ TaskPO taskPO = taskMapper.findById(taskId);
String hostname = taskPO.getHostname();
if (taskPO.getState() == JobState.PENDING || taskPO.getState() == JobState.CANCELED) {
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/UserServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/UserServiceImpl.java
index 83124a9e0..de2443702 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/UserServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/UserServiceImpl.java
@@ -41,14 +41,16 @@ public class UserServiceImpl implements UserService {
@Override
public UserVO current() {
Long id = SessionUserHolder.getUserId();
- UserPO userPO = userMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.NEED_LOGIN));
+ UserPO userPO =
+ userMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.NEED_LOGIN));
return UserConverter.INSTANCE.fromPO2VO(userPO);
}
@Override
public UserVO update(UserDTO userDTO) {
Long id = SessionUserHolder.getUserId();
- UserPO userPO = userMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.NEED_LOGIN));
+ UserPO userPO =
+ userMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.NEED_LOGIN));
userPO.setNickname(userDTO.getNickname());
userMapper.updateById(userPO);
return UserConverter.INSTANCE.fromPO2VO(userPO);
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/StackInitializer.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/StackInitializer.java
index b3c76c8be..222cc3928 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/StackInitializer.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/stack/StackInitializer.java
@@ -18,8 +18,8 @@
*/
package org.apache.bigtop.manager.server.stack;
+import org.apache.bigtop.manager.dao.mapper.StackMapper;
import org.apache.bigtop.manager.dao.po.StackPO;
-import org.apache.bigtop.manager.dao.repository.StackRepository;
import org.apache.bigtop.manager.server.model.dto.ServiceDTO;
import org.apache.bigtop.manager.server.model.dto.StackDTO;
import org.apache.bigtop.manager.server.utils.StackUtils;
@@ -46,7 +46,7 @@
public class StackInitializer implements ApplicationListener {
@Resource
- private StackRepository stackRepository;
+ private StackMapper stackMapper;
@Override
public void onApplicationEvent(@Nonnull ApplicationStartedEvent event) {
@@ -58,13 +58,13 @@ public void onApplicationEvent(@Nonnull ApplicationStartedEvent event) {
String stackName = stackDTO.getStackName();
String stackVersion = stackDTO.getStackVersion();
- StackPO stackPO = stackRepository.findByStackNameAndStackVersion(stackName, stackVersion);
+ StackPO stackPO = stackMapper.findByStackNameAndStackVersion(stackName, stackVersion);
if (stackPO == null) {
stackPO = new StackPO();
stackPO.setStackName(stackName);
stackPO.setStackVersion(stackVersion);
- stackRepository.save(stackPO);
+ stackMapper.save(stackPO);
}
}
diff --git a/bigtop-manager-server/src/main/resources/application.yml b/bigtop-manager-server/src/main/resources/application.yml
index 2fab0f1d3..4b42f1c5f 100644
--- a/bigtop-manager-server/src/main/resources/application.yml
+++ b/bigtop-manager-server/src/main/resources/application.yml
@@ -19,9 +19,6 @@
bigtop:
manager:
- orm:
- # hibernate/eclipselink(default=eclipselink)
- type: eclipselink
grpc:
port: 8835
@@ -74,6 +71,7 @@ mybatis:
configuration:
map-underscore-to-camel-case: true
database-id: mysql
+ use-generated-keys: true
pagehelper:
reasonable: false
From 06284c67095ae0a7c07f8b3eb83236895b7879d6 Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Sat, 24 Aug 2024 17:30:08 +0800
Subject: [PATCH 04/17] transfer to mybatis
---
.../bigtop/manager/common/enums/JobState.java | 18 +++--
.../manager/dao/mapper/ComponentMapper.java | 2 +
.../dao/mapper/HostComponentMapper.java | 1 -
.../bigtop/manager/dao/mapper/HostMapper.java | 2 +
.../bigtop/manager/dao/po/ComponentPO.java | 7 ++
.../manager/dao/po/HostComponentPO.java | 20 ++++-
.../apache/bigtop/manager/dao/po/HostPO.java | 5 ++
.../apache/bigtop/manager/dao/po/JobPO.java | 2 +-
.../manager/dao/po/ServiceConfigPO.java | 5 ++
.../mapper/mysql/ComponentMapper.xml | 17 ++--
.../mapper/mysql/HostComponentMapper.xml | 42 +++++++---
.../resources/mapper/mysql/HostMapper.xml | 37 ++++++++-
.../main/resources/mapper/mysql/JobMapper.xml | 54 +++++++++++--
.../mapper/mysql/ServiceConfigMapper.xml | 78 ++++++++++++++-----
.../server/command/job/AbstractJob.java | 6 +-
.../model/converter/ComponentConverter.java | 2 -
.../converter/HostComponentConverter.java | 7 --
.../server/model/converter/HostConverter.java | 2 -
.../converter/ServiceConfigConverter.java | 2 -
.../server/model/vo/HostComponentVO.java | 4 +-
.../manager/server/model/vo/HostVO.java | 4 +-
.../bigtop/manager/server/model/vo/JobVO.java | 4 +-
.../service/impl/CommandServiceImpl.java | 2 +-
.../service/impl/ConfigServiceImpl.java | 6 +-
.../server/service/impl/HostServiceImpl.java | 7 +-
.../server/service/impl/JobServiceImpl.java | 4 +-
.../manager/server/utils/PageUtils.java | 6 +-
.../main/resources/ddl/MySQL-DDL-CREATE.sql | 1 +
28 files changed, 255 insertions(+), 92 deletions(-)
diff --git a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/JobState.java b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/JobState.java
index 1789bead3..2fbae3916 100644
--- a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/JobState.java
+++ b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/JobState.java
@@ -18,23 +18,31 @@
*/
package org.apache.bigtop.manager.common.enums;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
import org.apache.bigtop.manager.common.utils.CaseUtils;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
+@AllArgsConstructor
+@Getter
public enum JobState {
- PENDING,
+ PENDING("pending", "Pending"),
- PROCESSING,
+ PROCESSING("processing", "Processing"),
- SUCCESSFUL,
+ SUCCESSFUL("successful", "Successful"),
- FAILED,
+ FAILED("failed", "Failed"),
- CANCELED,
+ CANCELED("canceled", "Canceled"),
;
+ private final String code;
+
+ private final String name;
+
@JsonCreator
public static JobState fromString(String value) {
return JobState.valueOf(value.toUpperCase());
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java
index 65f94003f..2e2d3a7eb 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java
@@ -30,6 +30,8 @@ public interface ComponentMapper extends BaseMapper {
ComponentPO findByClusterIdAndComponentName(
@Param("clusterId") Long clusterId, @Param("componentName") String componentName);
+ ComponentPO findByIdJoin(@Param("id") Long id);
+
List findAllByClusterId(@Param("clusterId") Long clusterId);
List findAllJoinService();
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
index bb20b28c3..69f2327a4 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
@@ -51,5 +51,4 @@ List findAllByClusterIdAndComponentNameAndHostnameIn(
List findAllByClusterIdAndServiceId(
@Param("clusterId") Long clusterId, @Param("serviceId") Long serviceId);
- List findAllByComponentPOServicePOId(Long serviceId);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
index 3fb269425..393e600c2 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
@@ -35,4 +35,6 @@ public interface HostMapper extends BaseMapper {
List findAllByHostnameIn(@Param("hostnames") Collection hostnames);
List findAllByClusterId(@Param("clusterId") Long clusterId);
+
+ HostPO findByIdJoin(@Param("id") Long id);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
index edfadf096..ca62b5749 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
@@ -86,6 +86,9 @@ public class ComponentPO extends BasePO implements Serializable {
@Column(name = "quick_link")
private String quickLink;
+ @Column(name = "cardinality")
+ private String cardinality;
+
@Column(name = "service_id")
private Long serviceId;
@@ -96,6 +99,10 @@ public class ComponentPO extends BasePO implements Serializable {
@Column(name = "service_name")
private String serviceName;
+ @Transient
+ @Column(name = "cluster_name")
+ private String clusterName;
+
@ManyToOne
@JoinColumn(name = "service_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
private ServicePO servicePO;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
index 898a2991f..476d20bc4 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
@@ -78,6 +78,14 @@ public class HostComponentPO extends BasePO implements Serializable {
@Column(name = "service_id")
private Long serviceId;
+ @Transient
+ @Column(name = "cluster_name")
+ private String clusterName;
+
+ @Transient
+ @Column(name = "root")
+ private String root;
+
@Transient
@Column(name = "service_name")
private String serviceName;
@@ -86,14 +94,18 @@ public class HostComponentPO extends BasePO implements Serializable {
@Column(name = "service_user")
private String serviceUser;
- @Transient
- @Column(name = "\"root\"")
- private String root;
-
@Transient
@Column(name = "component_name")
private String componentName;
+ @Transient
+ @Column(name = "display_name")
+ private String displayName;
+
+ @Transient
+ @Column(name = "category")
+ private String category;
+
@Transient
@Column(name = "command_script")
private String commandScript;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
index c66c4bdd2..efa18db8e 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
@@ -18,6 +18,7 @@
*/
package org.apache.bigtop.manager.dao.po;
+import jakarta.persistence.Transient;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -91,6 +92,10 @@ public class HostPO extends BasePO implements Serializable {
@Column(name = "cluster_id")
private Long clusterId;
+ @Transient
+ @Column(name = "cluster_name")
+ private String clusterName;
+
@ManyToOne
@JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
private ClusterPO clusterPO;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
index 98a02844e..cbbec19db 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
@@ -58,7 +58,7 @@ public class JobPO extends BasePO implements Serializable {
private Long id;
@Column(name = "state")
- private JobState state;
+ private String state;
@Column(name = "name")
private String name;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
index a5753bb81..1cdac4733 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
@@ -18,6 +18,7 @@
*/
package org.apache.bigtop.manager.dao.po;
+import jakarta.persistence.Transient;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@@ -78,6 +79,10 @@ public class ServiceConfigPO extends BasePO implements Serializable {
@Column(name = "cluster_id")
private Long clusterId;
+ @Transient
+ @Column(name = "service_name")
+ private String serviceName;
+
@ManyToOne
@JoinColumn(name = "service_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
private ServicePO servicePO;
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 d401ad683..bc3400522 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml
@@ -24,10 +24,10 @@
- id, component_name, display_name, command_script, custom_commands, category, quick_link, service_id, cluster_id
+ id, component_name, display_name, command_script, custom_commands, category, quick_link, cardinality, service_id, cluster_id
- ${alias}.id, ${alias}.component_name, ${alias}.command_script, ${alias}.custom_commands, ${alias}.category, ${alias}.quick_link, ${alias}.service_id, ${alias}.cluster_id
+ ${alias}.id, ${alias}.component_name, ${alias}.display_name, ${alias}.command_script, ${alias}.custom_commands, ${alias}.category, ${alias}.quick_link, ${alias}.cardinality, ${alias}.service_id, ${alias}.cluster_id
select
-
+
+
+
+ ,c.cluster_name, s.service_name
from
- component
+ component r
+ left join cluster c
+ on r.cluster_id = c.id
+ left join service s
+ on r.service_id = s.id
- cluster_id = #{clusterId}
+ r.cluster_id = #{clusterId}
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 50b2ee9fb..d10d494a9 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
@@ -57,19 +57,26 @@
+ , c.service_id, c.component_name, c.display_name, c.category, s.service_name, clus.cluster_name, ht.hostname
from
host_component hc
left join (select * from component
-
- service_id = #{serviceId}
-
- and cluster_id = #{clusterId}
+ cluster_id = #{clusterId}
+
+
+ and service_id = #{serviceId}
) c
on hc.component_id = c.id
+ left join service s
+ on c.service_id = s.id
+ left join cluster clus
+ on c.cluster_id = clus.id
+ left join host ht
+ on hc.host_id = ht.id
+ , c.service_id, c.component_name, c.display_name, c.category, s.service_name, clus.cluster_name, ht.hostname
from
host_component hc
+ left join component c
+ on hc.component_id = c.id
+ left join service s
+ on c.service_id = s.id
+ left join cluster clus
+ on c.cluster_id = clus.id
left join (select * from host
-
- id = #{hostId}
-
- and cluster_id = #{clusterId}
+ cluster_id = #{clusterId}
+
+
+ and id = #{hostId}
- ) h
- on hc.host_id = h.id
+ ) ht
+ on hc.host_id = ht.id
- , c.service_id
+ , c.service_id, c.component_name, c.display_name, c.category, s.service_name, clus.cluster_name, ht.hostname
from
host_component hc
left join (select * from component
@@ -142,6 +156,12 @@
) c
on hc.component_id = c.id
+ left join service s
+ on c.service_id = s.id
+ left join cluster clus
+ on c.cluster_id = clus.id
+ left join host ht
+ on hc.host_id = ht.id
+
+ ${alias}.id, ${alias}.hostname, ${alias}.ipv4, ${alias}.ipv6, ${alias}.os, ${alias}.arch, ${alias}.available_processors, ${alias}.free_memory_size, ${alias}.total_memory_size, ${alias}.free_disk, ${alias}.total_disk, ${alias}.state, ${alias}.cluster_id
+
+
select
@@ -40,17 +44,44 @@
limit 1
+
+ select
+
+
+
+ ,clus.cluster_name
+ from
+ (select * from host
+
+
+ id = #{id}
+
+
+ ) h
+ left join
+ cluster clus
+ on h.cluster_id = clus.id
+ limit 1
+
+
select
-
+
+
+
+ ,clus.cluster_name
from
- host
+ host h
+ left join
+ (select * from cluster
- cluster_id = #{clusterId}
+ id = #{clusterId}
+ ) clus
+ on h.cluster_id = clus.id
- id, state, name, context, cluster_id
+ id, state, name, context, cluster_id, create_time, update_time
+
+ ${alias}.id, ${alias}.state, ${alias}.name, ${alias}.context, ${alias}.cluster_id, ${alias}.create_time, ${alias}.update_time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
select
-
+
+
+
from
- job
+ (select * from job
cluster_id = #{clusterId}
+ ) h
+ left join stage st
+ on h.id = st.job_id
select
-
+
+
+
from
- job where cluster_id is null
+ (select * from job where cluster_id is null) h
+ left join stage st
+ on h.id = st.job_id
\ No newline at end of file
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceConfigMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceConfigMapper.xml
index 47b6f75c5..b8f8d316d 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceConfigMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceConfigMapper.xml
@@ -24,34 +24,61 @@
- id, config_desc, version, selected, service_id, cluster_id
+ id, config_desc, version, selected, service_id, cluster_id, create_time, update_time
-
+
+ ${alias}.id, ${alias}.config_desc, ${alias}.version, ${alias}.selected, ${alias}.service_id, ${alias}.cluster_id, ${alias}.create_time, ${alias}.update_time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
select
-
+
+
+
+ , s.service_name, tc.*
from
- service
+ (select * from service_config
cluster_id = #{clusterId}
-
- service_id = #{serviceId}
-
+ ) r
+ left join service s
+ on r.service_id = s.id
+ left join type_config tc
+ on r.id = tc.service_config_id
order by version desc
-
+
select
-
+
+
+
+ , s.service_name, tc.*
from
- service
- where selected = 'true'
+ (select * from service_config
+ selected = 1
and cluster_id = #{clusterId}
@@ -59,22 +86,33 @@
and service_name = #{serviceName}
+ ) r
+ left join service s
+ on r.service_id = s.id
+ left join type_config tc
+ on r.id = tc.service_config_id
limit 1
-
+
select
-
+
+
+
+ , s.service_name, tc.*
from
- service
- where selected = 'true'
+ (select * from service_config
+ selected = 1
- cluster_id = #{clusterId}
+ and cluster_id = #{clusterId}
- limit 1
+ ) r
+ left join service s
+ on r.service_id = s.id
+ left join type_config tc
+ on r.id = tc.service_config_id
\ No newline at end of file
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
index 310200cce..f6b0b717c 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
@@ -85,7 +85,7 @@ protected void beforeCreateStages() {
@Override
public void beforeRun() {
JobPO jobPO = getJobPO();
- jobPO.setState(JobState.PROCESSING);
+ jobPO.setState(JobState.PROCESSING.getName());
jobMapper.save(jobPO);
}
@@ -120,7 +120,7 @@ public void run() {
@Override
public void onSuccess() {
JobPO jobPO = getJobPO();
- jobPO.setState(JobState.SUCCESSFUL);
+ jobPO.setState(JobState.SUCCESSFUL.getName());
jobMapper.updateById(jobPO);
}
@@ -130,7 +130,7 @@ public void onFailure() {
List stagePOList = new ArrayList<>();
List taskPOList = new ArrayList<>();
- jobPO.setState(JobState.FAILED);
+ jobPO.setState(JobState.FAILED.getName());
for (Stage stage : getStages()) {
StagePO stagePO = stage.getStagePO();
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ComponentConverter.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ComponentConverter.java
index d630b2a09..73fff20eb 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ComponentConverter.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ComponentConverter.java
@@ -54,8 +54,6 @@ public interface ComponentConverter {
@Mapping(target = "componentName", source = "name")
ComponentDTO fromModel2DTO(ComponentModel componentModel);
- @Mapping(target = "serviceName", source = "servicePO.serviceName")
- @Mapping(target = "clusterName", source = "clusterPO.clusterName")
ComponentVO fromPO2VO(ComponentPO componentPO);
List fromPO2VO(List componentPOList);
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostComponentConverter.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostComponentConverter.java
index 1ed9df1a6..8d536ddb4 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostComponentConverter.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostComponentConverter.java
@@ -23,7 +23,6 @@
import org.apache.bigtop.manager.server.model.vo.HostComponentVO;
import org.mapstruct.Mapper;
-import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
import java.util.List;
@@ -33,12 +32,6 @@ public interface HostComponentConverter {
HostComponentConverter INSTANCE = Mappers.getMapper(HostComponentConverter.class);
- @Mapping(target = "componentName", source = "componentPO.componentName")
- @Mapping(target = "displayName", source = "componentPO.displayName")
- @Mapping(target = "category", source = "componentPO.category")
- @Mapping(target = "serviceName", source = "componentPO.servicePO.serviceName")
- @Mapping(target = "clusterName", source = "componentPO.clusterPO.clusterName")
- @Mapping(target = "hostname", source = "hostPO.hostname")
HostComponentVO fromPO2VO(HostComponentPO hostComponentPO);
List fromPO2VO(List hostComponentPOList);
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostConverter.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostConverter.java
index 175555bcf..66eeb121a 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostConverter.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostConverter.java
@@ -25,7 +25,6 @@
import org.apache.bigtop.manager.server.model.vo.HostVO;
import org.mapstruct.Mapper;
-import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
import java.util.List;
@@ -39,7 +38,6 @@ public interface HostConverter {
HostPO fromDTO2PO(HostDTO hostDTO);
- @Mapping(target = "clusterName", source = "clusterPO.clusterName")
HostVO fromPO2VO(HostPO hostPO);
List fromPO2VO(List hostPOList);
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConfigConverter.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConfigConverter.java
index a5a29f436..6a163a095 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConfigConverter.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConfigConverter.java
@@ -23,7 +23,6 @@
import org.apache.bigtop.manager.server.model.vo.ServiceConfigVO;
import org.mapstruct.Mapper;
-import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
import java.util.List;
@@ -35,7 +34,6 @@ public interface ServiceConfigConverter {
ServiceConfigConverter INSTANCE = Mappers.getMapper(ServiceConfigConverter.class);
- @Mapping(target = "serviceName", source = "servicePO.serviceName")
ServiceConfigVO fromPO2VO(ServiceConfigPO serviceConfigPO);
List fromPO2VO(List serviceConfigPOList);
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/HostComponentVO.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/HostComponentVO.java
index 8611000c0..4e06cc2b6 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/HostComponentVO.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/HostComponentVO.java
@@ -18,8 +18,6 @@
*/
package org.apache.bigtop.manager.server.model.vo;
-import org.apache.bigtop.manager.common.enums.MaintainState;
-
import lombok.Data;
@Data
@@ -39,5 +37,5 @@ public class HostComponentVO {
private String hostname;
- private MaintainState state;
+ private String state;
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/HostVO.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/HostVO.java
index 2a9c47264..c52ea3ebf 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/HostVO.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/HostVO.java
@@ -18,8 +18,6 @@
*/
package org.apache.bigtop.manager.server.model.vo;
-import org.apache.bigtop.manager.common.enums.MaintainState;
-
import lombok.Data;
@Data
@@ -49,5 +47,5 @@ public class HostVO {
private Long totalDisk;
- private MaintainState state;
+ private String state;
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/JobVO.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/JobVO.java
index 099863052..d36ed3a0b 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/JobVO.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/JobVO.java
@@ -18,8 +18,6 @@
*/
package org.apache.bigtop.manager.server.model.vo;
-import org.apache.bigtop.manager.common.enums.JobState;
-
import lombok.Data;
import java.util.List;
@@ -31,7 +29,7 @@ public class JobVO {
private List stages;
- private JobState state;
+ private String state;
private String name;
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
index f37994d3c..a0029610f 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
@@ -98,7 +98,7 @@ protected JobPO saveJob(Job job) {
JobPO jobPO = job.getJobPO();
jobPO.setClusterId(clusterPO.getId());
- jobPO.setState(JobState.PENDING);
+ jobPO.setState(JobState.PENDING.getName());
jobMapper.save(jobPO);
for (int i = 0; i < job.getStages().size(); i++) {
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ConfigServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ConfigServiceImpl.java
index 3fb6d475b..010c42391 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ConfigServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ConfigServiceImpl.java
@@ -59,15 +59,13 @@ public class ConfigServiceImpl implements ConfigService {
@Override
public List list(Long clusterId) {
- ClusterPO clusterPO = clusterMapper.findById(clusterId);
- List list = serviceConfigMapper.findAllByClusterId(clusterPO.getId());
+ List list = serviceConfigMapper.findAllByClusterId(clusterId);
return ServiceConfigConverter.INSTANCE.fromPO2VO(list);
}
@Override
public List latest(Long clusterId) {
- ClusterPO clusterPO = clusterMapper.findById(clusterId);
- List list = serviceConfigMapper.findAllByClusterIdAndSelectedIsTrue(clusterPO.getId());
+ List list = serviceConfigMapper.findAllByClusterIdAndSelectedIsTrue(clusterId);
return ServiceConfigConverter.INSTANCE.fromPO2VO(list);
}
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 aaab0abc8..39d6bb2f3 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
@@ -38,6 +38,7 @@
import lombok.extern.slf4j.Slf4j;
import jakarta.annotation.Resource;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -93,8 +94,10 @@ public List batchSave(Long clusterId, List hostnames) {
@Override
public HostVO get(Long id) {
- HostPO hostPO =
- hostMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.HOST_NOT_FOUND));
+ HostPO hostPO = hostMapper.findByIdJoin(id);
+ if (hostPO == null) {
+ throw new ApiException(ApiExceptionEnum.HOST_NOT_FOUND);
+ }
return HostConverter.INSTANCE.fromPO2VO(hostPO);
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
index 29ad4d74c..39cc9ae87 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
@@ -94,7 +94,7 @@ public JobVO get(Long id) {
public JobVO retry(Long id) {
JobPO jobPO =
jobMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.JOB_NOT_FOUND));
- if (jobPO.getState() != JobState.FAILED) {
+ if (JobState.fromString(jobPO.getState()) != JobState.FAILED) {
throw new ApiException(ApiExceptionEnum.JOB_NOT_RETRYABLE);
}
@@ -116,7 +116,7 @@ private void resetJobStatusInDB(JobPO jobPO) {
stageMapper.updateById(stagePO);
}
- jobPO.setState(JobState.PENDING);
+ jobPO.setState(JobState.PENDING.getName());
jobMapper.updateById(jobPO);
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/PageUtils.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/PageUtils.java
index f035b0a14..34e2c5019 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/PageUtils.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/PageUtils.java
@@ -45,15 +45,15 @@ public class PageUtils {
public static PageQuery getPageQuery() {
PageQuery query = new PageQuery();
- query.setPageNum(NumberUtils.toInt(ServletUtils.getParameter(PAGE_NUM), DEFAULT_PAGE_NUM) - 1);
+ query.setPageNum(NumberUtils.toInt(ServletUtils.getParameter(PAGE_NUM), DEFAULT_PAGE_NUM));
query.setPageSize(NumberUtils.toInt(ServletUtils.getParameter(PAGE_SIZE), DEFAULT_PAGE_SIZE));
String orderBy = StringUtils.defaultIfBlank(ServletUtils.getParameter(ORDER_BY), DEFAULT_ORDER_BY);
String sort = StringUtils.defaultIfBlank(ServletUtils.getParameter(SORT), SORT_ASC);
if (SORT_DESC.equals(sort)) {
- query.setOrderBy("ORDER BY " + orderBy + " DESC ");
+ query.setOrderBy(orderBy + " DESC ");
} else {
- query.setOrderBy("ORDER BY " + orderBy + " ASC ");
+ query.setOrderBy(orderBy + " ASC ");
}
return query;
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 ba9147fc6..081f49d66 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
@@ -109,6 +109,7 @@ CREATE TABLE `component`
`custom_commands` LONGTEXT,
`display_name` VARCHAR(255),
`quick_link` VARCHAR(255),
+ `cardinality` VARCHAR(255),
`update_by` BIGINT,
`update_time` DATETIME,
`cluster_id` BIGINT,
From 72bbed7ffefaedcce55bf37333357f3dfe327d3d Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Mon, 26 Aug 2024 18:54:15 +0800
Subject: [PATCH 05/17] update
---
.../bigtop/manager/common/enums/Command.java | 28 ++++--
.../bigtop/manager/common/enums/JobState.java | 4 +-
.../dao/mapper/HostComponentMapper.java | 1 -
.../bigtop/manager/dao/mapper/JobMapper.java | 3 +
.../manager/dao/mapper/ServiceMapper.java | 3 +
.../bigtop/manager/dao/po/ComponentPO.java | 12 ---
.../apache/bigtop/manager/dao/po/HostPO.java | 10 +-
.../apache/bigtop/manager/dao/po/JobPO.java | 16 +---
.../apache/bigtop/manager/dao/po/RepoPO.java | 8 --
.../manager/dao/po/ServiceConfigPO.java | 14 +--
.../bigtop/manager/dao/po/ServicePO.java | 22 +++--
.../apache/bigtop/manager/dao/po/StagePO.java | 22 +----
.../apache/bigtop/manager/dao/po/TaskPO.java | 25 +----
.../bigtop/manager/dao/po/TypeConfigPO.java | 8 --
.../apache/bigtop/manager/dao/po/UserPO.java | 4 +-
.../bigtop/manager/dao/sql/SQLBuilder.java | 4 +-
.../resources/mapper/mysql/HostMapper.xml | 2 +-
.../main/resources/mapper/mysql/JobMapper.xml | 91 +++++++++++++------
.../mapper/mysql/ServiceConfigMapper.xml | 34 +++----
.../resources/mapper/mysql/ServiceMapper.xml | 63 ++++++++++++-
.../server/command/job/AbstractJob.java | 6 +-
.../server/command/job/ClusterCreateJob.java | 6 +-
.../server/command/stage/AbstractStage.java | 6 +-
.../server/command/task/AbstractTask.java | 8 +-
.../command/task/CacheFileUpdateTask.java | 6 +-
.../model/converter/ComponentConverter.java | 4 +-
.../server/model/converter/JobConverter.java | 1 -
.../server/model/converter/RepoConverter.java | 4 +-
.../model/converter/ServiceConverter.java | 6 +-
.../model/converter/StageConverter.java | 1 -
.../manager/server/model/vo/StageVO.java | 4 +-
.../manager/server/model/vo/TaskVO.java | 4 +-
.../service/impl/CommandServiceImpl.java | 22 ++---
.../server/service/impl/HostServiceImpl.java | 1 -
.../server/service/impl/JobServiceImpl.java | 18 ++--
.../service/impl/ServiceServiceImpl.java | 83 ++++++++---------
.../service/impl/TaskLogServiceImpl.java | 5 +-
.../src/main/resources/application.yml | 2 +-
.../src/main/resources/assembly/server.xml | 4 +
.../main/resources/ddl/MySQL-DDL-CREATE.sql | 43 ++-------
dev-support/docker/rocky8/build-containers.sh | 1 +
41 files changed, 300 insertions(+), 309 deletions(-)
diff --git a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/Command.java b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/Command.java
index c6d37864b..a379fcaab 100644
--- a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/Command.java
+++ b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/Command.java
@@ -22,29 +22,37 @@
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+@AllArgsConstructor
+@Getter
public enum Command {
- CREATE,
+ CREATE("create", "Create"),
- INSTALL,
+ INSTALL("install", "Install"),
- UNINSTALL,
+ UNINSTALL("uninstall", "Uninstall"),
- START,
+ START("start", "Start"),
- STOP,
+ STOP("stop", "Stop"),
- STATUS,
+ STATUS("status", "Status"),
- RESTART,
+ RESTART("restart", "Restart"),
- CONFIGURE,
+ CONFIGURE("configure", "Configure"),
- CHECK,
+ CHECK("check", "Check"),
- CUSTOM,
+ CUSTOM("custom", "Custom"),
;
+ private final String code;
+
+ private final String name;
+
@JsonCreator
public static Command fromString(String value) {
return Command.valueOf(value.toUpperCase());
diff --git a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/JobState.java b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/JobState.java
index 2fbae3916..04e1a8056 100644
--- a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/JobState.java
+++ b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/enums/JobState.java
@@ -18,12 +18,12 @@
*/
package org.apache.bigtop.manager.common.enums;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
import org.apache.bigtop.manager.common.utils.CaseUtils;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
@AllArgsConstructor
@Getter
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
index 69f2327a4..8b41a1cea 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
@@ -50,5 +50,4 @@ List findAllByClusterIdAndComponentNameAndHostnameIn(
List findAllByClusterIdAndServiceId(
@Param("clusterId") Long clusterId, @Param("serviceId") Long serviceId);
-
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java
index 97a849ad7..e984ceba4 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java
@@ -24,10 +24,13 @@
import org.apache.ibatis.annotations.Param;
import java.util.List;
+import java.util.Optional;
public interface JobMapper extends BaseMapper {
List findAllByClusterId(@Param("clusterId") Long clusterId);
+ Optional findByIdJoin(@Param("id") Long id);
+
List findAllByClusterIsNull();
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java
index afb462da7..71b3b9edf 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java
@@ -24,11 +24,14 @@
import org.apache.ibatis.annotations.Param;
import java.util.List;
+import java.util.Optional;
public interface ServiceMapper extends BaseMapper {
List findAllByClusterId(@Param("clusterId") Long clusterId);
+ Optional findByIdJoin(@Param("id") Long id);
+
ServicePO findByClusterIdAndServiceName(
@Param("clusterId") Long clusterId, @Param("serviceName") String serviceName);
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
index ca62b5749..d58d040aa 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
@@ -23,17 +23,13 @@
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import jakarta.persistence.Transient;
@@ -102,12 +98,4 @@ public class ComponentPO extends BasePO implements Serializable {
@Transient
@Column(name = "cluster_name")
private String clusterName;
-
- @ManyToOne
- @JoinColumn(name = "service_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ServicePO servicePO;
-
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
index efa18db8e..55b66f936 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
@@ -18,22 +18,18 @@
*/
package org.apache.bigtop.manager.dao.po;
-import jakarta.persistence.Transient;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+import jakarta.persistence.Transient;
import jakarta.persistence.UniqueConstraint;
import java.io.Serializable;
@@ -95,8 +91,4 @@ public class HostPO extends BasePO implements Serializable {
@Transient
@Column(name = "cluster_name")
private String clusterName;
-
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
index cbbec19db..5cd5b8b05 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
@@ -18,25 +18,19 @@
*/
package org.apache.bigtop.manager.dao.po;
-import org.apache.bigtop.manager.common.enums.JobState;
-
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
@@ -47,7 +41,7 @@
@EqualsAndHashCode(callSuper = true)
@Entity
@Table(
- name = "\"job\"",
+ name = "job",
indexes = {@Index(name = "idx_job_cluster_id", columnList = "cluster_id")})
@TableGenerator(name = "job_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
public class JobPO extends BasePO implements Serializable {
@@ -65,17 +59,13 @@ public class JobPO extends BasePO implements Serializable {
@Lob
@Basic(fetch = FetchType.LAZY)
- @Column(name = "\"context\"", length = 16777216)
+ @Column(name = "context", length = 16777216)
private String context;
@Column(name = "cluster_id")
private Long clusterId;
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
-
@ToString.Exclude
@OneToMany(mappedBy = "jobPO")
- private List stagePOList;
+ private List stages;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java
index 62b691d08..6e464995e 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java
@@ -22,15 +22,11 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import jakarta.persistence.UniqueConstraint;
@@ -75,8 +71,4 @@ public class RepoPO extends BasePO implements Serializable {
@Column(name = "cluster_id")
private Long clusterId;
-
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
index 1cdac4733..72e5482d6 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
@@ -18,24 +18,20 @@
*/
package org.apache.bigtop.manager.dao.po;
-import jakarta.persistence.Transient;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+import jakarta.persistence.Transient;
import java.io.Serializable;
import java.util.List;
@@ -82,12 +78,4 @@ public class ServiceConfigPO extends BasePO implements Serializable {
@Transient
@Column(name = "service_name")
private String serviceName;
-
- @ManyToOne
- @JoinColumn(name = "service_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ServicePO servicePO;
-
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
}
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 982e40a2d..7aa2106e3 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,21 +20,21 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
+import lombok.ToString;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.ManyToOne;
+import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
+import jakarta.persistence.Transient;
import jakarta.persistence.UniqueConstraint;
import java.io.Serializable;
+import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
@@ -83,7 +83,15 @@ public class ServicePO extends BasePO implements Serializable {
@Column(name = "cluster_id")
private Long clusterId;
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
+ @Transient
+ @Column(name = "cluster_name")
+ private String clusterName;
+
+ @Transient
+ @Column(name = "user_group")
+ private String userGroup;
+
+ @ToString.Exclude
+ @OneToMany(mappedBy = "servicePO")
+ private List components;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
index 8dca61ce8..544cc16da 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
@@ -18,25 +18,19 @@
*/
package org.apache.bigtop.manager.dao.po;
-import org.apache.bigtop.manager.common.enums.JobState;
-
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
@@ -64,9 +58,9 @@ public class StagePO extends BasePO implements Serializable {
private String name;
@Column(name = "state")
- private JobState state;
+ private String state;
- @Column(name = "\"order\"")
+ @Column(name = "order")
private Integer order;
@Column(name = "service_name")
@@ -77,7 +71,7 @@ public class StagePO extends BasePO implements Serializable {
@Lob
@Basic(fetch = FetchType.LAZY)
- @Column(name = "\"context\"", length = 16777216)
+ @Column(name = "context", length = 16777216)
private String context;
@Column(name = "job_id")
@@ -88,13 +82,5 @@ public class StagePO extends BasePO implements Serializable {
@ToString.Exclude
@OneToMany(mappedBy = "stagePO")
- private List taskPOList;
-
- @ManyToOne
- @JoinColumn(name = "job_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private JobPO jobPO;
-
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
+ private List tasks;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
index d03045b6b..9c23c41b1 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
@@ -18,25 +18,18 @@
*/
package org.apache.bigtop.manager.dao.po;
-import org.apache.bigtop.manager.common.enums.Command;
-import org.apache.bigtop.manager.common.enums.JobState;
-
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import java.io.Serializable;
@@ -45,7 +38,7 @@
@EqualsAndHashCode(callSuper = true)
@Entity
@Table(
- name = "\"task\"",
+ name = "task",
indexes = {
@Index(name = "idx_task_cluster_id", columnList = "cluster_id"),
@Index(name = "idx_task_job_id", columnList = "job_id"),
@@ -68,7 +61,7 @@ public class TaskPO extends BasePO implements Serializable {
private String context;
@Column(name = "state")
- private JobState state;
+ private String state;
@Column(name = "service_name")
private String serviceName;
@@ -77,7 +70,7 @@ public class TaskPO extends BasePO implements Serializable {
private String componentName;
@Column(name = "command")
- private Command command;
+ private String command;
@Column(name = "custom_command")
private String customCommand;
@@ -107,16 +100,4 @@ public class TaskPO extends BasePO implements Serializable {
@Column(name = "cluster_id")
private Long clusterId;
-
- @ManyToOne
- @JoinColumn(name = "job_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private JobPO jobPO;
-
- @ManyToOne
- @JoinColumn(name = "stage_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private StagePO stagePO;
-
- @ManyToOne
- @JoinColumn(name = "cluster_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ClusterPO clusterPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java
index 71bd8d1b8..cec947081 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java
@@ -23,16 +23,12 @@
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
import jakarta.persistence.FetchType;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.JoinColumn;
import jakarta.persistence.Lob;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import java.io.Serializable;
@@ -63,8 +59,4 @@ public class TypeConfigPO extends BasePO implements Serializable {
@Column(name = "service_config_id")
private Long serviceConfigId;
-
- @ManyToOne
- @JoinColumn(name = "service_config_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ServiceConfigPO serviceConfigPO;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/UserPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/UserPO.java
index 8bd167dd8..731921461 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/UserPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/UserPO.java
@@ -33,7 +33,7 @@
@Data
@EqualsAndHashCode(callSuper = true)
@Entity
-@Table(name = "\"user\"")
+@Table(name = "user")
@TableGenerator(name = "user_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
public class UserPO extends BasePO implements Serializable {
@@ -45,7 +45,7 @@ public class UserPO extends BasePO implements Serializable {
@Column(name = "username")
private String username;
- @Column(name = "\"password\"")
+ @Column(name = "password")
private String password;
@Column(name = "nickname")
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
index aae9987e6..6b7d85e7c 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
@@ -59,7 +59,7 @@ public static String insert(TableMataData mataData, Entity entity, Stri
}
Object value = ReflectionUtils.invokeMethod(ps.getReadMethod(), entity);
if (!ObjectUtils.isEmpty(value)) {
- sql.VALUES(entry.getValue(), getTokenParam(entry.getKey()));
+ sql.VALUES("`" + entry.getValue() + "`", getTokenParam(entry.getKey()));
}
}
break;
@@ -91,7 +91,7 @@ public static String update(TableMataData mataData, Entity entity, Stri
}
Object value = ReflectionUtils.invokeMethod(ps.getReadMethod(), entity);
if (!ObjectUtils.isEmpty(value)) {
- sql.SET(getEquals(entry.getValue(), entry.getKey()));
+ sql.SET("`" + getEquals(entry.getValue() + "`", entry.getKey()));
}
}
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 2b0b9313c..08cd5686c 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostMapper.xml
@@ -92,7 +92,7 @@
host
- cluster_id = in
+ cluster_id in
#{hostname}
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
index 78e8c908e..c4df75e08 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
@@ -32,42 +32,55 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
select
+ , st.order, tk.hostname, st.id as s_id, tk.id as t_id
from
(select * from job
@@ -78,6 +91,28 @@
) h
left join stage st
on h.id = st.job_id
+ left join task tk
+ on tk.job_id = h.id and st.id = tk.stage_id
+
+
+
+ select
+
+
+
+ , st.order, tk.hostname
+ from
+ (select * from job
+
+
+ id = #{id}
+
+
+ ) h
+ left join stage st
+ on h.id = st.job_id
+ left join task tk
+ on tk.job_id = h.id and st.id = tk.stage_id
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
@@ -53,7 +53,7 @@
- , s.service_name, tc.*
+ , s.service_name, tc.type_name, tc.properties_json, tc.id as tc_id
from
(select * from service_config
@@ -74,7 +74,7 @@
- , s.service_name, tc.*
+ , s.service_name, tc.type_name, tc.properties_json
from
(select * from service_config
@@ -82,8 +82,8 @@
and cluster_id = #{clusterId}
-
- and service_name = #{serviceName}
+
+ and service_id = #{serviceId}
) r
@@ -99,7 +99,7 @@
- , s.service_name, tc.*
+ , s.service_name, tc.type_name, tc.properties_json
from
(select * from service_config
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 c0be16b34..5b175b8f0 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
@@ -27,17 +27,72 @@
id, service_name, display_name, service_desc, service_version, os_specifics, service_user, required_services, cluster_id
-
+
+ ${alias}.id, ${alias}.service_name, ${alias}.display_name, ${alias}.service_desc, ${alias}.service_version, ${alias}.os_specifics, ${alias}.service_user, ${alias}.required_services, ${alias}.cluster_id
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
select
-
+
+
+
+ , clus.cluster_name, clus.user_group, c.component_name, c.category, c.quick_link, c.id as cid
from
- service
+ (select * from service
cluster_id = #{clusterId}
+ ) s
+ left join
+ cluster clus
+ on s.cluster_id = clus.id
+ left join
+ component c
+ on c.service_id = s.id
+
+
+
+ select
+
+
+
+ , clus.cluster_name, clus.user_group
+ from
+ (select * from service
+
+
+ id = #{id}
+
+
+ ) s
+ left join
+ cluster clus
+ on s.cluster_id = clus.id
() {});
String configMapStr = JsonUtils.writeAsString(StackConfigUtils.extractConfigMap(properties));
- if (serviceConfigMap.containsKey(serviceConfigPO.getServicePO().getServiceName())) {
+ if (serviceConfigMap.containsKey(serviceConfigPO.getServiceName())) {
serviceConfigMap
- .get(serviceConfigPO.getServicePO().getServiceName())
+ .get(serviceConfigPO.getServiceName())
.put(typeConfigPO.getTypeName(), configMapStr);
} else {
Map hashMap = new HashMap<>();
hashMap.put(typeConfigPO.getTypeName(), configMapStr);
- serviceConfigMap.put(serviceConfigPO.getServicePO().getServiceName(), hashMap);
+ serviceConfigMap.put(serviceConfigPO.getServiceName(), hashMap);
}
}
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ComponentConverter.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ComponentConverter.java
index 73fff20eb..7a3cb2d50 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ComponentConverter.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ComponentConverter.java
@@ -43,8 +43,8 @@ public interface ComponentConverter {
@Mapping(target = "commandScript", source = "commandScript", qualifiedByName = "obj2Json")
@Mapping(target = "customCommands", source = "customCommands", qualifiedByName = "obj2Json")
@Mapping(target = "quickLink", source = "quickLink", qualifiedByName = "obj2Json")
- @Mapping(target = "servicePO", expression = "java(servicePO)")
- @Mapping(target = "clusterPO", expression = "java(clusterPO)")
+ @Mapping(target = "serviceId", expression = "java(servicePO.getId())")
+ @Mapping(target = "clusterId", expression = "java(clusterPO.getId())")
ComponentPO fromDTO2PO(ComponentDTO componentDTO, @Context ServicePO servicePO, @Context ClusterPO clusterPO);
ComponentVO fromDTO2VO(ComponentDTO componentDTO);
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/JobConverter.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/JobConverter.java
index aaac4ded8..b526c796f 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/JobConverter.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/JobConverter.java
@@ -38,7 +38,6 @@ public interface JobConverter {
@Mapping(target = "createTime", source = "createTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
@Mapping(target = "updateTime", source = "updateTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
- @Mapping(target = "stages", source = "stagePOList")
JobVO fromPO2VO(JobPO jobPO);
List fromPO2VO(List jobPO);
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/RepoConverter.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/RepoConverter.java
index 4f1e21001..84599d0b1 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/RepoConverter.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/RepoConverter.java
@@ -36,10 +36,10 @@ public interface RepoConverter {
RepoConverter INSTANCE = Mappers.getMapper(RepoConverter.class);
- @Mapping(target = "clusterPO", expression = "java(clusterPO)")
+ @Mapping(target = "clusterId", expression = "java(clusterPO.getId())")
RepoPO fromDTO2PO(RepoDTO repoDTO, @Context ClusterPO clusterPO);
- @Mapping(target = "clusterPO", expression = "java(clusterPO)")
+ @Mapping(target = "clusterId", expression = "java(clusterPO.getId())")
List fromDTO2PO(List repoDTOList, @Context ClusterPO clusterPO);
RepoInfo fromPO2Message(RepoPO repoPO);
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 320f204ce..b12b85223 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
@@ -43,7 +43,8 @@ public interface ServiceConverter {
@Mapping(target = "packageSpecifics", source = "packageSpecifics", qualifiedByName = "obj2Json")
@Mapping(target = "requiredServices", source = "requiredServices", qualifiedByName = "obj2Json")
- @Mapping(target = "clusterPO", expression = "java(clusterPO)")
+ @Mapping(target = "clusterId", expression = "java(clusterPO.getId())")
+ @Mapping(target = "components", ignore = true)
ServicePO fromDTO2PO(ServiceDTO serviceDTO, @Context ClusterPO clusterPO);
ServiceVO fromDTO2VO(ServiceDTO serviceDTO);
@@ -66,8 +67,7 @@ default List fromDTO2VO(List serviceDTOList, StackDTO sta
ServiceDTO fromModel2DTO(ServiceModel serviceModel);
@Mapping(target = "requiredServices", source = "requiredServices", qualifiedByName = "json2List")
- @Mapping(target = "clusterName", source = "clusterPO.clusterName")
- @Mapping(target = "serviceGroup", source = "clusterPO.userGroup")
+ @Mapping(target = "serviceGroup", source = "userGroup")
ServiceVO fromPO2VO(ServicePO servicePO);
List fromPO2VO(List servicePOList);
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/StageConverter.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/StageConverter.java
index 65a438026..eb7b254aa 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/StageConverter.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/StageConverter.java
@@ -35,6 +35,5 @@ public interface StageConverter {
@Mapping(target = "createTime", source = "createTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
@Mapping(target = "updateTime", source = "updateTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
- @Mapping(target = "tasks", source = "taskPOList")
StageVO fromPO2VO(StagePO stagePO);
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/StageVO.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/StageVO.java
index 302adefe0..f47429f43 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/StageVO.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/StageVO.java
@@ -18,8 +18,6 @@
*/
package org.apache.bigtop.manager.server.model.vo;
-import org.apache.bigtop.manager.common.enums.JobState;
-
import lombok.Data;
import java.util.List;
@@ -33,7 +31,7 @@ public class StageVO {
private List tasks;
- private JobState state;
+ private String state;
private Integer order;
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/TaskVO.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/TaskVO.java
index 18208e097..78911ec6c 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/TaskVO.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/vo/TaskVO.java
@@ -18,8 +18,6 @@
*/
package org.apache.bigtop.manager.server.model.vo;
-import org.apache.bigtop.manager.common.enums.JobState;
-
import lombok.Data;
@Data
@@ -29,7 +27,7 @@ public class TaskVO {
private String name;
- private JobState state;
+ private String state;
private String hostname;
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
index a0029610f..0be7d7aaf 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
@@ -19,11 +19,9 @@
package org.apache.bigtop.manager.server.service.impl;
import org.apache.bigtop.manager.common.enums.JobState;
-import org.apache.bigtop.manager.dao.mapper.ClusterMapper;
import org.apache.bigtop.manager.dao.mapper.JobMapper;
import org.apache.bigtop.manager.dao.mapper.StageMapper;
import org.apache.bigtop.manager.dao.mapper.TaskMapper;
-import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.bigtop.manager.dao.po.JobPO;
import org.apache.bigtop.manager.dao.po.StagePO;
import org.apache.bigtop.manager.dao.po.TaskPO;
@@ -55,9 +53,6 @@ public class CommandServiceImpl implements CommandService {
@Resource
private JobScheduler jobScheduler;
- @Resource
- private ClusterMapper clusterMapper;
-
@Resource
private JobMapper jobMapper;
@@ -94,29 +89,34 @@ public CommandVO command(CommandDTO commandDTO) {
protected JobPO saveJob(Job job) {
Long clusterId = job.getJobContext().getCommandDTO().getClusterId();
- ClusterPO clusterPO = clusterId == null ? null : clusterMapper.findById(clusterId);
JobPO jobPO = job.getJobPO();
- jobPO.setClusterId(clusterPO.getId());
+ if (clusterId != null) {
+ jobPO.setClusterId(clusterId);
+ }
jobPO.setState(JobState.PENDING.getName());
jobMapper.save(jobPO);
for (int i = 0; i < job.getStages().size(); i++) {
Stage stage = job.getStages().get(i);
StagePO stagePO = stage.getStagePO();
- stagePO.setClusterId(clusterPO.getId());
+ if (clusterId != null) {
+ stagePO.setClusterId(clusterId);
+ }
stagePO.setJobId(jobPO.getId());
stagePO.setOrder(i + 1);
- stagePO.setState(JobState.PENDING);
+ stagePO.setState(JobState.PENDING.getName());
stageMapper.save(stagePO);
for (int j = 0; j < stage.getTasks().size(); j++) {
Task task = stage.getTasks().get(j);
TaskPO taskPO = task.getTaskPO();
- taskPO.setClusterId(clusterPO.getId());
+ if (clusterId != null) {
+ taskPO.setClusterId(clusterId);
+ }
taskPO.setJobId(jobPO.getId());
taskPO.setStageId(stagePO.getId());
- taskPO.setState(JobState.PENDING);
+ taskPO.setState(JobState.PENDING.getName());
taskMapper.save(taskPO);
}
}
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 39d6bb2f3..6440b64d3 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
@@ -38,7 +38,6 @@
import lombok.extern.slf4j.Slf4j;
import jakarta.annotation.Resource;
-
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
index 39cc9ae87..bee2952be 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
@@ -85,15 +85,13 @@ public PageVO list(Long clusterId) {
@Override
public JobVO get(Long id) {
- JobPO jobPO =
- jobMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.JOB_NOT_FOUND));
+ JobPO jobPO = jobMapper.findByIdJoin(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.JOB_NOT_FOUND));
return JobConverter.INSTANCE.fromPO2VO(jobPO);
}
@Override
public JobVO retry(Long id) {
- JobPO jobPO =
- jobMapper.findOptionalById(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.JOB_NOT_FOUND));
+ JobPO jobPO = jobMapper.findByIdJoin(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.JOB_NOT_FOUND));
if (JobState.fromString(jobPO.getState()) != JobState.FAILED) {
throw new ApiException(ApiExceptionEnum.JOB_NOT_RETRYABLE);
}
@@ -106,13 +104,13 @@ public JobVO retry(Long id) {
}
private void resetJobStatusInDB(JobPO jobPO) {
- for (StagePO stagePO : jobPO.getStagePOList()) {
- for (TaskPO taskPO : stagePO.getTaskPOList()) {
- taskPO.setState(JobState.PENDING);
+ for (StagePO stagePO : jobPO.getStages()) {
+ for (TaskPO taskPO : stagePO.getTasks()) {
+ taskPO.setState(JobState.PENDING.getName());
taskMapper.updateById(taskPO);
}
- stagePO.setState(JobState.PENDING);
+ stagePO.setState(JobState.PENDING.getName());
stageMapper.updateById(stagePO);
}
@@ -131,7 +129,7 @@ private Job recreateJob(JobPO jobPO) {
job.loadJobPO(jobPO);
for (int i = 0; i < job.getStages().size(); i++) {
Stage stage = job.getStages().get(i);
- StagePO stagePO = findCorrectStagePO(jobPO.getStagePOList(), i + 1);
+ StagePO stagePO = findCorrectStagePO(jobPO.getStages(), i + 1);
if (stagePO == null) {
throw new ApiException(ApiExceptionEnum.JOB_NOT_RETRYABLE);
}
@@ -141,7 +139,7 @@ private Job recreateJob(JobPO jobPO) {
for (int j = 0; j < stage.getTasks().size(); j++) {
Task task = stage.getTasks().get(j);
TaskPO taskPO = findCorrectTaskPO(
- stagePO.getTaskPOList(), task.getTaskContext().getHostname());
+ stagePO.getTasks(), task.getTaskContext().getHostname());
if (taskPO == null) {
throw new ApiException(ApiExceptionEnum.JOB_NOT_RETRYABLE);
}
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 440247751..972cda590 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
@@ -24,13 +24,13 @@
import org.apache.bigtop.manager.dao.mapper.HostComponentMapper;
import org.apache.bigtop.manager.dao.mapper.ServiceConfigMapper;
import org.apache.bigtop.manager.dao.mapper.ServiceMapper;
-import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.bigtop.manager.dao.po.ComponentPO;
import org.apache.bigtop.manager.dao.po.HostComponentPO;
-import org.apache.bigtop.manager.dao.po.HostPO;
import org.apache.bigtop.manager.dao.po.ServiceConfigPO;
import org.apache.bigtop.manager.dao.po.ServicePO;
import org.apache.bigtop.manager.dao.po.TypeConfigPO;
+import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
+import org.apache.bigtop.manager.server.exception.ApiException;
import org.apache.bigtop.manager.server.model.converter.ServiceConverter;
import org.apache.bigtop.manager.server.model.converter.TypeConfigConverter;
import org.apache.bigtop.manager.server.model.dto.PropertyDTO;
@@ -68,40 +68,39 @@ public class ServiceServiceImpl implements ServiceService {
@Override
public List list(Long clusterId) {
List res = new ArrayList<>();
+
+ List servicePOList = serviceMapper.findAllByClusterId(clusterId);
+ List allByClusterId = hostComponentMapper.findAllByClusterId(clusterId);
Map> serviceIdToHostComponent =
- hostComponentMapper.findAllByClusterId(clusterId).stream()
- .collect(Collectors.groupingBy(HostComponentPO::getServiceId));
+ allByClusterId.stream().collect(Collectors.groupingBy(HostComponentPO::getServiceId));
+ Map> componentIdToHostComponent =
+ allByClusterId.stream().collect(Collectors.groupingBy(HostComponentPO::getComponentId));
- for (Map.Entry> entry : serviceIdToHostComponent.entrySet()) {
- List hostComponentPOList = entry.getValue();
- HostComponentPO hostComponentPO1 = hostComponentPOList.get(0);
- ServicePO servicePO = hostComponentPOList.get(0).getComponentPO().getServicePO();
+ for (ServicePO servicePO : servicePOList) {
+ Long serviceId = servicePO.getId();
ServiceVO serviceVO = ServiceConverter.INSTANCE.fromPO2VO(servicePO);
+ List components = servicePO.getComponents();
serviceVO.setQuickLinks(new ArrayList<>());
- boolean isHealthy = true;
- boolean isClient = true;
- for (HostComponentPO hostComponentPO : hostComponentPOList) {
- ComponentPO componentPO = hostComponentPO.getComponentPO();
+ for (ComponentPO componentPO : components) {
+ Long componentId = componentPO.getId();
+ List hostComponentPOList = componentIdToHostComponent.get(componentId);
String quickLink = componentPO.getQuickLink();
if (StringUtils.isNotBlank(quickLink)) {
- QuickLinkVO quickLinkVO = resolveQuickLink(hostComponentPO, quickLink);
- serviceVO.getQuickLinks().add(quickLinkVO);
- }
-
- String category = componentPO.getCategory();
- if (!category.equalsIgnoreCase(ComponentCategories.CLIENT)) {
- isClient = false;
+ List quickLinkVOList =
+ resolveQuickLink(hostComponentPOList, quickLink, clusterId, serviceId);
+ serviceVO.getQuickLinks().addAll(quickLinkVOList);
}
-
- MaintainState expectedState = category.equalsIgnoreCase(ComponentCategories.CLIENT)
+ }
+ 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;
- if (!MaintainState.fromString(hostComponentPO.getState()).equals(expectedState)) {
- isHealthy = false;
- }
- }
+ return hostComponentPO.getState().equals(expectedState.getName());
+ });
serviceVO.setIsClient(isClient);
serviceVO.setIsHealthy(isHealthy);
@@ -113,41 +112,43 @@ public List list(Long clusterId) {
@Override
public ServiceVO get(Long id) {
- ServicePO servicePO = serviceMapper.findOptionalById(id).orElse(new ServicePO());
+ ServicePO servicePO =
+ serviceMapper.findByIdJoin(id).orElseThrow(() -> new ApiException(ApiExceptionEnum.SERVICE_NOT_FOUND));
return ServiceConverter.INSTANCE.fromPO2VO(servicePO);
}
- private QuickLinkVO resolveQuickLink(HostComponentPO hostComponentPO, String quickLinkJson) {
- QuickLinkVO quickLinkVO = new QuickLinkVO();
+ private List resolveQuickLink(
+ List hostComponentPOList, String quickLinkJson, Long clusterId, Long serviceId) {
+ List quickLinkVOList = new ArrayList<>();
QuickLinkDTO quickLinkDTO = JsonUtils.readFromString(quickLinkJson, QuickLinkDTO.class);
- quickLinkVO.setDisplayName(quickLinkDTO.getDisplayName());
- ComponentPO componentPO = hostComponentPO.getComponentPO();
- ClusterPO clusterPO = componentPO.getClusterPO();
- HostPO hostPO = hostComponentPO.getHostPO();
- ServicePO servicePO = componentPO.getServicePO();
ServiceConfigPO serviceConfigPO =
- serviceConfigMapper.findByClusterIdAndServiceIdAndSelectedIsTrue(clusterPO.getId(), servicePO.getId());
+ serviceConfigMapper.findByClusterIdAndServiceIdAndSelectedIsTrue(clusterId, serviceId);
List typeConfigPOList = serviceConfigPO.getConfigs();
+ String httpPort = quickLinkDTO.getHttpPortDefault();
// Use HTTP for now, need to handle https in the future
for (TypeConfigPO typeConfigPO : typeConfigPOList) {
TypeConfigDTO typeConfigDTO = TypeConfigConverter.INSTANCE.fromPO2DTO(typeConfigPO);
for (PropertyDTO propertyDTO : typeConfigDTO.getProperties()) {
if (propertyDTO.getName().equals(quickLinkDTO.getHttpPortProperty())) {
- String port = propertyDTO.getValue().contains(":")
+
+ httpPort = propertyDTO.getValue().contains(":")
? propertyDTO.getValue().split(":")[1]
: propertyDTO.getValue();
- String url = "http://" + hostPO.getHostname() + ":" + port;
- quickLinkVO.setUrl(url);
- return quickLinkVO;
}
}
}
- String url = "http://" + hostPO.getHostname() + ":" + quickLinkDTO.getHttpPortDefault();
- quickLinkVO.setUrl(url);
- return quickLinkVO;
+ for (HostComponentPO hostComponentPO : hostComponentPOList) {
+ QuickLinkVO quickLinkVO = new QuickLinkVO();
+ quickLinkVO.setDisplayName(quickLinkDTO.getDisplayName());
+ String url = "http://" + hostComponentPO.getHostname() + ":" + httpPort;
+ quickLinkVO.setUrl(url);
+ quickLinkVOList.add(quickLinkVO);
+ }
+
+ return quickLinkVOList;
}
}
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/TaskLogServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/TaskLogServiceImpl.java
index 99b9dece6..6b612bb5b 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/TaskLogServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/TaskLogServiceImpl.java
@@ -44,10 +44,11 @@ public void registerSink(Long taskId, FluxSink sink) {
TaskPO taskPO = taskMapper.findById(taskId);
String hostname = taskPO.getHostname();
- if (taskPO.getState() == JobState.PENDING || taskPO.getState() == JobState.CANCELED) {
+ if (JobState.fromString(taskPO.getState()) == JobState.PENDING
+ || JobState.fromString(taskPO.getState()) == JobState.CANCELED) {
new Thread(() -> {
sink.next("There is no log when task is in status: "
- + taskPO.getState().name().toLowerCase()
+ + taskPO.getState().toLowerCase()
+ ", please reopen the window when status changed");
sink.complete();
})
diff --git a/bigtop-manager-server/src/main/resources/application.yml b/bigtop-manager-server/src/main/resources/application.yml
index 4b42f1c5f..855d24458 100644
--- a/bigtop-manager-server/src/main/resources/application.yml
+++ b/bigtop-manager-server/src/main/resources/application.yml
@@ -31,7 +31,7 @@ spring:
banner-mode: log
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://192.168.1.81:3306/bigtop_manager
+ url: jdbc:mysql://localhost:3306/bigtop_manager
username: root
password: root
type: com.zaxxer.hikari.HikariDataSource
diff --git a/bigtop-manager-server/src/main/resources/assembly/server.xml b/bigtop-manager-server/src/main/resources/assembly/server.xml
index 3049ca567..c8f303f48 100644
--- a/bigtop-manager-server/src/main/resources/assembly/server.xml
+++ b/bigtop-manager-server/src/main/resources/assembly/server.xml
@@ -47,6 +47,10 @@
0755
0755
+
+ ${basedir}/src/main/resources/ddl
+ ddl
+
${basedir}/../bigtop-manager-ui/dist
./ui
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 081f49d66..b47f2d30e 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
@@ -38,7 +38,7 @@ DEALLOCATE PREPARE statement;
CREATE TABLE `audit_log`
(
- `id` BIGINT NOT NULL,
+ `id` BIGINT NOT NULL AUTO_INCREMENT,
`args` LONGTEXT,
`create_by` BIGINT,
`create_time` DATETIME,
@@ -53,15 +53,6 @@ CREATE TABLE `audit_log`
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-CREATE TABLE `sequence`
-(
- `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
- `seq_name` VARCHAR(100) NOT NULL,
- `seq_count` BIGINT(20) DEFAULT NULL,
- PRIMARY KEY (`id`),
- UNIQUE KEY `uk_seq_name` (`seq_name`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
CREATE TABLE `user`
(
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -100,7 +91,7 @@ CREATE TABLE `cluster`
CREATE TABLE `component`
(
- `id` BIGINT NOT NULL,
+ `id` BIGINT NOT NULL AUTO_INCREMENT,
`category` VARCHAR(255),
`command_script` VARCHAR(255),
`component_name` VARCHAR(255),
@@ -122,7 +113,7 @@ CREATE TABLE `component`
CREATE TABLE `host_component`
(
- `id` BIGINT NOT NULL,
+ `id` BIGINT NOT NULL AUTO_INCREMENT,
`create_by` BIGINT,
`create_time` DATETIME,
`state` VARCHAR(255),
@@ -198,7 +189,7 @@ CREATE TABLE `stack`
CREATE TABLE `task`
(
- `id` BIGINT NOT NULL,
+ `id` BIGINT NOT NULL AUTO_INCREMENT,
`command` VARCHAR(255),
`component_name` VARCHAR(255),
`content` LONGTEXT,
@@ -241,7 +232,7 @@ CREATE TABLE `job`
CREATE TABLE `type_config`
(
- `id` BIGINT NOT NULL,
+ `id` BIGINT NOT NULL AUTO_INCREMENT,
`create_by` BIGINT,
`create_time` DATETIME,
`properties_json` LONGTEXT,
@@ -254,7 +245,7 @@ CREATE TABLE `type_config`
CREATE TABLE `service`
(
- `id` BIGINT NOT NULL,
+ `id` BIGINT NOT NULL AUTO_INCREMENT,
`create_by` BIGINT,
`create_time` DATETIME,
`display_name` VARCHAR(255),
@@ -274,7 +265,7 @@ CREATE TABLE `service`
CREATE TABLE `service_config`
(
- `id` BIGINT NOT NULL,
+ `id` BIGINT NOT NULL AUTO_INCREMENT,
`config_desc` VARCHAR(255),
`create_by` BIGINT,
`create_time` DATETIME,
@@ -291,7 +282,7 @@ CREATE TABLE `service_config`
CREATE TABLE `setting`
(
- `id` BIGINT NOT NULL,
+ `id` BIGINT NOT NULL AUTO_INCREMENT,
`config_data` LONGTEXT,
`create_by` BIGINT,
`create_time` DATETIME,
@@ -322,24 +313,6 @@ CREATE TABLE `stage`
KEY `idx_job_id` (`job_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--- Initialize sequence table.
-INSERT INTO sequence(seq_name, seq_count)
-VALUES ('audit_log_generator', 0),
- ('cluster_generator', 0),
- ('stack_generator', 0),
- ('service_generator', 0),
- ('task_generator', 0),
- ('host_generator', 0),
- ('user_generator', 0),
- ('repo_generator', 0),
- ('host_component_generator', 0),
- ('service_config_generator', 0),
- ('job_generator', 0),
- ('type_config_generator', 0),
- ('component_generator', 0),
- ('stage_generator', 0),
- ('settings_generator', 0);
-
-- Adding default admin user
INSERT INTO bigtop_manager.user (id, create_time, update_time, nickname, password, status, username)
VALUES (1, now(), now(), 'Administrator', '21232f297a57a5a743894a0e4a801fc3', true, 'admin');
\ No newline at end of file
diff --git a/dev-support/docker/rocky8/build-containers.sh b/dev-support/docker/rocky8/build-containers.sh
index effd34f2f..86f4184eb 100755
--- a/dev-support/docker/rocky8/build-containers.sh
+++ b/dev-support/docker/rocky8/build-containers.sh
@@ -115,6 +115,7 @@ docker exec bigtop-manager-server bash -c "sed -i 's/host: localhost/host: $BIGT
docker exec bigtop-manager-agent-01 bash -c "sed -i 's/host: localhost/host: $BIGTOP_MANAGER_SERVER_IP/' /opt/bigtop-manager-agent/conf/application.yml"
docker exec bigtop-manager-agent-02 bash -c "sed -i 's/host: localhost/host: $BIGTOP_MANAGER_SERVER_IP/' /opt/bigtop-manager-agent/conf/application.yml"
+docker exec bigtop-manager-server bash -c "mysql -uroot -proot -Dbigtop_manager < /opt/bigtop-manager-server/ddl/MySQL-DDL-CREATE.sql"
docker exec bigtop-manager-server bash -c "nohup /bin/bash /opt/bigtop-manager-server/bin/start.sh --debug > /dev/null 2>&1 &"
docker exec bigtop-manager-server bash -c "nohup /bin/bash /opt/bigtop-manager-agent/bin/start.sh --debug > /dev/null 2>&1 &"
docker exec bigtop-manager-agent-01 bash -c "nohup /bin/bash /opt/bigtop-manager-agent/bin/start.sh > /dev/null 2>&1 &"
From e0dc92feaf2eadbdf7ee25f5ba9137c04ac082dd Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Tue, 27 Aug 2024 17:13:32 +0800
Subject: [PATCH 06/17] update
---
.../dao/mapper/HostComponentMapper.java | 2 -
.../manager/dao/po/HostComponentPO.java | 12 ---
.../resources/mapper/mysql/ClusterMapper.xml | 4 +-
.../mapper/mysql/ComponentMapper.xml | 12 +--
.../mapper/mysql/HostComponentMapper.xml | 77 +++++++++++++------
.../resources/mapper/mysql/HostMapper.xml | 14 ++--
.../main/resources/mapper/mysql/JobMapper.xml | 10 +--
.../resources/mapper/mysql/RepoMapper.xml | 4 +-
.../mapper/mysql/ServiceConfigMapper.xml | 12 +--
.../resources/mapper/mysql/ServiceMapper.xml | 8 +-
bigtop-manager-server/pom.xml | 2 +-
.../server/command/job/AbstractJob.java | 6 +-
.../server/command/job/ServiceInstallJob.java | 8 +-
.../server/command/stage/AbstractStage.java | 3 +-
.../server/command/task/AbstractTask.java | 3 +-
.../command/task/CacheFileUpdateTask.java | 11 ++-
.../model/converter/ClusterConverter.java | 1 +
.../service/impl/ClusterServiceImpl.java | 4 +-
.../service/impl/CommandServiceImpl.java | 3 +
.../server/service/impl/HostServiceImpl.java | 8 +-
.../src/main/resources/application.yml | 8 +-
.../main/resources/ddl/MySQL-DDL-CREATE.sql | 5 --
22 files changed, 114 insertions(+), 103 deletions(-)
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
index 8b41a1cea..962ff62e1 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
@@ -44,8 +44,6 @@ List findAllByClusterIdAndComponentNameAndHostnameIn(
List findAllByClusterId(@Param("clusterId") Long clusterId);
- HostComponentPO findByComponentPOComponentNameAndHostPOHostname(String componentName, String hostName);
-
List findAllByClusterIdAndHostId(@Param("clusterId") Long clusterId, @Param("hostId") Long hostId);
List findAllByClusterIdAndServiceId(
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
index 476d20bc4..536b693a6 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
@@ -22,15 +22,11 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.ConstraintMode;
import jakarta.persistence.Entity;
-import jakarta.persistence.ForeignKey;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Index;
-import jakarta.persistence.JoinColumn;
-import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import jakarta.persistence.TableGenerator;
import jakarta.persistence.Transient;
@@ -113,12 +109,4 @@ public class HostComponentPO extends BasePO implements Serializable {
@Transient
@Column(name = "hostname")
private String hostname;
-
- @ManyToOne
- @JoinColumn(name = "host_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private HostPO hostPO;
-
- @ManyToOne
- @JoinColumn(name = "component_id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
- private ComponentPO componentPO;
}
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 d0e9fec3c..2ad8236b2 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ClusterMapper.xml
@@ -56,7 +56,7 @@
, s.stack_name, s.stack_version
from
cluster r
- left join stack s
+ inner join stack s
on r.stack_id = s.id
@@ -74,7 +74,7 @@
, s.stack_name, s.stack_version
from
cluster r
- left join stack s
+ inner join stack s
on r.stack_id = s.id
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 bc3400522..2f19b2c05 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ComponentMapper.xml
@@ -52,13 +52,13 @@
- ,c.cluster_name, s.service_name
+ ,c.cluster_name, s.service_name
from
component r
- left join cluster c
+ inner join cluster c
on r.cluster_id = c.id
- left join service s
- on r.service_id = s.id
+ inner join service s
+ on r.service_id = s.id
r.cluster_id = #{clusterId}
@@ -80,7 +80,7 @@
) r
- left join (select * from service
+ inner join (select * from service
service_name in
@@ -102,7 +102,7 @@
, s.service_name
from
component r
- left join service s
+ inner join service s
on r.service_id = s.id and r.cluster_id = s.cluster_id
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 d10d494a9..c57d5036c 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostComponentMapper.xml
@@ -38,7 +38,7 @@
from
host_component hc
- left join (select * from component
+ inner join (select * from component
component_name = #{componentName}
@@ -60,7 +60,7 @@
, c.service_id, c.component_name, c.display_name, c.category, s.service_name, clus.cluster_name, ht.hostname
from
host_component hc
- left join (select * from component
+ inner join (select * from component
cluster_id = #{clusterId}
@@ -71,11 +71,11 @@
) c
on hc.component_id = c.id
- left join service s
+ inner join service s
on c.service_id = s.id
- left join cluster clus
+ inner join cluster clus
on c.cluster_id = clus.id
- left join host ht
+ inner join host ht
on hc.host_id = ht.id
@@ -87,9 +87,9 @@
from
host_component hc
- left join (select * from host
+ inner join (select * from host
-
+
hostname = #{hostname}
@@ -98,17 +98,48 @@
) h
on hc.host_id = h.id
- left join (select * from component
+ inner join (select * from component
-
+
component_name = #{componentName}
+
+ ) c
+ on hc.component_id = c.id and h.cluster_id = c.cluster_id
+ limit 1
+
+
+
+ select
+
+
+
+ , c.component_name
+ from
+ host_component hc
+ inner join (select * from host
+
+
+ hostname in
+
+ #{hostname}
+
+
and cluster_id = #{clusterId}
+ ) h
+ on hc.host_id = h.id
+ inner join (select * from component
+
+
+ component_name = #{componentName}
+
+
) c
- on hc.component_id = c.id
+ on hc.component_id = c.id and h.cluster_id = c.cluster_id
cluster_id = #{clusterId}
@@ -148,7 +179,7 @@
, c.service_id, c.component_name, c.display_name, c.category, s.service_name, clus.cluster_name, ht.hostname
from
host_component hc
- left join (select * from component
+ inner join (select * from component
cluster_id = #{clusterId}
@@ -156,11 +187,11 @@
) c
on hc.component_id = c.id
- left join service s
+ inner join service s
on c.service_id = s.id
- left join cluster clus
+ inner join cluster clus
on c.cluster_id = clus.id
- left join host ht
+ inner join host ht
on hc.host_id = ht.id
@@ -173,18 +204,18 @@
,st.stack_name,st.stack_version,ser.service_name,ser.service_user,clu.root,c.component_name,c.command_script,hst.hostname
from
host_component hc
- left join host hst
+ inner join host hst
on hc.host_id = hst.id
- left join
+ inner join
component c
on hc.component_id = c.id
- left join
+ inner join
cluster clu
on c.cluster_id = clu.id
- left join
+ inner join
service ser
on c.service_id=ser.id and c.cluster_id = ser.cluster_id
- left join stack st
+ inner join stack st
on clu.stack_id = st.id
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 08cd5686c..921f26229 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/HostMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/HostMapper.xml
@@ -31,14 +31,14 @@
${alias}.id, ${alias}.hostname, ${alias}.ipv4, ${alias}.ipv6, ${alias}.os, ${alias}.arch, ${alias}.available_processors, ${alias}.free_memory_size, ${alias}.total_memory_size, ${alias}.free_disk, ${alias}.total_disk, ${alias}.state, ${alias}.cluster_id
-
+
select
from
host
-
- hostname=#{hostname}
+
+ hostname = #{hostname}
limit 1
@@ -58,7 +58,7 @@
) h
- left join
+ inner join
cluster clus
on h.cluster_id = clus.id
limit 1
@@ -73,7 +73,7 @@
,clus.cluster_name
from
host h
- left join
+ inner join
(select * from cluster
@@ -92,7 +92,7 @@
host
- cluster_id in
+ hostname in
#{hostname}
@@ -104,7 +104,7 @@
insert into host (hostname, ipv4, ipv6, os, arch, available_processors, free_memory_size, total_memory_size, free_disk, total_disk, state, cluster_id)
values
- (#{host.hostname}, #{host.ipv4}, #{host.ipv6}, #{host.os}, #{host.arch}, #{host.available_processors}, #{host.free_memory_size}, #{host.total_memory_size}, #{host.free_disk}, #{host.total_disk}, #{host.state}, #{host.cluster_id})
+ (#{host.hostname}, #{host.ipv4}, #{host.ipv6}, #{host.os}, #{host.arch}, #{host.availableProcessors}, #{host.freeMemorySize}, #{host.totalMemorySize}, #{host.freeDisk}, #{host.totalDisk}, #{host.state}, #{host.clusterId})
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
index c4df75e08..40b866083 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
@@ -89,9 +89,9 @@
) h
- left join stage st
+ inner join stage st
on h.id = st.job_id
- left join task tk
+ inner join task tk
on tk.job_id = h.id and st.id = tk.stage_id
@@ -109,9 +109,9 @@
) h
- left join stage st
+ inner join stage st
on h.id = st.job_id
- left join task tk
+ inner join task tk
on tk.job_id = h.id and st.id = tk.stage_id
@@ -123,7 +123,7 @@
from
(select * from job where cluster_id is null) h
- left join stage st
+ inner join stage st
on h.id = st.job_id
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml
index 929115885..020fe413b 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/RepoMapper.xml
@@ -41,10 +41,10 @@
- insert into repo (cluster_name, cluster_type, root, user_group, packages, repo_template, state, selected)
+ insert into repo (base_url, os, arch, repo_id, repo_name, cluster_id)
values
- (#{cluster.clusterName},#{cluster.clusterType},#{cluster.root},#{cluster.userGroup},#{cluster.packages},#{cluster.repoTemplate},#{cluster.state},#{cluster.selected})
+ (#{cluster.baseUrl},#{cluster.os},#{cluster.arch},#{cluster.repoId},#{cluster.repoName},#{cluster.clusterId})
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceConfigMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceConfigMapper.xml
index a97d50bb4..0cf19ee2b 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceConfigMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceConfigMapper.xml
@@ -62,9 +62,9 @@
) r
- left join service s
+ inner join service s
on r.service_id = s.id
- left join type_config tc
+ inner join type_config tc
on r.id = tc.service_config_id
order by version desc
@@ -87,9 +87,9 @@
) r
- left join service s
+ inner join service s
on r.service_id = s.id
- left join type_config tc
+ inner join type_config tc
on r.id = tc.service_config_id
limit 1
@@ -109,9 +109,9 @@
) r
- left join service s
+ inner join service s
on r.service_id = s.id
- left join type_config tc
+ inner join type_config tc
on r.id = tc.service_config_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 5b175b8f0..147636673 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
@@ -67,10 +67,10 @@
) s
- left join
+ inner join
cluster clus
on s.cluster_id = clus.id
- left join
+ inner join
component c
on c.service_id = s.id
@@ -90,7 +90,7 @@
) s
- left join
+ inner join
cluster clus
on s.cluster_id = clus.id
@@ -106,7 +106,7 @@
cluster_id = #{clusterId}
- service_name = #{serviceName}
+ and service_name = #{serviceName}
diff --git a/bigtop-manager-server/pom.xml b/bigtop-manager-server/pom.xml
index eb603fa54..408b7f94a 100644
--- a/bigtop-manager-server/pom.xml
+++ b/bigtop-manager-server/pom.xml
@@ -83,7 +83,7 @@
com.mysql
mysql-connector-j
-
+ provided
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
index 74b79a382..d3503f94e 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
@@ -33,10 +33,13 @@
import org.apache.bigtop.manager.server.command.task.Task;
import org.apache.bigtop.manager.server.holder.SpringContextHolder;
+import lombok.extern.slf4j.Slf4j;
+
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.LinkedBlockingQueue;
+@Slf4j
public abstract class AbstractJob implements Job {
protected StackMapper stackMapper;
@@ -84,9 +87,8 @@ protected void beforeCreateStages() {
@Override
public void beforeRun() {
- JobPO jobPO = getJobPO();
jobPO.setState(JobState.PROCESSING.getName());
- jobMapper.save(jobPO);
+ jobMapper.updateById(jobPO);
}
@Override
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 29de8ec78..a3a242f24 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
@@ -103,7 +103,7 @@ protected List findHostnamesByComponentName(String componentName) {
.findAllByClusterIdAndComponentNameAndHostnameIn(
clusterPO.getId(), componentName, hostnames)
.stream()
- .map(hostComponent -> hostComponent.getHostPO().getHostname())
+ .map(HostComponentPO::getHostname)
.toList();
hostnames.removeAll(existHostnames);
@@ -165,13 +165,13 @@ private void upsertService(ServicePO servicePO, ServiceCommandDTO serviceCommand
// 4. Persist hostComponent
for (String hostname : componentHostDTO.getHostnames()) {
- HostComponentPO hostComponentPO =
- hostComponentMapper.findByComponentPOComponentNameAndHostPOHostname(componentName, hostname);
+ HostComponentPO hostComponentPO = hostComponentMapper.findByClusterIdAndComponentNameAndHostname(
+ clusterId, componentName, hostname);
if (hostComponentPO == null) {
HostPO hostPO = hostMapper.findByHostname(hostname);
hostComponentPO = new HostComponentPO();
- hostComponentPO.setHostPO(hostPO);
+ hostComponentPO.setHostId(hostPO.getId());
hostComponentPO.setComponentId(componentPO.getId());
hostComponentPO.setState(MaintainState.UNINSTALLED.getName());
hostComponentMapper.save(hostComponentPO);
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/AbstractStage.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/AbstractStage.java
index 06af8a3a7..0598b833e 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/AbstractStage.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/AbstractStage.java
@@ -72,9 +72,8 @@ protected String getComponentName() {
@Override
public void beforeRun() {
- StagePO stagePO = getStagePO();
stagePO.setState(JobState.PROCESSING.getName());
- stageMapper.save(stagePO);
+ stageMapper.updateById(stagePO);
}
@Override
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractTask.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractTask.java
index 6f1664ca0..934bd2386 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractTask.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/task/AbstractTask.java
@@ -64,9 +64,8 @@ protected String getCustomCommand() {
@Override
public void beforeRun() {
- TaskPO taskPO = getTaskPO();
taskPO.setState(JobState.PROCESSING.getName());
- taskMapper.save(taskPO);
+ taskMapper.updateById(taskPO);
}
@Override
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 9b9a5941a..ee0238a9a 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
@@ -166,15 +166,14 @@ private void genFullCaches() {
hostMap = new HashMap<>();
hostComponentPOList.forEach(x -> {
- if (hostMap.containsKey(x.getComponentPO().getComponentName())) {
- hostMap.get(x.getComponentPO().getComponentName())
- .add(x.getHostPO().getHostname());
+ if (hostMap.containsKey(x.getComponentName())) {
+ hostMap.get(x.getComponentName()).add(x.getHostname());
} else {
Set set = new HashSet<>();
- set.add(x.getHostPO().getHostname());
- hostMap.put(x.getComponentPO().getComponentName(), set);
+ set.add(x.getHostname());
+ hostMap.put(x.getComponentName(), set);
}
- hostMap.get(x.getComponentPO().getComponentName()).add(x.getHostPO().getHostname());
+ hostMap.get(x.getComponentName()).add(x.getHostname());
});
Set hostNameSet = hostPOList.stream().map(HostPO::getHostname).collect(Collectors.toSet());
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 96fbca630..70f909341 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
@@ -49,5 +49,6 @@ public interface ClusterConverter {
@Mapping(target = "stackName", expression = "java(stackPO.getStackName())")
@Mapping(target = "stackVersion", expression = "java(stackPO.getStackVersion())")
+ @Mapping(target = "stackId", expression = "java(stackPO.getId())")
ClusterPO fromDTO2PO(ClusterDTO clusterDTO, StackDTO stackDTO, @Context StackPO stackPO);
}
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 8fac62a58..e3e530c36 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
@@ -87,8 +87,10 @@ public ClusterVO save(ClusterDTO clusterDTO) {
clusterMapper.findByClusterName(clusterDTO.getClusterName()).orElse(new ClusterPO());
if (oldClusterPO.getId() != null) {
clusterPO.setId(oldClusterPO.getId());
+ clusterMapper.updateById(clusterPO);
+ } else {
+ clusterMapper.save(clusterPO);
}
- clusterMapper.save(clusterPO);
hostService.batchSave(clusterPO.getId(), clusterDTO.getHostnames());
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
index 0be7d7aaf..4a54102cc 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
@@ -96,6 +96,7 @@ protected JobPO saveJob(Job job) {
}
jobPO.setState(JobState.PENDING.getName());
jobMapper.save(jobPO);
+ job.loadJobPO(jobPO);
for (int i = 0; i < job.getStages().size(); i++) {
Stage stage = job.getStages().get(i);
@@ -107,6 +108,7 @@ protected JobPO saveJob(Job job) {
stagePO.setOrder(i + 1);
stagePO.setState(JobState.PENDING.getName());
stageMapper.save(stagePO);
+ stage.loadStagePO(stagePO);
for (int j = 0; j < stage.getTasks().size(); j++) {
Task task = stage.getTasks().get(j);
@@ -118,6 +120,7 @@ protected JobPO saveJob(Job job) {
taskPO.setStageId(stagePO.getId());
taskPO.setState(JobState.PENDING.getName());
taskMapper.save(taskPO);
+ task.loadTaskPO(taskPO);
}
}
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 6440b64d3..977720cd6 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
@@ -19,9 +19,7 @@
package org.apache.bigtop.manager.server.service.impl;
import org.apache.bigtop.manager.common.enums.MaintainState;
-import org.apache.bigtop.manager.dao.mapper.ClusterMapper;
import org.apache.bigtop.manager.dao.mapper.HostMapper;
-import org.apache.bigtop.manager.dao.po.ClusterPO;
import org.apache.bigtop.manager.dao.po.HostPO;
import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
import org.apache.bigtop.manager.server.exception.ApiException;
@@ -47,9 +45,6 @@
@Service
public class HostServiceImpl implements HostService {
- @Resource
- private ClusterMapper clusterMapper;
-
@Resource
private HostMapper hostMapper;
@@ -65,7 +60,6 @@ public List list(Long clusterId) {
@Override
public List batchSave(Long clusterId, List hostnames) {
- ClusterPO clusterPO = clusterMapper.findById(clusterId);
List hostnameIn = hostMapper.findAllByHostnameIn(hostnames);
List hostPOList = new ArrayList<>();
@@ -76,7 +70,7 @@ public List batchSave(Long clusterId, List hostnames) {
for (String hostname : hostnames) {
HostPO hostPO = new HostPO();
hostPO.setHostname(hostname);
- hostPO.setClusterId(clusterPO.getId());
+ hostPO.setClusterId(clusterId);
hostPO.setState(MaintainState.INSTALLED.getName());
if (hostInMap.containsKey(hostname)) {
diff --git a/bigtop-manager-server/src/main/resources/application.yml b/bigtop-manager-server/src/main/resources/application.yml
index 855d24458..f394fbd6b 100644
--- a/bigtop-manager-server/src/main/resources/application.yml
+++ b/bigtop-manager-server/src/main/resources/application.yml
@@ -30,10 +30,10 @@ spring:
main:
banner-mode: log
datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://localhost:3306/bigtop_manager
- username: root
- password: root
+ driver-class-name: org.postgresql.Driver
+ url: jdbc:postgresql://localhost:5432/bigtop_manager
+ username: postgres
+ password: postgres
type: com.zaxxer.hikari.HikariDataSource
hikari:
auto-commit: true
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 b47f2d30e..976e86a82 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
@@ -179,10 +179,6 @@ CREATE TABLE `stack`
`update_time` DATETIME DEFAULT NULL,
`create_by` BIGINT,
`update_by` BIGINT,
- `component_name` VARCHAR(255),
- `context` LONGTEXT,
- `order` INTEGER,
- `service_name` VARCHAR(255),
PRIMARY KEY (`id`),
UNIQUE KEY `uk_stack` (`stack_name`, `stack_version`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
@@ -299,7 +295,6 @@ CREATE TABLE `stage`
`cluster_id` BIGINT(20) UNSIGNED DEFAULT NULL,
`job_id` BIGINT(20) UNSIGNED NOT NULL,
`state` VARCHAR(32) NOT NULL,
- `stage_order` INT UNSIGNED DEFAULT NULL,
`create_time` DATETIME DEFAULT NULL,
`update_time` DATETIME DEFAULT NULL,
`component_name` VARCHAR(255),
From 8dbcf98ffdc41f8f8e43b7c7cbabd42888d9f2d9 Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Tue, 27 Aug 2024 17:27:09 +0800
Subject: [PATCH 07/17] rebase
---
.../apache/bigtop/manager/server/command/job/AbstractJob.java | 3 ---
1 file changed, 3 deletions(-)
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
index d3503f94e..ed94b57ef 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
@@ -33,13 +33,10 @@
import org.apache.bigtop.manager.server.command.task.Task;
import org.apache.bigtop.manager.server.holder.SpringContextHolder;
-import lombok.extern.slf4j.Slf4j;
-
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.LinkedBlockingQueue;
-@Slf4j
public abstract class AbstractJob implements Job {
protected StackMapper stackMapper;
From 5fccbee30a09e30fcd67cdd7a472870ecf9256e0 Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Wed, 28 Aug 2024 09:34:50 +0800
Subject: [PATCH 08/17] update jobMapper.xml
---
.../main/resources/mapper/mysql/JobMapper.xml | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
index 40b866083..f42b2265a 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/JobMapper.xml
@@ -41,9 +41,8 @@
-
-
-
+
+
@@ -54,9 +53,8 @@
-
-
-
+
+
@@ -80,7 +78,8 @@
- , st.order, tk.hostname, st.id as s_id, tk.id as t_id
+ , st.id as s_id, st.name as s_name, st.state as s_state, st.order
+ , tk.id as t_id, tk.name as t_name, tk.state as t_state, tk.hostname
from
(select * from job
@@ -100,7 +99,8 @@
- , st.order, tk.hostname
+ , st.id as s_id, st.name as s_name, st.state as s_state, st.order
+ , tk.id as t_id, tk.name as t_name, tk.state as t_state, tk.hostname
from
(select * from job
From a6ac1434ae078ba10024dad6ab1ad8ea122cf1a7 Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Wed, 28 Aug 2024 10:02:32 +0800
Subject: [PATCH 09/17] Follow the change from os_Specifics to
package_Specifics
---
.../src/main/resources/mapper/mysql/ServiceMapper.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
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 147636673..a3a128833 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/ServiceMapper.xml
@@ -24,11 +24,11 @@
- id, service_name, display_name, service_desc, service_version, os_specifics, service_user, required_services, cluster_id
+ id, service_name, display_name, service_desc, service_version, package_specifics, service_user, required_services, cluster_id
- ${alias}.id, ${alias}.service_name, ${alias}.display_name, ${alias}.service_desc, ${alias}.service_version, ${alias}.os_specifics, ${alias}.service_user, ${alias}.required_services, ${alias}.cluster_id
+ ${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
@@ -37,7 +37,7 @@
-
+
From 86e445600ab601e9c7de6624d386a9d162785ad1 Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Wed, 28 Aug 2024 10:35:21 +0800
Subject: [PATCH 10/17] fix update batch
---
.../resources/mapper/mysql/StageMapper.xml | 19 ++++++++++---------
.../resources/mapper/mysql/TaskMapper.xml | 19 ++++++++++---------
.../src/main/resources/logback-spring.xml | 2 +-
3 files changed, 21 insertions(+), 19 deletions(-)
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/StageMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/StageMapper.xml
index 86829cc5c..dc4e56b85 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/StageMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/StageMapper.xml
@@ -23,15 +23,16 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-
- update stage
-
-
- `state` = #{stage.state},
-
-
- where id = #{stage.id}
+
+ UPDATE stage
+ SET `state` = CASE
+
+ WHEN id = #{item.id} THEN #{item.state}
+
+ END
+ WHERE id IN
+
+ #{item.id}
diff --git a/bigtop-manager-dao/src/main/resources/mapper/mysql/TaskMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/mysql/TaskMapper.xml
index 5460d4088..26363463b 100644
--- a/bigtop-manager-dao/src/main/resources/mapper/mysql/TaskMapper.xml
+++ b/bigtop-manager-dao/src/main/resources/mapper/mysql/TaskMapper.xml
@@ -23,15 +23,16 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
-
- update task
-
-
- `state` = #{task.state},
-
-
- where id = #{task.id}
+
+ UPDATE task
+ SET `state` = CASE
+
+ WHEN id = #{item.id} THEN #{item.state}
+
+ END
+ WHERE id IN
+
+ #{item.id}
diff --git a/bigtop-manager-server/src/main/resources/logback-spring.xml b/bigtop-manager-server/src/main/resources/logback-spring.xml
index 4a42d8578..a4a3b586b 100644
--- a/bigtop-manager-server/src/main/resources/logback-spring.xml
+++ b/bigtop-manager-server/src/main/resources/logback-spring.xml
@@ -46,7 +46,7 @@
-
+
From 2fc6fca7be9455a6c5e860a032e42d1086112a41 Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Wed, 28 Aug 2024 11:10:13 +0800
Subject: [PATCH 11/17] fix update batch
---
.../bigtop/manager/server/command/job/AbstractJob.java | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
index ed94b57ef..bb3feeefc 100644
--- a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
+++ b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/AbstractJob.java
@@ -144,9 +144,12 @@ public void onFailure() {
}
}
}
-
- taskMapper.updateStateByIds(taskPOList);
- stageMapper.updateStateByIds(stagePOList);
+ if (!taskPOList.isEmpty()) {
+ taskMapper.updateStateByIds(taskPOList);
+ }
+ if (!stagePOList.isEmpty()) {
+ stageMapper.updateStateByIds(stagePOList);
+ }
jobMapper.updateById(jobPO);
}
From 5592ba9145af6947d749b4890d739d8d4464e0fb Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Wed, 28 Aug 2024 14:01:41 +0800
Subject: [PATCH 12/17] update
---
.../bigtop/manager/dao/sql/BaseSqlProvider.java | 14 +++++++-------
.../apache/bigtop/manager/dao/sql/SQLBuilder.java | 14 +++++++-------
.../sql/{TableMataData.java => TableMetaData.java} | 12 ++++++------
3 files changed, 20 insertions(+), 20 deletions(-)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/{TableMataData.java => TableMetaData.java} (92%)
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
index f6ab0518a..225a69c65 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
@@ -41,7 +41,7 @@ public String insert(Entity entity, ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = entity.getClass();
- TableMataData mataData = TableMataData.forClass(entityClass);
+ TableMetaData mataData = TableMetaData.forClass(entityClass);
return SQLBuilder.insert(mataData, entity, databaseId);
}
@@ -52,7 +52,7 @@ public String updateById(Entity entity, ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = entity.getClass();
- TableMataData mataData = TableMataData.forClass(entityClass);
+ TableMetaData mataData = TableMetaData.forClass(entityClass);
return SQLBuilder.update(mataData, entity, databaseId);
}
@@ -61,7 +61,7 @@ public String selectById(Serializable id, ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
- TableMataData mataData = TableMataData.forClass(entityClass);
+ TableMetaData mataData = TableMetaData.forClass(entityClass);
return SQLBuilder.selectById(mataData, databaseId, id);
}
@@ -70,7 +70,7 @@ public String selectByIds(Collection extends Serializable> ids, ProviderContex
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
- TableMataData mataData = TableMataData.forClass(entityClass);
+ TableMetaData mataData = TableMetaData.forClass(entityClass);
return SQLBuilder.selectByIds(mataData, databaseId, ids);
}
@@ -79,7 +79,7 @@ public String selectAll(ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
- TableMataData mataData = TableMataData.forClass(entityClass);
+ TableMetaData mataData = TableMetaData.forClass(entityClass);
return SQLBuilder.selectAll(mataData, databaseId);
}
@@ -88,7 +88,7 @@ public String deleteById(Serializable id, ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
- TableMataData mataData = TableMataData.forClass(entityClass);
+ TableMetaData mataData = TableMetaData.forClass(entityClass);
return SQLBuilder.deleteById(mataData, databaseId, id);
}
@@ -97,7 +97,7 @@ public String deleteByIds(Collection extends Serializable> ids, ProviderContex
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
- TableMataData mataData = TableMataData.forClass(entityClass);
+ TableMetaData mataData = TableMetaData.forClass(entityClass);
return SQLBuilder.deleteByIds(mataData, databaseId, ids);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
index 6b7d85e7c..a9921bc3d 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
@@ -40,7 +40,7 @@
@Slf4j
public class SQLBuilder {
- public static String insert(TableMataData mataData, Entity entity, String databaseId) {
+ public static String insert(TableMetaData mataData, Entity entity, String databaseId) {
Class> entityClass = entity.getClass();
Map fieldColumnMap = mataData.getFieldColumnMap();
@@ -72,7 +72,7 @@ public static String insert(TableMataData mataData, Entity entity, Stri
return sql.toString();
}
- public static String update(TableMataData mataData, Entity entity, String databaseId) {
+ public static String update(TableMetaData mataData, Entity entity, String databaseId) {
Class> entityClass = entity.getClass();
Map fieldColumnMap = mataData.getFieldColumnMap();
@@ -106,7 +106,7 @@ public static String update(TableMataData mataData, Entity entity, Stri
return sql.toString();
}
- public static String selectById(TableMataData mataData, String databaseId, Serializable id) {
+ public static String selectById(TableMetaData mataData, String databaseId, Serializable id) {
SQL sql = new SQL();
switch (DBType.toType(databaseId)) {
@@ -125,7 +125,7 @@ public static String selectById(TableMataData mataData, String databaseId, Seria
}
public static String selectByIds(
- TableMataData mataData, String databaseId, Collection extends Serializable> ids) {
+ TableMetaData mataData, String databaseId, Collection extends Serializable> ids) {
SQL sql = new SQL();
switch (DBType.toType(databaseId)) {
@@ -144,7 +144,7 @@ public static String selectByIds(
return sql.toString();
}
- public static String selectAll(TableMataData mataData, String databaseId) {
+ public static String selectAll(TableMetaData mataData, String databaseId) {
SQL sql = new SQL();
switch (DBType.toType(databaseId)) {
@@ -161,7 +161,7 @@ public static String selectAll(TableMataData mataData, String databaseId) {
return sql.toString();
}
- public static String deleteById(TableMataData mataData, String databaseId, Serializable id) {
+ public static String deleteById(TableMetaData mataData, String databaseId, Serializable id) {
SQL sql = new SQL();
switch (DBType.toType(databaseId)) {
case MYSQL: {
@@ -178,7 +178,7 @@ public static String deleteById(TableMataData mataData, String databaseId, Seria
}
public static String deleteByIds(
- TableMataData mataData, String databaseId, Collection extends Serializable> ids) {
+ TableMetaData mataData, String databaseId, Collection extends Serializable> ids) {
SQL sql = new SQL();
switch (DBType.toType(databaseId)) {
case MYSQL: {
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMataData.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMetaData.java
similarity index 92%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMataData.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMetaData.java
index 893680c6c..32957963b 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMataData.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMetaData.java
@@ -42,9 +42,9 @@
import java.util.concurrent.ConcurrentHashMap;
@Getter
-public class TableMataData {
+public class TableMetaData {
- private static final Map, TableMataData> TABLE_CACHE = new ConcurrentHashMap<>(64);
+ private static final Map, TableMetaData> TABLE_CACHE = new ConcurrentHashMap<>(64);
/**
* tableName
@@ -71,14 +71,14 @@ public class TableMataData {
*/
private final Map> fieldTypeMap = new HashMap<>();
- private TableMataData(Class> clazz) {
+ private TableMetaData(Class> clazz) {
initTableInfo(clazz);
}
- public static TableMataData forClass(Class> entityClass) {
- TableMataData tableMataDate = TABLE_CACHE.get(entityClass);
+ public static TableMetaData forClass(Class> entityClass) {
+ TableMetaData tableMataDate = TABLE_CACHE.get(entityClass);
if (tableMataDate == null) {
- tableMataDate = new TableMataData(entityClass);
+ tableMataDate = new TableMetaData(entityClass);
TABLE_CACHE.put(entityClass, tableMataDate);
}
From a2d20af12194c9546ed366c0f013dfcff4f4df06 Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Wed, 28 Aug 2024 14:46:37 +0800
Subject: [PATCH 13/17] update
---
.../manager/dao/sql/BaseSqlProvider.java | 28 +++++-----
.../bigtop/manager/dao/sql/SQLBuilder.java | 52 +++++++++----------
.../bigtop/manager/dao/sql/TableMetaData.java | 10 ++--
3 files changed, 45 insertions(+), 45 deletions(-)
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
index 225a69c65..ba93e466a 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/BaseSqlProvider.java
@@ -41,9 +41,9 @@ public String insert(Entity entity, ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = entity.getClass();
- TableMetaData mataData = TableMetaData.forClass(entityClass);
+ TableMetaData tableMetaData = TableMetaData.forClass(entityClass);
- return SQLBuilder.insert(mataData, entity, databaseId);
+ return SQLBuilder.insert(tableMetaData, entity, databaseId);
}
public String updateById(Entity entity, ProviderContext context) {
@@ -52,54 +52,54 @@ public String updateById(Entity entity, ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = entity.getClass();
- TableMetaData mataData = TableMetaData.forClass(entityClass);
+ TableMetaData tableMetaData = TableMetaData.forClass(entityClass);
- return SQLBuilder.update(mataData, entity, databaseId);
+ return SQLBuilder.update(tableMetaData, entity, databaseId);
}
public String selectById(Serializable id, ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
- TableMetaData mataData = TableMetaData.forClass(entityClass);
+ TableMetaData tableMetaData = TableMetaData.forClass(entityClass);
- return SQLBuilder.selectById(mataData, databaseId, id);
+ return SQLBuilder.selectById(tableMetaData, databaseId, id);
}
public String selectByIds(Collection extends Serializable> ids, ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
- TableMetaData mataData = TableMetaData.forClass(entityClass);
+ TableMetaData tableMetaData = TableMetaData.forClass(entityClass);
- return SQLBuilder.selectByIds(mataData, databaseId, ids);
+ return SQLBuilder.selectByIds(tableMetaData, databaseId, ids);
}
public String selectAll(ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
- TableMetaData mataData = TableMetaData.forClass(entityClass);
+ TableMetaData tableMetaData = TableMetaData.forClass(entityClass);
- return SQLBuilder.selectAll(mataData, databaseId);
+ return SQLBuilder.selectAll(tableMetaData, databaseId);
}
public String deleteById(Serializable id, ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
- TableMetaData mataData = TableMetaData.forClass(entityClass);
+ TableMetaData tableMetaData = TableMetaData.forClass(entityClass);
- return SQLBuilder.deleteById(mataData, databaseId, id);
+ return SQLBuilder.deleteById(tableMetaData, databaseId, id);
}
public String deleteByIds(Collection extends Serializable> ids, ProviderContext context) {
String databaseId = context.getDatabaseId();
Class> entityClass = getEntityClass(context);
- TableMetaData mataData = TableMetaData.forClass(entityClass);
+ TableMetaData tableMetaData = TableMetaData.forClass(entityClass);
- return SQLBuilder.deleteByIds(mataData, databaseId, ids);
+ return SQLBuilder.deleteByIds(tableMetaData, databaseId, ids);
}
private Class> getEntityClass(ProviderContext context) {
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
index a9921bc3d..0ae46ac0a 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
@@ -40,17 +40,17 @@
@Slf4j
public class SQLBuilder {
- public static String insert(TableMetaData mataData, Entity entity, String databaseId) {
+ public static String insert(TableMetaData tableMetaData, Entity entity, String databaseId) {
Class> entityClass = entity.getClass();
- Map fieldColumnMap = mataData.getFieldColumnMap();
+ Map fieldColumnMap = tableMetaData.getFieldColumnMap();
SQL sql = new SQL();
switch (DBType.toType(databaseId)) {
case MYSQL: {
- sql.INSERT_INTO(mataData.getTableName());
+ sql.INSERT_INTO(tableMetaData.getTableName());
for (Map.Entry entry : fieldColumnMap.entrySet()) {
// 忽略主键
- if (Objects.equals(entry.getKey(), mataData.getPkProperty())) {
+ if (Objects.equals(entry.getKey(), tableMetaData.getPkProperty())) {
continue;
}
PropertyDescriptor ps = BeanUtils.getPropertyDescriptor(entityClass, entry.getKey());
@@ -72,17 +72,17 @@ public static String insert(TableMetaData mataData, Entity entity, Stri
return sql.toString();
}
- public static String update(TableMetaData mataData, Entity entity, String databaseId) {
+ public static String update(TableMetaData tableMetaData, Entity entity, String databaseId) {
Class> entityClass = entity.getClass();
- Map fieldColumnMap = mataData.getFieldColumnMap();
+ Map fieldColumnMap = tableMetaData.getFieldColumnMap();
SQL sql = new SQL();
switch (DBType.toType(databaseId)) {
case MYSQL: {
- sql.UPDATE(mataData.getTableName());
+ sql.UPDATE(tableMetaData.getTableName());
for (Map.Entry entry : fieldColumnMap.entrySet()) {
// 忽略主键
- if (Objects.equals(entry.getKey(), mataData.getPkProperty())) {
+ if (Objects.equals(entry.getKey(), tableMetaData.getPkProperty())) {
continue;
}
PropertyDescriptor ps = BeanUtils.getPropertyDescriptor(entityClass, entry.getKey());
@@ -95,7 +95,7 @@ public static String update(TableMetaData mataData, Entity entity, Stri
}
}
- sql.WHERE(getEquals(mataData.getPkColumn(), mataData.getPkProperty()));
+ sql.WHERE(getEquals(tableMetaData.getPkColumn(), tableMetaData.getPkProperty()));
break;
}
default: {
@@ -106,14 +106,14 @@ public static String update(TableMetaData mataData, Entity entity, Stri
return sql.toString();
}
- public static String selectById(TableMetaData mataData, String databaseId, Serializable id) {
+ public static String selectById(TableMetaData tableMetaData, String databaseId, Serializable id) {
SQL sql = new SQL();
switch (DBType.toType(databaseId)) {
case MYSQL: {
- sql.SELECT(mataData.getBaseColumns());
- sql.FROM(mataData.getTableName());
- sql.WHERE(mataData.getPkColumn() + " = '" + id + "'");
+ sql.SELECT(tableMetaData.getBaseColumns());
+ sql.FROM(tableMetaData.getTableName());
+ sql.WHERE(tableMetaData.getPkColumn() + " = '" + id + "'");
break;
}
default: {
@@ -125,15 +125,15 @@ public static String selectById(TableMetaData mataData, String databaseId, Seria
}
public static String selectByIds(
- TableMetaData mataData, String databaseId, Collection extends Serializable> ids) {
+ TableMetaData tableMetaData, String databaseId, Collection extends Serializable> ids) {
SQL sql = new SQL();
switch (DBType.toType(databaseId)) {
case MYSQL: {
String idsStr = ids.stream().map(String::valueOf).collect(Collectors.joining("', '"));
- sql.SELECT(mataData.getBaseColumns());
- sql.FROM(mataData.getTableName());
- sql.WHERE(mataData.getPkColumn() + " in ('" + idsStr + "')");
+ sql.SELECT(tableMetaData.getBaseColumns());
+ sql.FROM(tableMetaData.getTableName());
+ sql.WHERE(tableMetaData.getPkColumn() + " in ('" + idsStr + "')");
break;
}
default: {
@@ -144,13 +144,13 @@ public static String selectByIds(
return sql.toString();
}
- public static String selectAll(TableMetaData mataData, String databaseId) {
+ public static String selectAll(TableMetaData tableMetaData, String databaseId) {
SQL sql = new SQL();
switch (DBType.toType(databaseId)) {
case MYSQL: {
- sql.SELECT(mataData.getBaseColumns());
- sql.FROM(mataData.getTableName());
+ sql.SELECT(tableMetaData.getBaseColumns());
+ sql.FROM(tableMetaData.getTableName());
break;
}
default: {
@@ -161,12 +161,12 @@ public static String selectAll(TableMetaData mataData, String databaseId) {
return sql.toString();
}
- public static String deleteById(TableMetaData mataData, String databaseId, Serializable id) {
+ public static String deleteById(TableMetaData tableMetaData, String databaseId, Serializable id) {
SQL sql = new SQL();
switch (DBType.toType(databaseId)) {
case MYSQL: {
- sql.DELETE_FROM(mataData.getTableName());
- sql.WHERE(mataData.getPkColumn() + " = '" + id + "'");
+ sql.DELETE_FROM(tableMetaData.getTableName());
+ sql.WHERE(tableMetaData.getPkColumn() + " = '" + id + "'");
break;
}
default: {
@@ -178,13 +178,13 @@ public static String deleteById(TableMetaData mataData, String databaseId, Seria
}
public static String deleteByIds(
- TableMetaData mataData, String databaseId, Collection extends Serializable> ids) {
+ TableMetaData tableMetaData, String databaseId, Collection extends Serializable> ids) {
SQL sql = new SQL();
switch (DBType.toType(databaseId)) {
case MYSQL: {
String idsStr = ids.stream().map(String::valueOf).collect(Collectors.joining("', '"));
- sql.DELETE_FROM(mataData.getTableName());
- sql.WHERE(mataData.getPkColumn() + " in ('" + idsStr + "')");
+ sql.DELETE_FROM(tableMetaData.getTableName());
+ sql.WHERE(tableMetaData.getPkColumn() + " in ('" + idsStr + "')");
break;
}
default: {
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMetaData.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMetaData.java
index 32957963b..a464a8164 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMetaData.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/TableMetaData.java
@@ -76,13 +76,13 @@ private TableMetaData(Class> clazz) {
}
public static TableMetaData forClass(Class> entityClass) {
- TableMetaData tableMataDate = TABLE_CACHE.get(entityClass);
- if (tableMataDate == null) {
- tableMataDate = new TableMetaData(entityClass);
- TABLE_CACHE.put(entityClass, tableMataDate);
+ TableMetaData tableMetaData = TABLE_CACHE.get(entityClass);
+ if (tableMetaData == null) {
+ tableMetaData = new TableMetaData(entityClass);
+ TABLE_CACHE.put(entityClass, tableMetaData);
}
- return tableMataDate;
+ return tableMetaData;
}
public String getBaseColumns() {
From e7f45fe4a27883389c81fae1135c529ac8f51f0a Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Thu, 29 Aug 2024 10:57:33 +0800
Subject: [PATCH 14/17] update as comment
---
bigtop-manager-bom/pom.xml | 1 -
.../bigtop/manager/dao/po/AuditLogPO.java | 18 +----------
.../apache/bigtop/manager/dao/po/BasePO.java | 4 +--
.../bigtop/manager/dao/po/ClusterPO.java | 22 +------------
.../bigtop/manager/dao/po/ComponentPO.java | 32 ++-----------------
.../manager/dao/po/HostComponentPO.java | 19 +----------
.../apache/bigtop/manager/dao/po/HostPO.java | 18 +----------
.../apache/bigtop/manager/dao/po/JobPO.java | 17 ++--------
.../apache/bigtop/manager/dao/po/RepoPO.java | 18 +----------
.../manager/dao/po/ServiceConfigPO.java | 21 +-----------
.../bigtop/manager/dao/po/ServicePO.java | 28 ++--------------
.../bigtop/manager/dao/po/SettingPO.java | 18 +----------
.../apache/bigtop/manager/dao/po/StackPO.java | 16 +---------
.../apache/bigtop/manager/dao/po/StagePO.java | 24 ++------------
.../apache/bigtop/manager/dao/po/TaskPO.java | 27 ++--------------
.../bigtop/manager/dao/po/TypeConfigPO.java | 18 +----------
.../apache/bigtop/manager/dao/po/UserPO.java | 7 ----
.../bigtop/manager/dao/sql/SQLBuilder.java | 4 +--
.../main/resources/ddl/MySQL-DDL-CREATE.sql | 6 ++--
19 files changed, 29 insertions(+), 289 deletions(-)
diff --git a/bigtop-manager-bom/pom.xml b/bigtop-manager-bom/pom.xml
index 2145ed390..55ea3d07d 100644
--- a/bigtop-manager-bom/pom.xml
+++ b/bigtop-manager-bom/pom.xml
@@ -43,7 +43,6 @@
4.4.0
3.0.16
4.0.4
- 6.2.5.Final
1.11.0
1.0.0
6.4.11
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/AuditLogPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/AuditLogPO.java
index 8de0e32f9..095b2adaa 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/AuditLogPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/AuditLogPO.java
@@ -21,40 +21,24 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.FetchType;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.Lob;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
@Table(name = "audit_log")
-@TableGenerator(
- name = "audit_log_generator",
- table = "sequence",
- pkColumnName = "seq_name",
- valueColumnName = "seq_count")
public class AuditLogPO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "audit_log_generator")
@Column(name = "id")
private Long id;
@Column(name = "uri")
private String uri;
- @Lob
- @Basic(fetch = FetchType.LAZY)
- @Column(name = "args", length = 16777216)
+ @Column(name = "args")
private String args;
@Column(name = "tag_name")
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/BasePO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/BasePO.java
index f3fc63070..7fe37f9ee 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/BasePO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/BasePO.java
@@ -26,13 +26,13 @@
@Data
public abstract class BasePO {
- @Column(name = "create_time", updatable = false)
+ @Column(name = "create_time")
private Timestamp createTime;
@Column(name = "update_time")
private Timestamp updateTime;
- @Column(name = "create_by", updatable = false)
+ @Column(name = "create_by")
private Long createBy;
@Column(name = "update_by")
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 be13da630..3b70c0af2 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
@@ -22,37 +22,17 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.Index;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
import jakarta.persistence.Transient;
-import jakarta.persistence.UniqueConstraint;
import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
-@Table(
- name = "cluster",
- uniqueConstraints = {
- @UniqueConstraint(
- name = "uk_cluster_name",
- columnNames = {"cluster_name"})
- },
- indexes = {@Index(name = "idx_cluster_stack_id", columnList = "stack_id")})
-@TableGenerator(
- name = "cluster_generator",
- table = "sequence",
- pkColumnName = "seq_name",
- valueColumnName = "seq_count")
+@Table(name = "cluster")
public class ClusterPO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "cluster_generator")
@Column(name = "id")
private Long id;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
index d58d040aa..bc0a410b0 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ComponentPO.java
@@ -21,44 +21,18 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.FetchType;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.Index;
-import jakarta.persistence.Lob;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
import jakarta.persistence.Transient;
-import jakarta.persistence.UniqueConstraint;
import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
-@Table(
- name = "component",
- uniqueConstraints = {
- @UniqueConstraint(
- name = "uk_component_name",
- columnNames = {"component_name", "cluster_id"})
- },
- indexes = {
- @Index(name = "idx_component_cluster_id", columnList = "cluster_id"),
- @Index(name = "idx_component_service_id", columnList = "service_id")
- })
-@TableGenerator(
- name = "component_generator",
- table = "sequence",
- pkColumnName = "seq_name",
- valueColumnName = "seq_count")
+@Table(name = "component")
public class ComponentPO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "component_generator")
@Column(name = "id")
private Long id;
@@ -71,9 +45,7 @@ public class ComponentPO extends BasePO implements Serializable {
@Column(name = "command_script")
private String commandScript;
- @Lob
- @Basic(fetch = FetchType.LAZY)
- @Column(name = "custom_commands", length = 16777216)
+ @Column(name = "custom_commands")
private String customCommands;
@Column(name = "category")
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
index 536b693a6..accf5d380 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostComponentPO.java
@@ -22,34 +22,17 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.Index;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
import jakarta.persistence.Transient;
import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
-@Table(
- name = "host_component",
- indexes = {
- @Index(name = "idx_hc_component_id", columnList = "component_id"),
- @Index(name = "idx_hc_host_id", columnList = "host_id")
- })
-@TableGenerator(
- name = "host_component_generator",
- table = "sequence",
- pkColumnName = "seq_name",
- valueColumnName = "seq_count")
+@Table(name = "host_component")
public class HostComponentPO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "host_component_generator")
@Column(name = "id")
private Long id;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
index 55b66f936..f0b3054da 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/HostPO.java
@@ -22,33 +22,17 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.Index;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
import jakarta.persistence.Transient;
-import jakarta.persistence.UniqueConstraint;
import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
-@Table(
- name = "host",
- uniqueConstraints = {
- @UniqueConstraint(
- name = "uk_hostname",
- columnNames = {"hostname", "cluster_id"})
- },
- indexes = {@Index(name = "idx_host_cluster_id", columnList = "cluster_id")})
-@TableGenerator(name = "host_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
+@Table(name = "host")
public class HostPO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "host_generator")
@Column(name = "id")
private Long id;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
index 5cd5b8b05..30adbb6a6 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/JobPO.java
@@ -22,32 +22,20 @@
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.FetchType;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.Index;
import jakarta.persistence.Lob;
import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
import java.io.Serializable;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
-@Table(
- name = "job",
- indexes = {@Index(name = "idx_job_cluster_id", columnList = "cluster_id")})
-@TableGenerator(name = "job_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
+@Table(name = "job")
public class JobPO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "job_generator")
@Column(name = "id")
private Long id;
@@ -58,8 +46,7 @@ public class JobPO extends BasePO implements Serializable {
private String name;
@Lob
- @Basic(fetch = FetchType.LAZY)
- @Column(name = "context", length = 16777216)
+ @Column(name = "context")
private String context;
@Column(name = "cluster_id")
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java
index 6e464995e..00030d2c5 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/RepoPO.java
@@ -22,32 +22,16 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.Index;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
-import jakarta.persistence.UniqueConstraint;
import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
-@Table(
- name = "repo",
- uniqueConstraints = {
- @UniqueConstraint(
- name = "uk_repo_id",
- columnNames = {"repo_id", "os", "arch", "cluster_id"})
- },
- indexes = {@Index(name = "idx_repo_cluster_id", columnList = "cluster_id")})
-@TableGenerator(name = "repo_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
+@Table(name = "repo")
public class RepoPO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "repo_generator")
@Column(name = "id")
private Long id;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
index 72e5482d6..4c622cea6 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/ServiceConfigPO.java
@@ -23,36 +23,18 @@
import lombok.ToString;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.Index;
-import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
import jakarta.persistence.Transient;
import java.io.Serializable;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
-@Table(
- name = "service_config",
- indexes = {
- @Index(name = "idx_sc_cluster_id", columnList = "cluster_id"),
- @Index(name = "idx_sc_service_id", columnList = "service_id")
- })
-@TableGenerator(
- name = "service_config_generator",
- table = "sequence",
- pkColumnName = "seq_name",
- valueColumnName = "seq_count")
+@Table(name = "service_config")
public class ServiceConfigPO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "service_config_generator")
@Column(name = "id")
private Long id;
@@ -66,7 +48,6 @@ public class ServiceConfigPO extends BasePO implements Serializable {
private Boolean selected;
@ToString.Exclude
- @OneToMany(mappedBy = "serviceConfigPO")
private List configs;
@Column(name = "service_id")
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 7aa2106e3..4584d7f49 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
@@ -23,39 +23,18 @@
import lombok.ToString;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.Index;
-import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
import jakarta.persistence.Transient;
-import jakarta.persistence.UniqueConstraint;
import java.io.Serializable;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
-@Table(
- name = "service",
- uniqueConstraints = {
- @UniqueConstraint(
- name = "uk_service_name",
- columnNames = {"service_name", "cluster_id"})
- },
- indexes = {@Index(name = "idx_service_cluster_id", columnList = "cluster_id")})
-@TableGenerator(
- name = "service_generator",
- table = "sequence",
- pkColumnName = "seq_name",
- valueColumnName = "seq_count")
+@Table(name = "service")
public class ServicePO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "service_generator")
@Column(name = "id")
private Long id;
@@ -65,13 +44,13 @@ public class ServicePO extends BasePO implements Serializable {
@Column(name = "display_name")
private String displayName;
- @Column(name = "service_desc", length = 1024)
+ @Column(name = "service_desc")
private String serviceDesc;
@Column(name = "service_version")
private String serviceVersion;
- @Column(name = "package_specifics", length = 1024)
+ @Column(name = "package_specifics")
private String packageSpecifics;
@Column(name = "service_user")
@@ -92,6 +71,5 @@ public class ServicePO extends BasePO implements Serializable {
private String userGroup;
@ToString.Exclude
- @OneToMany(mappedBy = "servicePO")
private List components;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/SettingPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/SettingPO.java
index 6ff632e80..e0c85d8f1 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/SettingPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/SettingPO.java
@@ -21,39 +21,23 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.FetchType;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.Lob;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
@Table(name = "setting")
-@TableGenerator(
- name = "settings_generator",
- table = "sequence",
- pkColumnName = "seq_name",
- valueColumnName = "seq_count")
public class SettingPO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "settings_generator")
@Column(name = "id")
private Long id;
@Column(name = "type_name")
private String typeName;
- @Lob
- @Basic(fetch = FetchType.LAZY)
- @Column(name = "config_data", length = 16777216)
+ @Column(name = "config_data")
private String configData;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StackPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StackPO.java
index f154a3966..76db3ea9e 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StackPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StackPO.java
@@ -22,30 +22,16 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
-import jakarta.persistence.UniqueConstraint;
import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
-@Table(
- name = "stack",
- uniqueConstraints = {
- @UniqueConstraint(
- name = "uk_stack",
- columnNames = {"stack_name", "stack_version"})
- })
-@TableGenerator(name = "stack_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
+@Table(name = "stack")
public class StackPO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "stack_generator")
@Column(name = "id")
private Long id;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
index 544cc16da..22a2d94c1 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/StagePO.java
@@ -22,35 +22,18 @@
import lombok.EqualsAndHashCode;
import lombok.ToString;
-import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.FetchType;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.Index;
-import jakarta.persistence.Lob;
-import jakarta.persistence.OneToMany;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
import java.io.Serializable;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
-@Table(
- name = "stage",
- indexes = {
- @Index(name = "idx_stage_cluster_id", columnList = "cluster_id"),
- @Index(name = "idx_stage_job_id", columnList = "job_id")
- })
-@TableGenerator(name = "stage_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
+@Table(name = "stage")
public class StagePO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "stage_generator")
@Column(name = "id")
private Long id;
@@ -69,9 +52,7 @@ public class StagePO extends BasePO implements Serializable {
@Column(name = "component_name")
private String componentName;
- @Lob
- @Basic(fetch = FetchType.LAZY)
- @Column(name = "context", length = 16777216)
+ @Column(name = "context")
private String context;
@Column(name = "job_id")
@@ -81,6 +62,5 @@ public class StagePO extends BasePO implements Serializable {
private Long clusterId;
@ToString.Exclude
- @OneToMany(mappedBy = "stagePO")
private List tasks;
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
index 9c23c41b1..54b507173 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TaskPO.java
@@ -21,43 +21,24 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.FetchType;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.Index;
-import jakarta.persistence.Lob;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
-@Table(
- name = "task",
- indexes = {
- @Index(name = "idx_task_cluster_id", columnList = "cluster_id"),
- @Index(name = "idx_task_job_id", columnList = "job_id"),
- @Index(name = "idx_task_stage_id", columnList = "stage_id")
- })
-@TableGenerator(name = "task_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
+@Table(name = "task")
public class TaskPO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "task_generator")
@Column(name = "id")
private Long id;
@Column(name = "name")
private String name;
- @Lob
- @Basic(fetch = FetchType.LAZY)
- @Column(name = "context", length = 16777216)
+ @Column(name = "context")
private String context;
@Column(name = "state")
@@ -87,9 +68,7 @@ public class TaskPO extends BasePO implements Serializable {
@Column(name = "service_user")
private String serviceUser;
- @Lob
- @Basic(fetch = FetchType.LAZY)
- @Column(name = "content", length = 16777216)
+ @Column(name = "content")
private String content;
@Column(name = "stage_id")
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java
index cec947081..1fb21bf3c 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/TypeConfigPO.java
@@ -21,40 +21,24 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
-import jakarta.persistence.Basic;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.FetchType;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
-import jakarta.persistence.Lob;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
@Table(name = "type_config")
-@TableGenerator(
- name = "type_config_generator",
- table = "sequence",
- pkColumnName = "seq_name",
- valueColumnName = "seq_count")
public class TypeConfigPO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "type_config_generator")
@Column(name = "id")
private Long id;
@Column(name = "type_name")
private String typeName;
- @Lob
- @Basic(fetch = FetchType.LAZY)
- @Column(name = "properties_json", length = 16777216)
+ @Column(name = "properties_json")
private String propertiesJson;
@Column(name = "service_config_id")
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/UserPO.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/UserPO.java
index 731921461..e684ea708 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/UserPO.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/po/UserPO.java
@@ -22,23 +22,16 @@
import lombok.EqualsAndHashCode;
import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
-import jakarta.persistence.TableGenerator;
import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
-@Entity
@Table(name = "user")
-@TableGenerator(name = "user_generator", table = "sequence", pkColumnName = "seq_name", valueColumnName = "seq_count")
public class UserPO extends BasePO implements Serializable {
@Id
- @GeneratedValue(strategy = GenerationType.TABLE, generator = "user_generator")
@Column(name = "id")
private Long id;
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
index 0ae46ac0a..2f3b120ee 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/sql/SQLBuilder.java
@@ -49,7 +49,7 @@ public static String insert(TableMetaData tableMetaData, Entity entity,
case MYSQL: {
sql.INSERT_INTO(tableMetaData.getTableName());
for (Map.Entry entry : fieldColumnMap.entrySet()) {
- // 忽略主键
+ // Ignore primary key
if (Objects.equals(entry.getKey(), tableMetaData.getPkProperty())) {
continue;
}
@@ -81,7 +81,7 @@ public static String update(TableMetaData tableMetaData, Entity entity,
case MYSQL: {
sql.UPDATE(tableMetaData.getTableName());
for (Map.Entry entry : fieldColumnMap.entrySet()) {
- // 忽略主键
+ // Ignore primary key
if (Objects.equals(entry.getKey(), tableMetaData.getPkProperty())) {
continue;
}
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 976e86a82..94a4ab598 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
@@ -86,7 +86,8 @@ CREATE TABLE `cluster`
`user_group` VARCHAR(255),
`stack_id` BIGINT,
PRIMARY KEY (`id`),
- UNIQUE KEY `uk_cluster_name` (`cluster_name`)
+ UNIQUE KEY `uk_cluster_name` (`cluster_name`),
+ KEY `idx_cluster_stack_id` (`stack_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `component`
@@ -148,7 +149,8 @@ CREATE TABLE `host`
`total_memory_size` BIGINT,
`update_by` BIGINT,
PRIMARY KEY (`id`),
- UNIQUE KEY `uk_hostname` (`hostname`)
+ UNIQUE KEY `uk_hostname` (`hostname`, `cluster_id`),
+ KEY `idx_host_cluster_id` (cluster_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `repo`
From 6ea0a95796b7fc4ebf1df568032eeb4816e715d6 Mon Sep 17 00:00:00 2001
From: timyuer <524860213@qq.com>
Date: Thu, 29 Aug 2024 11:23:40 +0800
Subject: [PATCH 15/17] rename orm suffix
---
.../AuditLogDao.java} | 4 +-
.../BaseDao.java} | 4 +-
.../ClusterDao.java} | 4 +-
.../ComponentDao.java} | 4 +-
.../HostComponentDao.java} | 4 +-
.../HostDao.java} | 4 +-
.../JobMapper.java => repository/JobDao.java} | 4 +-
.../RepoDao.java} | 4 +-
.../ServiceConfigDao.java} | 4 +-
.../ServiceDao.java} | 4 +-
.../SettingDao.java} | 4 +-
.../StackDao.java} | 4 +-
.../StageDao.java} | 4 +-
.../TaskDao.java} | 4 +-
.../TypeConfigDao.java} | 4 +-
.../UserDao.java} | 4 +-
.../manager/dao/sql/BaseSqlProvider.java | 4 +-
.../resources/mapper/mysql/ClusterMapper.xml | 2 +-
.../mapper/mysql/ComponentMapper.xml | 2 +-
.../mapper/mysql/HostComponentMapper.xml | 2 +-
.../resources/mapper/mysql/HostMapper.xml | 2 +-
.../main/resources/mapper/mysql/JobMapper.xml | 2 +-
.../resources/mapper/mysql/RepoMapper.xml | 2 +-
.../mapper/mysql/ServiceConfigMapper.xml | 2 +-
.../resources/mapper/mysql/ServiceMapper.xml | 2 +-
.../resources/mapper/mysql/StackMapper.xml | 2 +-
.../resources/mapper/mysql/StageMapper.xml | 2 +-
.../resources/mapper/mysql/TaskMapper.xml | 2 +-
.../resources/mapper/mysql/UserMapper.xml | 2 +-
.../manager/server/aop/AuditAspect.java | 6 +-
.../server/command/job/AbstractJob.java | 42 ++++++------
.../command/job/AbstractServiceJob.java | 26 ++++----
.../server/command/job/ClusterCreateJob.java | 10 +--
.../server/command/job/ServiceInstallJob.java | 32 +++++-----
.../command/stage/AbstractComponentStage.java | 8 +--
.../server/command/stage/AbstractStage.java | 12 ++--
.../command/stage/CacheFileUpdateStage.java | 8 +--
.../server/command/stage/HostCheckStage.java | 8 +--
.../command/task/AbstractComponentTask.java | 6 +-
.../server/command/task/AbstractTask.java | 12 ++--
.../command/task/CacheFileUpdateTask.java | 64 +++++++++----------
.../command/task/ComponentInstallTask.java | 4 +-
.../command/task/ComponentStartTask.java | 4 +-
.../command/task/ComponentStopTask.java | 4 +-
.../validator/ClusterCreateValidator.java | 6 +-
.../validator/ClusterHostValidator.java | 6 +-
.../command/validator/HostAddValidator.java | 6 +-
.../validator/RequiredServicesValidator.java | 12 ++--
.../validator/ServiceHostValidator.java | 6 +-
.../command/validator/StackValidator.java | 6 +-
.../scheduler/ComponentStatusScheduler.java | 10 +--
.../server/scheduler/HostInfoScheduler.java | 8 +--
.../service/impl/ClusterServiceImpl.java | 32 +++++-----
.../service/impl/CommandServiceImpl.java | 18 +++---
.../service/impl/ComponentServiceImpl.java | 8 +--
.../service/impl/ConfigServiceImpl.java | 32 +++++-----
.../impl/HostComponentServiceImpl.java | 10 +--
.../server/service/impl/HostServiceImpl.java | 16 ++---
.../server/service/impl/JobServiceImpl.java | 26 ++++----
.../server/service/impl/LoginServiceImpl.java | 6 +-
.../service/impl/ServiceServiceImpl.java | 20 +++---
.../service/impl/TaskLogServiceImpl.java | 6 +-
.../server/service/impl/UserServiceImpl.java | 12 ++--
.../server/stack/StackInitializer.java | 8 +--
.../manager/server/aop/AuditAspectTest.java | 10 +--
65 files changed, 300 insertions(+), 302 deletions(-)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/AuditLogMapper.java => repository/AuditLogDao.java} (88%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/BaseMapper.java => repository/BaseDao.java} (96%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/ClusterMapper.java => repository/ClusterDao.java} (91%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/ComponentMapper.java => repository/ComponentDao.java} (92%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/HostComponentMapper.java => repository/HostComponentDao.java} (94%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/HostMapper.java => repository/HostDao.java} (92%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/JobMapper.java => repository/JobDao.java} (91%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/RepoMapper.java => repository/RepoDao.java} (91%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/ServiceConfigMapper.java => repository/ServiceConfigDao.java} (91%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/ServiceMapper.java => repository/ServiceDao.java} (92%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/SettingMapper.java => repository/SettingDao.java} (88%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/StackMapper.java => repository/StackDao.java} (90%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/StageMapper.java => repository/StageDao.java} (90%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/TaskMapper.java => repository/TaskDao.java} (90%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/TypeConfigMapper.java => repository/TypeConfigDao.java} (88%)
rename bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/{mapper/UserMapper.java => repository/UserDao.java} (90%)
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/AuditLogMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/AuditLogDao.java
similarity index 88%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/AuditLogMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/AuditLogDao.java
index 9fdd4378a..a12f51a74 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/AuditLogMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/AuditLogDao.java
@@ -17,8 +17,8 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.AuditLogPO;
-public interface AuditLogMapper extends BaseMapper {}
+public interface AuditLogDao extends BaseDao {}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/BaseDao.java
similarity index 96%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/BaseDao.java
index 4c378e99e..ff8b96923 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/BaseMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/BaseDao.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.sql.BaseSqlProvider;
@@ -32,7 +32,7 @@
import java.util.List;
import java.util.Optional;
-public interface BaseMapper {
+public interface BaseDao {
/**
* Insert the entity.
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ClusterMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ClusterDao.java
similarity index 91%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ClusterMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ClusterDao.java
index 78b4547f8..de2ec3269 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ClusterMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ClusterDao.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.ClusterPO;
@@ -26,7 +26,7 @@
import java.util.List;
import java.util.Optional;
-public interface ClusterMapper extends BaseMapper {
+public interface ClusterDao extends BaseDao {
Optional findByClusterName(@Param("clusterName") String clusterName);
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ComponentDao.java
similarity index 92%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ComponentDao.java
index 2e2d3a7eb..70d057081 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ComponentMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ComponentDao.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.ComponentPO;
@@ -25,7 +25,7 @@
import java.util.List;
-public interface ComponentMapper extends BaseMapper {
+public interface ComponentDao extends BaseDao {
ComponentPO findByClusterIdAndComponentName(
@Param("clusterId") Long clusterId, @Param("componentName") String componentName);
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/HostComponentDao.java
similarity index 94%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/HostComponentDao.java
index 962ff62e1..d298875a1 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostComponentMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/HostComponentDao.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.HostComponentPO;
@@ -25,7 +25,7 @@
import java.util.List;
-public interface HostComponentMapper extends BaseMapper {
+public interface HostComponentDao extends BaseDao {
List findAllJoin();
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/HostDao.java
similarity index 92%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/HostDao.java
index 393e600c2..335a5e564 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/HostMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/HostDao.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.HostPO;
@@ -26,7 +26,7 @@
import java.util.Collection;
import java.util.List;
-public interface HostMapper extends BaseMapper {
+public interface HostDao extends BaseDao {
int saveAll(@Param("hosts") List hosts);
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/JobDao.java
similarity index 91%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/JobDao.java
index e984ceba4..82efe16a3 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/JobMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/JobDao.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.JobPO;
@@ -26,7 +26,7 @@
import java.util.List;
import java.util.Optional;
-public interface JobMapper extends BaseMapper {
+public interface JobDao extends BaseDao {
List findAllByClusterId(@Param("clusterId") Long clusterId);
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/RepoMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/RepoDao.java
similarity index 91%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/RepoMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/RepoDao.java
index f06e55b70..c951dfb35 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/RepoMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/RepoDao.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.RepoPO;
@@ -26,7 +26,7 @@
import java.util.List;
import java.util.Optional;
-public interface RepoMapper extends BaseMapper {
+public interface RepoDao extends BaseDao {
Optional findByRepoName(@Param("repoName") String clusterName);
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceConfigMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceConfigDao.java
similarity index 91%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceConfigMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceConfigDao.java
index 2b56b13bc..ddfd24c9d 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceConfigMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceConfigDao.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.ServiceConfigPO;
@@ -25,7 +25,7 @@
import java.util.List;
-public interface ServiceConfigMapper extends BaseMapper {
+public interface ServiceConfigDao extends BaseDao {
List findAllByClusterId(@Param("clusterId") Long clusterId);
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceDao.java
similarity index 92%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceDao.java
index 71b3b9edf..57d29805c 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/ServiceMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/ServiceDao.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.ServicePO;
@@ -26,7 +26,7 @@
import java.util.List;
import java.util.Optional;
-public interface ServiceMapper extends BaseMapper {
+public interface ServiceDao extends BaseDao {
List findAllByClusterId(@Param("clusterId") Long clusterId);
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/SettingMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/SettingDao.java
similarity index 88%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/SettingMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/SettingDao.java
index 7706c8bc9..c719b760e 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/SettingMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/SettingDao.java
@@ -17,8 +17,8 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.SettingPO;
-public interface SettingMapper extends BaseMapper {}
+public interface SettingDao extends BaseDao {}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StackMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/StackDao.java
similarity index 90%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StackMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/StackDao.java
index fe377817f..8523d2be1 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StackMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/StackDao.java
@@ -17,13 +17,13 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.StackPO;
import org.apache.ibatis.annotations.Param;
-public interface StackMapper extends BaseMapper {
+public interface StackDao extends BaseDao {
StackPO findByStackNameAndStackVersion(
@Param("stackName") String stackName, @Param("stackVersion") String stackVersion);
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StageMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/StageDao.java
similarity index 90%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StageMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/StageDao.java
index 9cb3b39da..993c57dce 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/StageMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/StageDao.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.StagePO;
@@ -25,7 +25,7 @@
import java.util.List;
-public interface StageMapper extends BaseMapper {
+public interface StageDao extends BaseDao {
List findByJobId(@Param("jobId") Long jobId);
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TaskMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/TaskDao.java
similarity index 90%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TaskMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/TaskDao.java
index 503c59e0b..7f74e536c 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TaskMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/TaskDao.java
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.TaskPO;
@@ -25,7 +25,7 @@
import java.util.List;
-public interface TaskMapper extends BaseMapper {
+public interface TaskDao extends BaseDao {
void updateStateByIds(@Param("tasks") List tasks);
}
diff --git a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TypeConfigMapper.java b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/TypeConfigDao.java
similarity index 88%
rename from bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TypeConfigMapper.java
rename to bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/TypeConfigDao.java
index a57b99852..0dd4b4785 100644
--- a/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/mapper/TypeConfigMapper.java
+++ b/bigtop-manager-dao/src/main/java/org/apache/bigtop/manager/dao/repository/TypeConfigDao.java
@@ -17,8 +17,8 @@
* under the License.
*/
-package org.apache.bigtop.manager.dao.mapper;
+package org.apache.bigtop.manager.dao.repository;
import org.apache.bigtop.manager.dao.po.TypeConfigPO;
-public interface TypeConfigMapper extends BaseMapper {}
+public interface TypeConfigDao extends BaseDao