diff --git a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/controller/SecretKeyController.java b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/controller/SecretKeyController.java index 626a1d32..668e05ed 100644 --- a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/controller/SecretKeyController.java +++ b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/controller/SecretKeyController.java @@ -44,13 +44,20 @@ public class SecretKeyController { } @PutMapping("/bindingMachine") - @Operation(summary = "绑定机器") //todo解绑机器 + @Operation(summary = "绑定机器") // @PreAuthorize("@ss.hasPermission('ci:secretKey:binding')") public CommonResult bindingMachine(@Valid @RequestBody SecretKeyVO secretKeyVO) { secretKeyService.bindingMachine(secretKeyVO); return success(true); } + @PutMapping("unbindMachine") + @Operation(summary = "解绑机器") + public CommonResult unbindMachine(@Valid @RequestBody SecretKeyVO secretKeyVO) { + secretKeyService.unbindMachine(secretKeyVO); + return success(true); + } + @GetMapping("/getSecretKey") @Operation(summary = "获取机器的环境变量") public CommonResult getSecretKey(@RequestParam("id") Long id) { @@ -76,6 +83,4 @@ public class SecretKeyController { } return success(BeanUtils.toBean(pageResult, SecretKeyVO.class)); } - - } diff --git a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/dal/mysql/MachineInfoMapper.java b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/dal/mysql/MachineInfoMapper.java index 407c4ebb..5b23cbe8 100644 --- a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/dal/mysql/MachineInfoMapper.java +++ b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/dal/mysql/MachineInfoMapper.java @@ -35,13 +35,6 @@ public interface MachineInfoMapper extends BaseMapperX { this.update(null, wrapper); } - default void unBindingSecretKey(List secretKeyId) { - LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper() - .set(MachineInfoDO::getSecretKeyId, null) - .in(MachineInfoDO::getSecretKeyId, secretKeyId); - this.update(null, wrapper); - } - default PageResult selectPage(MachineInfoVO machineInfoVO) { LambdaQueryWrapperX machineInfoDOLambdaQueryWrapperX = new LambdaQueryWrapperX() .likeIfPresent(MachineInfoDO::getName, machineInfoVO.getName()) diff --git a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/handler/ConnectionSession.java b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/handler/ConnectionSession.java index 88949967..4c5e87e6 100644 --- a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/handler/ConnectionSession.java +++ b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/handler/ConnectionSession.java @@ -17,6 +17,8 @@ import java.util.Objects; import java.util.Properties; import java.util.concurrent.atomic.AtomicBoolean; +import static cd.casic.framework.commons.exception.util.ServiceExceptionUtil.exception; +import static cd.casic.module.machine.contants.MachineErrorCodeConstants.*; /** * 优化后的SSH连接会话类 */ @@ -57,7 +59,7 @@ public class ConnectionSession implements AutoCloseable { */ public synchronized void connect() throws JSchException { if (status == ConnectionStatus.CONNECTED) { - log.debug("Already connected to {}", machineInfo.getHostIp()); + log.debug("已经连接到 {}", machineInfo.getHostIp()); return; } @@ -131,7 +133,7 @@ public class ConnectionSession implements AutoCloseable { if (machineInfo.getAuthenticationType() == AuthenticationType.SECRET_KEY.getCode()) { // 密钥认证 if (machineInfo.getSecretKeyId() == null) { - throw new JSchException("Secret key ID is required for key-based authentication"); + throw exception(SECRET_KEY_NULL); } String privateKeyContent = getPrivateKeyContent(machineInfo.getSecretKeyId()); diff --git a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/MachineInfoService.java b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/MachineInfoService.java index a7ea9c56..b86538e0 100644 --- a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/MachineInfoService.java +++ b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/MachineInfoService.java @@ -94,6 +94,4 @@ public interface MachineInfoService { * @return 操作结果 */ boolean downloadFile(String sessionId, String remoteFilePath, String localFilePath); - - void unBindingSecretKey(List SecretKeyIds); } diff --git a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/SecretKeyService.java b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/SecretKeyService.java index 178c421b..0307cb28 100644 --- a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/SecretKeyService.java +++ b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/SecretKeyService.java @@ -19,5 +19,7 @@ public interface SecretKeyService { void deleteSecretKeyList(List ids); SecretKeyVO getSecretKey(Long id); + + void unbindMachine(@Valid SecretKeyVO secretKeyVO); } diff --git a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/MachineinfoServiceImpl.java b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/MachineInfoServiceImpl.java similarity index 98% rename from modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/MachineinfoServiceImpl.java rename to modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/MachineInfoServiceImpl.java index 8c271e48..69b397be 100644 --- a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/MachineinfoServiceImpl.java +++ b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/MachineInfoServiceImpl.java @@ -31,7 +31,7 @@ import static cd.casic.module.machine.contants.MachineErrorCodeConstants.*; */ @Slf4j @Service("machineInfoService") -public class MachineinfoServiceImpl implements MachineInfoService { +public class MachineInfoServiceImpl implements MachineInfoService { @Resource private SecretKeyService secretKeyService; @@ -281,11 +281,6 @@ public class MachineinfoServiceImpl implements MachineInfoService { } } - @Override - public void unBindingSecretKey(List SecretKeyIds) { - machineInfoMapper.unBindingSecretKey(SecretKeyIds); - } - @VisibleForTesting void validateMachineEnvAdd(MachineInfoVO machineInfoVO) { if (machineInfoVO.getHostIp().isEmpty()) { diff --git a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/SecretKeyServiceImpl.java b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/SecretKeyServiceImpl.java index 0aa028a1..1e37d57e 100644 --- a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/SecretKeyServiceImpl.java +++ b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/SecretKeyServiceImpl.java @@ -42,6 +42,11 @@ public class SecretKeyServiceImpl implements SecretKeyService { return BeanUtils.toBean(secretKeyDO, SecretKeyVO.class); } + @Override + public void unbindMachine(SecretKeyVO secretKeyVO) { + machineInfoService.bindingSecretKey(secretKeyVO.getMachineInfoIds(),null); + } + @Override public Long createSecretKey(SecretKeyVO secretKeyVO) { validateSecretKeyAdd(secretKeyVO); @@ -99,7 +104,7 @@ public class SecretKeyServiceImpl implements SecretKeyService { ); //绑定的机器全部设置为空 - machineInfoService.unBindingSecretKey(ids); + machineInfoService.bindingSecretKey(ids,null); secretKeyMapper.deleteBatchIds(ids); }