diff --git a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/HostController.java b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/HostController.java
index 165455ae..3b7629f7 100644
--- a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/HostController.java
+++ b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/HostController.java
@@ -93,6 +93,15 @@ public class HostController {
return hostService.updateHostStatus(request);
}
+ @DemoDisableApi
+ @OperatorLog(HostOperatorType.UPDATE_SPEC)
+ @PutMapping("/update-spec")
+ @Operation(summary = "修改主机规格信息")
+ @PreAuthorize("@ss.hasPermission('asset:host:update')")
+ public Integer updateHostSpec(@Validated @RequestBody HostExtraUpdateRequest request) {
+ return hostService.updateHostSpec(request);
+ }
+
@IgnoreLog(IgnoreLogMode.RET)
@GetMapping("/get")
@Operation(summary = "通过 id 查询主机")
diff --git a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/HostExtraController.java b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/HostExtraController.java
index 336f004d..2e0e44e3 100644
--- a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/HostExtraController.java
+++ b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/controller/HostExtraController.java
@@ -26,10 +26,13 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
+import org.dromara.visor.common.constant.ErrorMessage;
+import org.dromara.visor.common.utils.Valid;
import org.dromara.visor.framework.log.core.annotation.IgnoreLog;
import org.dromara.visor.framework.log.core.enums.IgnoreLogMode;
import org.dromara.visor.framework.web.core.annotation.RestWrapper;
import org.dromara.visor.module.asset.entity.request.host.HostExtraUpdateRequest;
+import org.dromara.visor.module.asset.enums.HostExtraItemEnum;
import org.dromara.visor.module.asset.service.HostExtraService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -67,6 +70,8 @@ public class HostExtraController {
@PutMapping("/update")
@Operation(summary = "修改主机拓展信息")
public Integer updateHostExtra(@Validated @RequestBody HostExtraUpdateRequest request) {
+ HostExtraItemEnum item = Valid.valid(HostExtraItemEnum::of, request.getItem());
+ Valid.isTrue(item.isUserExtra(), ErrorMessage.PARAM_ERROR);
return hostExtraService.updateHostExtra(request);
}
diff --git a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostOperatorType.java b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostOperatorType.java
index f9621213..72890501 100644
--- a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostOperatorType.java
+++ b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/define/operator/HostOperatorType.java
@@ -48,6 +48,8 @@ public class HostOperatorType extends InitializingOperatorTypes {
public static final String UPDATE_CONFIG = "host:update-config";
+ public static final String UPDATE_SPEC = "host:update-spec";
+
@Override
public OperatorType[] types() {
return new OperatorType[]{
@@ -56,6 +58,7 @@ public class HostOperatorType extends InitializingOperatorTypes {
new OperatorType(H, DELETE, "删除主机 ${count} 条"),
new OperatorType(M, UPDATE_STATUS, "修改主机状态 ${name} - ${status}"),
new OperatorType(M, UPDATE_CONFIG, "修改主机配置 ${name}"),
+ new OperatorType(M, UPDATE_SPEC, "修改主机规格信息 ${name}"),
};
}
diff --git a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/host/HostExtraUpdateRequest.java b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/host/HostExtraUpdateRequest.java
index 33ac0cb2..2847aff1 100644
--- a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/host/HostExtraUpdateRequest.java
+++ b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/entity/request/host/HostExtraUpdateRequest.java
@@ -49,7 +49,6 @@ public class HostExtraUpdateRequest {
@Schema(description = "主机id")
private Long hostId;
- @NotNull
@Schema(description = "配置项")
private String item;
diff --git a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/config/strategy/HostSshConfigStrategy.java b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/config/strategy/HostSshConfigStrategy.java
index 7dfa8863..d54668ca 100644
--- a/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/config/strategy/HostSshConfigStrategy.java
+++ b/orion-visor-modules/orion-visor-module-asset/orion-visor-module-asset-service/src/main/java/org/dromara/visor/module/asset/handler/host/config/strategy/HostSshConfigStrategy.java
@@ -122,14 +122,12 @@ public class HostSshConfigStrategy extends AbstractGenericsDataStrategy) {
+ return axios.put('/asset/host/update-spec', request);
+}
+
/**
* 查询主机
*/
diff --git a/orion-visor-ui/src/views/asset/host-list/components/host-form-spec.vue b/orion-visor-ui/src/views/asset/host-list/components/host-form-spec.vue
index c8d750bd..b1e5e085 100644
--- a/orion-visor-ui/src/views/asset/host-list/components/host-form-spec.vue
+++ b/orion-visor-ui/src/views/asset/host-list/components/host-form-spec.vue
@@ -252,10 +252,11 @@