From e98bace51b46e704298bf722098120162acf69a7 Mon Sep 17 00:00:00 2001 From: lijiahangmax Date: Thu, 14 Mar 2024 00:09:20 +0800 Subject: [PATCH] =?UTF-8?q?:hammer:=20=E6=89=A7=E8=A1=8C=E6=97=A5=E5=BF=97?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../asset/controller/ExecController.java | 17 +- .../asset/controller/ExecLogController.java | 17 +- .../request/exec/ExecLogQueryRequest.java | 7 - .../{ExecVO.java => ExecCommandHostVO.java} | 11 +- .../module/asset/entity/vo/ExecCommandVO.java | 32 +++ .../module/asset/service/ExecLogService.java | 8 - .../ops/module/asset/service/ExecService.java | 4 +- .../service/impl/ExecLogServiceImpl.java | 9 - .../asset/service/impl/ExecServiceImpl.java | 17 +- orion-ops-ui/src/api/exec/exec-host-log.ts | 135 --------- orion-ops-ui/src/api/exec/exec-log.ts | 40 ++- orion-ops-ui/src/api/exec/exec.ts | 53 ++++ orion-ops-ui/src/assets/style/global.less | 10 + .../view/json-editor/modal/index.vue | 8 +- .../view/shell-editor/modal/index.vue | 9 +- .../components/connect-log-table.vue | 17 +- .../sftp-log/components/sftp-log-table.vue | 22 +- .../components/exec-host-log-form-modal.vue | 206 -------------- .../components/exec-host-log-table.vue | 257 ------------------ .../src/views/exec/exec-host-log/index.vue | 51 ---- .../views/exec/exec-host-log/types/const.ts | 22 -- .../exec/exec-host-log/types/form.rules.ts | 82 ------ .../exec/exec-host-log/types/table.columns.ts | 122 --------- .../components/exec-host-log-table.vue | 89 +++++- .../components/exec-log-form-modal.vue | 199 -------------- .../exec-log/components/exec-log-table.vue | 87 +++++- .../src/views/exec/exec-log/index.vue | 32 ++- .../views/exec/exec-log/types/form.rules.ts | 76 ------ .../exec/exec-log/types/host-table.columns.ts | 93 +------ .../exec/exec-log/types/sub-table.columns.ts | 40 --- .../exec/exec-log/types/table.columns.ts | 7 +- .../components/operator-log-simple-table.vue | 13 +- .../components/operator-log-table.vue | 13 +- 33 files changed, 379 insertions(+), 1426 deletions(-) rename orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/vo/{ExecVO.java => ExecCommandHostVO.java} (61%) create mode 100644 orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/vo/ExecCommandVO.java delete mode 100644 orion-ops-ui/src/api/exec/exec-host-log.ts create mode 100644 orion-ops-ui/src/api/exec/exec.ts delete mode 100644 orion-ops-ui/src/views/exec/exec-host-log/components/exec-host-log-form-modal.vue delete mode 100644 orion-ops-ui/src/views/exec/exec-host-log/components/exec-host-log-table.vue delete mode 100644 orion-ops-ui/src/views/exec/exec-host-log/index.vue delete mode 100644 orion-ops-ui/src/views/exec/exec-host-log/types/const.ts delete mode 100644 orion-ops-ui/src/views/exec/exec-host-log/types/form.rules.ts delete mode 100644 orion-ops-ui/src/views/exec/exec-host-log/types/table.columns.ts delete mode 100644 orion-ops-ui/src/views/exec/exec-log/components/exec-log-form-modal.vue delete mode 100644 orion-ops-ui/src/views/exec/exec-log/types/form.rules.ts delete mode 100644 orion-ops-ui/src/views/exec/exec-log/types/sub-table.columns.ts diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/ExecController.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/ExecController.java index f0467d51..6846b878 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/ExecController.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/ExecController.java @@ -7,17 +7,14 @@ import com.orion.ops.framework.web.core.annotation.RestWrapper; import com.orion.ops.module.asset.define.operator.ExecOperatorType; import com.orion.ops.module.asset.entity.request.exec.ExecCommandRequest; import com.orion.ops.module.asset.entity.request.exec.ExecInterruptRequest; -import com.orion.ops.module.asset.entity.vo.ExecVO; +import com.orion.ops.module.asset.entity.vo.ExecCommandVO; import com.orion.ops.module.asset.service.ExecService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -44,12 +41,12 @@ public class ExecController { @PostMapping("/exec-command") @Operation(summary = "批量执行命令") @PreAuthorize("@ss.hasPermission('asset:exec:exec-command')") - public ExecVO execCommand(@RequestBody ExecCommandRequest request) { + public ExecCommandVO execCommand(@RequestBody ExecCommandRequest request) { return execService.execCommand(request); } @OperatorLog(ExecOperatorType.INTERRUPT_EXEC) - @PostMapping("/interrupt") + @PutMapping("/interrupt") @Operation(summary = "中断执行命令") @PreAuthorize("@ss.hasPermission('asset:exec:interrupt-exec')") public HttpWrapper interruptExec(@RequestBody ExecInterruptRequest request) { @@ -59,8 +56,8 @@ public class ExecController { } @OperatorLog(ExecOperatorType.INTERRUPT_HOST) - @PostMapping("/interrupt-host") - @Operation(summary = "中断执行命令") + @PutMapping("/interrupt-host") + @Operation(summary = "中断执行主机命令") @PreAuthorize("@ss.hasPermission('asset:exec:interrupt-exec')") public HttpWrapper interruptHostExec(@RequestBody ExecInterruptRequest request) { Long hostLogId = Valid.notNull(request.getHostLogId()); @@ -69,5 +66,7 @@ public class ExecController { } // TODO tail log + // TODO 重新执行 + // TODO 删除时 中断 } diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/ExecLogController.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/ExecLogController.java index 5bc67dfc..516082e0 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/ExecLogController.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/controller/ExecLogController.java @@ -2,7 +2,6 @@ package com.orion.ops.module.asset.controller; import com.orion.lang.define.wrapper.DataGrid; import com.orion.ops.framework.biz.operator.log.core.annotation.OperatorLog; -import com.orion.ops.framework.common.validator.group.Batch; import com.orion.ops.framework.common.validator.group.Page; import com.orion.ops.framework.log.core.annotation.IgnoreLog; import com.orion.ops.framework.log.core.enums.IgnoreLogMode; @@ -48,15 +47,6 @@ public class ExecLogController { @Resource private ExecHostLogService execHostLogService; - @IgnoreLog(IgnoreLogMode.RET) - @GetMapping("/get") - @Operation(summary = "查询执行日志") - @Parameter(name = "id", description = "id", required = true) - @PreAuthorize("@ss.hasPermission('asset:exec-log:query')") - public ExecLogVO getExecLog(@RequestParam("id") Long id) { - return execLogService.getExecLogById(id); - } - @IgnoreLog(IgnoreLogMode.RET) @PostMapping("/query") @Operation(summary = "分页查询执行日志") @@ -76,10 +66,11 @@ public class ExecLogController { @IgnoreLog(IgnoreLogMode.RET) @GetMapping("/status") - @Operation(summary = "查询执行日志状态") + @Operation(summary = "查询命令执行状态") + @Parameter(name = "idList", description = "idList", required = true) @PreAuthorize("@ss.hasPermission('asset:exec-log:query')") - public ExecLogStatusVO getExecLogStatus(@Validated(Batch.class) @RequestBody ExecLogQueryRequest request) { - return execLogService.getExecLogStatus(request.getIdList()); + public ExecLogStatusVO getExecLogStatus(@RequestParam("idList") List idList) { + return execLogService.getExecLogStatus(idList); } @OperatorLog(ExecOperatorType.DELETE_LOG) diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/exec/ExecLogQueryRequest.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/exec/ExecLogQueryRequest.java index 87f97582..4000bcb6 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/exec/ExecLogQueryRequest.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/request/exec/ExecLogQueryRequest.java @@ -2,14 +2,11 @@ package com.orion.ops.module.asset.entity.request.exec; import com.fasterxml.jackson.annotation.JsonFormat; import com.orion.ops.framework.common.entity.PageRequest; -import com.orion.ops.framework.common.validator.group.Batch; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; -import javax.validation.constraints.NotEmpty; import javax.validation.constraints.Size; import java.util.Date; -import java.util.List; /** * 批量执行日志 查询请求对象 @@ -29,10 +26,6 @@ public class ExecLogQueryRequest extends PageRequest { @Schema(description = "id") private Long id; - @NotEmpty(groups = Batch.class) - @Schema(description = "id") - private List idList; - @Schema(description = "执行用户id") private Long userId; diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/vo/ExecVO.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/vo/ExecCommandHostVO.java similarity index 61% rename from orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/vo/ExecVO.java rename to orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/vo/ExecCommandHostVO.java index b07abf21..c54ea484 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/vo/ExecVO.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/vo/ExecCommandHostVO.java @@ -7,10 +7,9 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; -import java.util.Map; /** - * 批量执行 视图响应对象 + * 命令执行主机 视图响应对象 * * @author Jiahang Li * @version 1.0.0 @@ -20,13 +19,13 @@ import java.util.Map; @Builder @NoArgsConstructor @AllArgsConstructor -@Schema(name = "ExecVO", description = "批量执行 视图响应对象") -public class ExecVO implements Serializable { +@Schema(name = "ExecCommandHostVO", description = "命令执行主机 视图响应对象") +public class ExecCommandHostVO implements Serializable { @Schema(description = "id") private Long id; - @Schema(description = "主机 id 映射 host:id") - private Map hostIdRel; + @Schema(description = "hostId") + private Long hostId; } diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/vo/ExecCommandVO.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/vo/ExecCommandVO.java new file mode 100644 index 00000000..db0c1035 --- /dev/null +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/entity/vo/ExecCommandVO.java @@ -0,0 +1,32 @@ +package com.orion.ops.module.asset.entity.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +/** + * 命令执行 视图响应对象 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2024/3/11 14:57 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "ExecCommandVO", description = "命令执行 视图响应对象") +public class ExecCommandVO implements Serializable { + + @Schema(description = "id") + private Long id; + + @Schema(description = "主机 id 映射") + private List hosts; + +} diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/ExecLogService.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/ExecLogService.java index 536335b9..ee2f215f 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/ExecLogService.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/ExecLogService.java @@ -16,14 +16,6 @@ import java.util.List; */ public interface ExecLogService { - /** - * 查询批量执行日志 - * - * @param id id - * @return row - */ - ExecLogVO getExecLogById(Long id); - /** * 分页查询批量执行日志 * diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/ExecService.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/ExecService.java index 9a499071..49332c0b 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/ExecService.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/ExecService.java @@ -1,7 +1,7 @@ package com.orion.ops.module.asset.service; import com.orion.ops.module.asset.entity.request.exec.ExecCommandRequest; -import com.orion.ops.module.asset.entity.vo.ExecVO; +import com.orion.ops.module.asset.entity.vo.ExecCommandVO; /** * 批量执行服务 @@ -18,7 +18,7 @@ public interface ExecService { * @param request request * @return result */ - ExecVO execCommand(ExecCommandRequest request); + ExecCommandVO execCommand(ExecCommandRequest request); /** * 中断命令执行 diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/ExecLogServiceImpl.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/ExecLogServiceImpl.java index e2d3d2b9..5f00651f 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/ExecLogServiceImpl.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/ExecLogServiceImpl.java @@ -48,15 +48,6 @@ public class ExecLogServiceImpl implements ExecLogService { @Resource private ExecHostLogService execHostLogService; - @Override - public ExecLogVO getExecLogById(Long id) { - // 查询 - ExecLogDO record = execLogDAO.selectById(id); - Valid.notNull(record, ErrorMessage.DATA_ABSENT); - // 转换 - return ExecLogConvert.MAPPER.to(record); - } - @Override public DataGrid getExecLogPage(ExecLogQueryRequest request) { // 条件 diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/ExecServiceImpl.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/ExecServiceImpl.java index 9cfd96af..413ebe21 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/ExecServiceImpl.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/ExecServiceImpl.java @@ -24,7 +24,8 @@ import com.orion.ops.module.asset.entity.domain.ExecHostLogDO; import com.orion.ops.module.asset.entity.domain.ExecLogDO; import com.orion.ops.module.asset.entity.domain.HostDO; import com.orion.ops.module.asset.entity.request.exec.ExecCommandRequest; -import com.orion.ops.module.asset.entity.vo.ExecVO; +import com.orion.ops.module.asset.entity.vo.ExecCommandHostVO; +import com.orion.ops.module.asset.entity.vo.ExecCommandVO; import com.orion.ops.module.asset.enums.ExecHostStatusEnum; import com.orion.ops.module.asset.enums.ExecSourceEnum; import com.orion.ops.module.asset.enums.ExecStatusEnum; @@ -82,7 +83,7 @@ public class ExecServiceImpl implements ExecService { @Override @Transactional(rollbackFor = Exception.class) - public ExecVO execCommand(ExecCommandRequest request) { + public ExecCommandVO execCommand(ExecCommandRequest request) { log.info("ExecService.startExecCommand start params: {}", JSON.toJSONString(request)); LoginUser user = Objects.requireNonNull(SecurityUtils.getLoginUser()); Long userId = user.getId(); @@ -141,11 +142,15 @@ public class ExecServiceImpl implements ExecService { // 操作日志 OperatorLogs.add(OperatorLogs.ID, execId); // 返回 - Map hostIdRel = execHostLogs.stream() - .collect(Collectors.toMap(s -> String.valueOf(s.getHostId()), ExecHostLogDO::getId)); - return ExecVO.builder() + List hostResult = execHostLogs.stream() + .map(s -> ExecCommandHostVO.builder() + .id(s.getId()) + .hostId(s.getHostId()) + .build()) + .collect(Collectors.toList()); + return ExecCommandVO.builder() .id(execId) - .hostIdRel(hostIdRel) + .hosts(hostResult) .build(); } diff --git a/orion-ops-ui/src/api/exec/exec-host-log.ts b/orion-ops-ui/src/api/exec/exec-host-log.ts deleted file mode 100644 index ddf45730..00000000 --- a/orion-ops-ui/src/api/exec/exec-host-log.ts +++ /dev/null @@ -1,135 +0,0 @@ -import type { DataGrid, Pagination } from '@/types/global'; -import type { TableData } from '@arco-design/web-vue/es/table/interface'; -import axios from 'axios'; -import qs from 'query-string'; - -/** - * 主机执行记录创建请求 - */ -export interface ExecHostLogCreateRequest { - logId?: number; - hostId?: number; - hostName?: string; - status?: string; - command?: string; - parameter?: string; - exitStatus?: number; - logPath?: string; - errorMessage?: string; - startTime?: string; - finishTime?: string; -} - -/** - * 主机执行记录更新请求 - */ -export interface ExecHostLogUpdateRequest extends ExecHostLogCreateRequest { - id?: number; -} - -/** - * 主机执行记录查询请求 - */ -export interface ExecHostLogQueryRequest extends Pagination { - searchValue?: string; - id?: number; - logId?: number; - hostId?: number; - hostName?: string; - status?: string; - command?: string; - parameter?: string; - exitStatus?: number; - logPath?: string; - errorMessage?: string; - startTime?: string; - finishTime?: string; -} - -/** - * 主机执行记录查询响应 - */ -export interface ExecHostLogQueryResponse extends TableData { - id: number; - logId: number; - hostId: number; - hostName: string; - status: string; - command: string; - parameter: string; - exitStatus: number; - logPath: string; - errorMessage: string; - startTime: number; - finishTime: number; - createTime: number; - updateTime: number; - creator: string; - updater: string; -} - -/** - * 创建主机执行记录 - */ -export function createExecHostLog(request: ExecHostLogCreateRequest) { - return axios.post('/asset/exec-host-log/create', request); -} - -/** - * 更新主机执行记录 - */ -export function updateExecHostLog(request: ExecHostLogUpdateRequest) { - return axios.put('/asset/exec-host-log/update', request); -} - -/** - * 查询主机执行记录 - */ -export function getExecHostLog(id: number) { - return axios.get('/asset/exec-host-log/get', { params: { id } }); -} - -/** - * 批量查询主机执行记录 - */ -export function batchGetExecHostLogList(idList: Array) { - return axios.get('/asset/exec-host-log/batch-get', { - params: { idList }, - paramsSerializer: params => { - return qs.stringify(params, { arrayFormat: 'comma' }); - } - }); -} - -/** - * 查询全部主机执行记录 - */ -export function getExecHostLogList(request: ExecHostLogQueryRequest) { - return axios.post>('/asset/exec-host-log/list', request); -} - -/** - * 分页查询主机执行记录 - */ -export function getExecHostLogPage(request: ExecHostLogQueryRequest) { - return axios.post>('/asset/exec-host-log/query', request); -} - -/** - * 删除主机执行记录 - */ -export function deleteExecHostLog(id: number) { - return axios.delete('/asset/exec-host-log/delete', { params: { id } }); -} - -/** - * 批量删除主机执行记录 - */ -export function batchDeleteExecHostLog(idList: Array) { - return axios.delete('/asset/exec-host-log/batch-delete', { - params: { idList }, - paramsSerializer: params => { - return qs.stringify(params, { arrayFormat: 'comma' }); - } - }); -} diff --git a/orion-ops-ui/src/api/exec/exec-log.ts b/orion-ops-ui/src/api/exec/exec-log.ts index 1d6c33c4..bf5f4626 100644 --- a/orion-ops-ui/src/api/exec/exec-log.ts +++ b/orion-ops-ui/src/api/exec/exec-log.ts @@ -55,10 +55,11 @@ export interface ExecHostLogQueryResponse extends TableData { } /** - * 查询执行记录 + * 执行状态查询响应 */ -export function getExecLog(id: number) { - return axios.get('/asset/exec-log/get', { params: { id } }); +export interface ExecStatusResponse { + logList: Array; + hostList: Array; } /** @@ -75,6 +76,18 @@ export function getExecHostLogList(logId: number) { return axios.get>('/asset/exec-log/host-list', { params: { logId } }); } +/** + * 查询命令执行状态 + */ +export function getExecLogStatus(idList: Array) { + return axios.get('/asset/exec-log/status', { + params: { idList }, + paramsSerializer: params => { + return qs.stringify(params, { arrayFormat: 'comma' }); + } + }); +} + /** * 删除执行记录 */ @@ -93,3 +106,24 @@ export function batchDeleteExecLog(idList: Array) { } }); } + +/** + * 删除主机执行记录 + */ +export function deleteExecHostLog(id: number) { + return axios.delete('/asset/exec-log/delete-host', { params: { id } }); +} + +/** + * 查询操作日志数量 + */ +export function getExecLogCount(request: ExecLogQueryRequest) { + return axios.post('/asset/exec-log/query-count', request); +} + +/** + * 清空操作日志 + */ +export function clearExecLog(request: ExecLogQueryRequest) { + return axios.post('/asset/exec-log/clear', request); +} diff --git a/orion-ops-ui/src/api/exec/exec.ts b/orion-ops-ui/src/api/exec/exec.ts new file mode 100644 index 00000000..61a248d9 --- /dev/null +++ b/orion-ops-ui/src/api/exec/exec.ts @@ -0,0 +1,53 @@ +import axios from 'axios'; + +/** + * 执行命令请求 + */ +export interface ExecCommandRequest { + templateId?: number; + description?: string; + timeout?: number; + command?: string; + parameter?: string; + hostIdList?: number[]; +} + +/** + * 中断命令请求 + */ +export interface ExecInterruptRequest { + logId?: number; + hostLogId?: number; +} + +/** + * 执行命令响应 + */ +export interface ExecCommandResponse { + id: number; + hosts: { + id: number; + hostId: number; + }; +} + +/** + * 执行命令 + */ +export function execCommand(request: ExecCommandRequest) { + return axios.post('/asset/exec/exec-command', request); +} + +/** + * 中断执行命令 + */ +export function interruptExec(request: ExecInterruptRequest) { + return axios.put('/asset/exec/interrupt', request); +} + +/** + * 中断执行主机命令 + */ +export function interruptHostExec(request: ExecInterruptRequest) { + return axios.put('/asset/exec/interrupt-host', request); +} diff --git a/orion-ops-ui/src/assets/style/global.less b/orion-ops-ui/src/assets/style/global.less index 186e25e3..613ad9b1 100644 --- a/orion-ops-ui/src/assets/style/global.less +++ b/orion-ops-ui/src/assets/style/global.less @@ -266,6 +266,16 @@ body { color: rgb(var(--red-6)); } +.table-cell-value { + color: var(--color-text-2); +} + +.table-cell-sub-value { + margin-top: 4px; + display: inline-block; + color: var(--color-text-3); +} + // -- 滚动条 #app { -webkit-font-smoothing: antialiased; diff --git a/orion-ops-ui/src/components/view/json-editor/modal/index.vue b/orion-ops-ui/src/components/view/json-editor/modal/index.vue index c26abb8f..5fb224ba 100644 --- a/orion-ops-ui/src/components/view/json-editor/modal/index.vue +++ b/orion-ops-ui/src/components/view/json-editor/modal/index.vue @@ -2,7 +2,7 @@
- +
@@ -36,6 +36,10 @@ height: { type: String, default: 'calc(100vh - 240px)' + }, + readonly: { + type: Boolean, + default: true } }); diff --git a/orion-ops-ui/src/components/view/shell-editor/modal/index.vue b/orion-ops-ui/src/components/view/shell-editor/modal/index.vue index 92881fe3..f3cd3891 100644 --- a/orion-ops-ui/src/components/view/shell-editor/modal/index.vue +++ b/orion-ops-ui/src/components/view/shell-editor/modal/index.vue @@ -2,7 +2,7 @@ + :theme="dark ? 'vs-dark' : 'vs'" + :readonly="readonly" /> @@ -44,6 +45,10 @@ type: Boolean, default: true }, + readonly: { + type: Boolean, + default: false + } }); const { visible, setVisible } = useVisible(); diff --git a/orion-ops-ui/src/views/asset-audit/connect-log/components/connect-log-table.vue b/orion-ops-ui/src/views/asset-audit/connect-log/components/connect-log-table.vue index 2de5fbfe..a6f85803 100644 --- a/orion-ops-ui/src/views/asset-audit/connect-log/components/connect-log-table.vue +++ b/orion-ops-ui/src/views/asset-audit/connect-log/components/connect-log-table.vue @@ -104,11 +104,11 @@