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 ce729c77..8a6d7ba5 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 @@ -71,6 +71,25 @@ public static String insert(TableMetaData tableMetaData, Entity entity, } break; } + case POSTGRESQL: { + sql.INSERT_INTO("\"" + tableMetaData.getTableName() + "\""); + for (Map.Entry entry : fieldColumnMap.entrySet()) { + // Ignore primary key + if (Objects.equals(entry.getKey(), tableMetaData.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"); } @@ -105,6 +124,25 @@ public static String update(TableMetaData tableMetaData, Entity entity, sql.WHERE(getEquals(tableMetaData.getPkColumn(), tableMetaData.getPkProperty())); break; } + case POSTGRESQL: { + sql.UPDATE("\"" + tableMetaData.getTableName() + "\""); + for (Map.Entry entry : fieldColumnMap.entrySet()) { + // Ignore primary key + if (Objects.equals(entry.getKey(), tableMetaData.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(tableMetaData.getPkColumn(), tableMetaData.getPkProperty())); + break; + } default: { log.error("Unsupported data source"); } @@ -123,6 +161,16 @@ public static String selectById(TableMetaData tableMetaData, String databaseId, sql.WHERE(tableMetaData.getPkColumn() + " = '" + id + "'"); break; } + case POSTGRESQL: { + String baseColumns = tableMetaData.getBaseColumns(); + if (baseColumns.toLowerCase().contains("user.")) { + baseColumns = baseColumns.replace("user.", "\"user\"."); + } + sql.SELECT(baseColumns); + sql.FROM("\"" + tableMetaData.getTableName() + "\""); + sql.WHERE(tableMetaData.getPkColumn() + " = " + id); + break; + } default: { log.error("Unsupported data source"); } @@ -143,6 +191,17 @@ public static String selectByIds( sql.WHERE(tableMetaData.getPkColumn() + " in ('" + idsStr + "')"); break; } + case POSTGRESQL: { + String idsStr = ids.stream().map(String::valueOf).collect(Collectors.joining(",")); + String baseColumns = tableMetaData.getBaseColumns(); + if (baseColumns.toLowerCase().contains("user.")) { + baseColumns = baseColumns.replace("user.", "\"user\"."); + } + sql.SELECT(baseColumns); + sql.FROM("\"" + tableMetaData.getTableName() + "\""); + sql.WHERE(tableMetaData.getPkColumn() + " in (" + idsStr + ")"); + break; + } default: { log.error("Unsupported data source"); } @@ -155,6 +214,14 @@ public static String selectAll(TableMetaData tableMetaData, String databaseId) { SQL sql = new SQL(); switch (DBType.toType(databaseId)) { + case POSTGRESQL: + String baseColumns = tableMetaData.getBaseColumns(); + if (baseColumns.toLowerCase().contains("user.")) { + baseColumns = baseColumns.replace("user.", "\"user\"."); + } + sql.SELECT(baseColumns); + sql.FROM("\"" + tableMetaData.getTableName() + "\""); + break; case MYSQL: { sql.SELECT(tableMetaData.getBaseColumns()); sql.FROM(tableMetaData.getTableName()); @@ -176,6 +243,11 @@ public static String deleteById(TableMetaData tableMetaData, String databaseId, sql.WHERE(tableMetaData.getPkColumn() + " = '" + id + "'"); break; } + case POSTGRESQL: { + sql.FROM("\"" + tableMetaData.getTableName() + "\""); + sql.WHERE(tableMetaData.getPkColumn() + " = " + id); + break; + } default: { log.error("Unsupported data source"); } @@ -194,6 +266,12 @@ public static String deleteByIds( sql.WHERE(tableMetaData.getPkColumn() + " in ('" + idsStr + "')"); break; } + case POSTGRESQL: { + String idsStr = ids.stream().map(String::valueOf).collect(Collectors.joining(", ")); + sql.DELETE_FROM("\"" + tableMetaData.getTableName() + "\""); + sql.WHERE(tableMetaData.getPkColumn() + " in (" + idsStr + ")"); + break; + } default: { log.error("Unsupported data source"); } @@ -208,6 +286,8 @@ public static String findByCondition( log.info("databaseId: {}", databaseId); SQL sql = new SQL(); switch (DBType.toType(databaseId)) { + case POSTGRESQL: + tableName = "\"" + tableName + "\""; case MYSQL: { sql = mysqlCondition(condition, tableName); break; diff --git a/bigtop-manager-dao/src/main/resources/mapper/postgresql/JobMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/postgresql/JobMapper.xml index 6efb75bc..7805bba8 100644 --- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/JobMapper.xml +++ b/bigtop-manager-dao/src/main/resources/mapper/postgresql/JobMapper.xml @@ -73,7 +73,7 @@ - select @@ -83,8 +83,11 @@ from (select * from job - - cluster_id = #{clusterId} + + id in + + #{id} + ) h @@ -92,6 +95,7 @@ on h.id = st.job_id inner join task tk on tk.job_id = h.id and st.id = tk.stage_id + order by h.id desc + + \ No newline at end of file diff --git a/bigtop-manager-dao/src/main/resources/mapper/postgresql/PlatformMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/postgresql/PlatformMapper.xml index e4ca9039..885ae6d1 100644 --- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/PlatformMapper.xml +++ b/bigtop-manager-dao/src/main/resources/mapper/postgresql/PlatformMapper.xml @@ -23,7 +23,7 @@ - id, name, credential, support_models + "id", "name", "credential", "support_models" diff --git a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ServiceConfigMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/postgresql/ServiceConfigMapper.xml index 52a30d61..e40c4f9e 100644 --- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/ServiceConfigMapper.xml +++ b/bigtop-manager-dao/src/main/resources/mapper/postgresql/ServiceConfigMapper.xml @@ -78,7 +78,7 @@ from (select * from service_config - selected = 1 + selected is true and cluster_id = #{clusterId} @@ -103,7 +103,7 @@ from (select * from service_config - selected = 1 + selected is true and cluster_id = #{clusterId} diff --git a/bigtop-manager-dao/src/main/resources/mapper/postgresql/StackMapper.xml b/bigtop-manager-dao/src/main/resources/mapper/postgresql/StackMapper.xml index d654df90..d9da21ba 100644 --- a/bigtop-manager-dao/src/main/resources/mapper/postgresql/StackMapper.xml +++ b/bigtop-manager-dao/src/main/resources/mapper/postgresql/StackMapper.xml @@ -24,7 +24,7 @@ - id, stack_name, stack_version + "id", "stack_name", "stack_version" 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 902311b0..42f1248e 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 StackDao stackDao; @@ -106,6 +109,7 @@ public void run() { } } } catch (Exception e) { + log.error(e.getMessage(), e); success = false; } 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 2081f7c3..f0a75671 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 @@ -25,10 +25,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.CompletableFuture; +@Slf4j public abstract class AbstractStage implements Stage { protected StageDao stageDao; @@ -93,6 +96,7 @@ public Boolean run() { try { return future.get(); } catch (Exception e) { + log.error("stage failed,", e); return false; } }) @@ -100,6 +104,7 @@ public Boolean run() { allTaskSuccess = taskResults.stream().allMatch(Boolean::booleanValue); } catch (Exception e) { + log.error("stage failed", e); allTaskSuccess = false; } 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 fc0871a8..41f840c5 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 @@ -31,6 +31,9 @@ import org.apache.bigtop.manager.server.grpc.GrpcClient; import org.apache.bigtop.manager.server.holder.SpringContextHolder; +import lombok.extern.slf4j.Slf4j; + +@Slf4j public abstract class AbstractTask implements Task { protected TaskDao taskDao; @@ -85,6 +88,7 @@ public Boolean run() { taskSuccess = reply != null && reply.getCode() == MessageConstants.SUCCESS_CODE; } catch (Exception e) { + log.error("task failed", e); taskSuccess = false; } diff --git a/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql b/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql index de449024..35fc719c 100644 --- a/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql +++ b/bigtop-manager-server/src/main/resources/ddl/PostgreSQL-DDL-CREATE.sql @@ -40,7 +40,7 @@ CREATE TABLE "user" username VARCHAR(32) DEFAULT NULL, password VARCHAR(32) DEFAULT NULL, nickname VARCHAR(32) DEFAULT NULL, - status int DEFAULT 1, + status BOOLEAN DEFAULT TRUE, create_time TIMESTAMP(0) DEFAULT NULL, update_time TIMESTAMP(0) DEFAULT NULL, create_by BIGINT, @@ -57,7 +57,7 @@ CREATE TABLE cluster cluster_name VARCHAR(255) DEFAULT NULL, cluster_desc VARCHAR(255) DEFAULT NULL, cluster_type SMALLINT CHECK (cluster_type > 0) DEFAULT 1, - selected int DEFAULT 1, + selected BOOLEAN DEFAULT TRUE, create_time TIMESTAMP(0) DEFAULT NULL, update_time TIMESTAMP(0) DEFAULT NULL, create_by BIGINT, @@ -265,7 +265,7 @@ CREATE TABLE service_config config_desc VARCHAR(255), create_by BIGINT, create_time TIMESTAMP(0), - selected SMALLINT default 0, + selected BOOLEAN default FALSE, update_by BIGINT, update_time TIMESTAMP(0), version INTEGER, @@ -372,7 +372,7 @@ CREATE INDEX idx_thread_id ON llm_chat_message (thread_id); CREATE INDEX idx_user_id ON llm_chat_message (user_id); INSERT INTO "user" (create_time, update_time, nickname, password, status, username) -VALUES (now(), now(), 'Administrator', '21232f297a57a5a743894a0e4a801fc3', 1, 'admin'); +VALUES (now(), now(), 'Administrator', '21232f297a57a5a743894a0e4a801fc3', true, 'admin'); INSERT INTO llm_platform (credential, NAME, support_models) VALUES