95 lines
3.6 KiB
Java
95 lines
3.6 KiB
Java
package com.unisinsight.project.feign;
|
|
|
|
import com.unisinsight.project.config.FeignConfig;
|
|
import com.unisinsight.project.entity.dto.*;
|
|
import com.unisinsight.project.entity.req.*;
|
|
import com.unisinsight.project.entity.res.ImageStatusRes;
|
|
import org.springframework.cloud.openfeign.FeignClient;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* 第三方API客户端
|
|
*/
|
|
@FeignClient(
|
|
name = "external-api-client",
|
|
url = "${external.api.url:http://10.100.51.118:8000}",
|
|
configuration = FeignConfig.class
|
|
)
|
|
public interface ExternalApiClient {
|
|
|
|
@PostMapping("/api/v1/network/create")
|
|
ApiResponse createNetwork(@RequestBody Network network);
|
|
|
|
@DeleteMapping("/api/v1/network/{network_name}")
|
|
ApiResponse deleteNetwork(@PathVariable("network_name") String networkName);
|
|
|
|
@PutMapping("/api/v1/network/update")
|
|
ApiResponse updateNetwork(@RequestBody Network network);
|
|
|
|
@PostMapping("/api/v1/network/start")
|
|
ApiResponse startNetwork(@RequestBody NetworkManageReq networkManageReq);
|
|
|
|
@PostMapping("/api/v1/network/stop")
|
|
ApiResponse stopNetwork(@RequestBody NetworkManageReq networkManageReq);
|
|
|
|
@PostMapping("/api/v1/storage/pools")
|
|
ApiResponse createStorage(@RequestBody StoragePoolReq storagePoolReq);
|
|
|
|
@PostMapping("/api/v1/storage/pools/start")
|
|
ApiResponse startStorage(@RequestBody StoragePoolReq storagePoolReq);
|
|
|
|
@PostMapping("/api/v1/storage/pools/stop")
|
|
ApiResponse stopStorage(@RequestBody StoragePoolReq storagePoolReq);
|
|
|
|
@DeleteMapping("/api/v1/storage/pools/{pool_name}")
|
|
ApiResponse deleteStorage(@PathVariable("pool_name") String poolName);
|
|
|
|
@GetMapping("/api/v1/network/list")
|
|
ApiResponse<NetworkData> list(@RequestParam("page")int page, @RequestParam("page_size")int pageSize);
|
|
|
|
@GetMapping("/api/v1/storage/pools")
|
|
ApiResponse<StoragePoolData> listStorage(@RequestParam("page")int page, @RequestParam("page_size")int pageSize);
|
|
|
|
// 镜像虚拟机相关接口
|
|
@PostMapping("/api/v1/vm/batch-status")
|
|
ApiResponse<ImageStatusRes> getImageStatusData(@RequestBody Map<String, Object> requestBody);
|
|
|
|
@PostMapping("/api/v1/vm/create")
|
|
ApiResponse<ImageStatusRes> createImage(@RequestBody ImageCreateReq createReq);
|
|
|
|
@PostMapping("/api/v1/vm/update")
|
|
ApiResponse<ImageStatusRes> updateImage(@RequestBody ImageUpdateReq updateReq);
|
|
|
|
@PostMapping("/api/v1/vm/delete")
|
|
ApiResponse<ImageStatusRes> deleteImage(@RequestBody ImageDeleteReq deleteReq);
|
|
|
|
@PostMapping("/api/v1/vm/clone-to-desktop")
|
|
ApiResponse<ImageStatusRes> cloneTemplate(@RequestBody ImageCloneToDesktopReq cloneReq);
|
|
|
|
@PostMapping("/api/v1/vm/start")
|
|
ApiResponse<ImageStatusRes> startImage(@RequestBody ImageOperationReq operationReq);
|
|
|
|
@GetMapping("/api/v1/vm/{vm_name}")
|
|
ApiResponse<VmInfoDTO> getVmInfo(@PathVariable("vm_name") String vmName);
|
|
|
|
@PostMapping("/api/v1/vm/shutdown")
|
|
ApiResponse<ImageStatusRes> shutdownImage(@RequestBody ImageOperationReq operationReq);
|
|
|
|
@PostMapping("/api/v1/vm/destroy")
|
|
ApiResponse<ImageStatusRes> destroyImage(@RequestBody ImageOperationReq operationReq);
|
|
|
|
@PostMapping("/api/v1/vm/reboot")
|
|
ApiResponse<ImageStatusRes> rebootImage(@RequestBody ImageOperationReq operationReq);
|
|
@PostMapping("/api/v1/vm/remove-iso")
|
|
ApiResponse removeIso(@RequestBody ImageOperationReq operationReq);
|
|
@PostMapping("/api/v1/vm/attach-iso")
|
|
ApiResponse attachIso(@RequestBody ImageOperationIsoReq operationReq);
|
|
|
|
@GetMapping("/api/v1/network/bridge-interfaces")
|
|
ApiResponse<List<BridgeInterfaceDTO>> getBridgeInterfaces();
|
|
|
|
}
|