diff --git a/nex-be/src/main/java/com/unisinsight/project/entity/dto/VmInfoDTO.java b/nex-be/src/main/java/com/unisinsight/project/entity/dto/VmInfoDTO.java new file mode 100644 index 0000000..841c4ab --- /dev/null +++ b/nex-be/src/main/java/com/unisinsight/project/entity/dto/VmInfoDTO.java @@ -0,0 +1,161 @@ +package com.unisinsight.project.entity.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author : ch + * @version : 1.0 + * @ClassName : VmInfoDTO + * @Description : 虚拟机详细信息DTO + * @DATE : Created in 2025/9/2 + */ +@Data +public class VmInfoDTO { + + @JsonProperty("name") + private String name; + + @JsonProperty("uuid") + private String uuid; + + @JsonProperty("state") + private String state; + + @JsonProperty("vcpus") + private Integer vcpus; + + @JsonProperty("memory") + private Integer memory; + + @JsonProperty("memory_mb") + private Integer memoryMb; + + @JsonProperty("autostart") + private Integer autostart; + + @JsonProperty("persistent") + private Integer persistent; + + @JsonProperty("os_type") + private String osType; + + @JsonProperty("os_variant") + private String osVariant; + + @JsonProperty("created_at") + private Long createdAt; + + @JsonProperty("disk_size") + private Double diskSize; + + @JsonProperty("firmware_type") + private String firmwareType; + + @JsonProperty("disks") + private List disks; + + @JsonProperty("network_interfaces") + private List networkInterfaces; + + @JsonProperty("vnc") + private VncInfo vnc; + + @JsonProperty("auto_mount_virtio") + private Boolean autoMountVirtio; + + @JsonProperty("virtio_win_path") + private String virtioWinPath; + + @JsonProperty("iso_path") + private String isoPath; + + @JsonProperty("disk_path") + private String diskPath; + + @JsonProperty("storage_pool_name") + private String storagePoolName; + + @JsonProperty("interfaces") + private List interfaces; + + @JsonProperty("network_name") + private String networkName; + + @JsonProperty("disk_format") + private String diskFormat; + + @JsonProperty("status") + private String status; + + @JsonProperty("mac_address") + private String macAddress; + + @JsonProperty("vnc_port") + private String vncPort; + + @JsonProperty("description") + private String description; + + @JsonProperty("updated_at") + private Long updatedAt; + + @Data + public static class DiskInfo { + @JsonProperty("device") + private String device; + + @JsonProperty("file") + private String file; + + @JsonProperty("bus") + private String bus; + } + + @Data + public static class NetworkInterface { + @JsonProperty("mac") + private String mac; + + @JsonProperty("network") + private String network; + } + + @Data + public static class VncInfo { + @JsonProperty("port") + private String port; + + @JsonProperty("autoport") + private Boolean autoport; + + @JsonProperty("listen") + private String listen; + } + + @Data + public static class InterfaceInfo { + @JsonProperty("name") + private String name; + + @JsonProperty("mac") + private String mac; + + @JsonProperty("addresses") + private List addresses; + } + + @Data + public static class AddressInfo { + @JsonProperty("addr") + private String addr; + + @JsonProperty("prefix") + private Integer prefix; + + @JsonProperty("type") + private Integer type; + } +} \ No newline at end of file