You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
4.3 KiB
111 lines
4.3 KiB
4 months ago
|
package models
|
||
|
|
||
|
import "time"
|
||
|
|
||
|
// DisableInfoResponse represents the response containing disable information for a VM operation.
|
||
|
type DisableInfoResponse struct {
|
||
|
DisableInfo DisableInfo `json:"task_info"`
|
||
|
RequestID string `json:"request_id"`
|
||
|
}
|
||
|
|
||
|
// DisableInfo represents the detailed task information for a VM operation.
|
||
|
type DisableInfo struct {
|
||
|
Progress int `json:"progress"`
|
||
|
RequestID string `json:"request_id"`
|
||
|
Finished time.Time `json:"finished"`
|
||
|
ParentID int `json:"parent_id"`
|
||
|
NodeID int `json:"node_id"`
|
||
|
Error string `json:"error"`
|
||
|
VMID int `json:"vm_id"`
|
||
|
NewVMStatus string `json:"new_vm_status"`
|
||
|
CurrentVMStatus string `json:"current_vm_status"`
|
||
|
Snapshot string `json:"snapshot"`
|
||
|
InitiatorID int `json:"initiator_id"`
|
||
|
Type string `json:"type"`
|
||
|
Started time.Time `json:"started"`
|
||
|
TimeoutAt time.Time `json:"timeout_at"`
|
||
|
NewNodeID int `json:"new_node_id"`
|
||
|
Status string `json:"status"`
|
||
|
Command string `json:"command"`
|
||
|
Created time.Time `json:"created"`
|
||
|
HasChildren bool `json:"has_children"`
|
||
|
Initiator Initiator `json:"initiator"`
|
||
|
Node TaskNode `json:"node"`
|
||
|
Cluster Cluster `json:"cluster"`
|
||
|
VM VM `json:"vm"`
|
||
|
}
|
||
|
|
||
|
// Initiator represents the initiator of the task.
|
||
|
type Initiator struct {
|
||
|
Name string `json:"name"`
|
||
|
UserID int `json:"user_id"`
|
||
|
Email string `json:"email"`
|
||
|
Login string `json:"login"`
|
||
|
}
|
||
|
|
||
|
// TaskNode represents the node information.
|
||
|
type TaskNode struct {
|
||
|
ServerUUID string `json:"server_uuid"`
|
||
|
SDKStatus string `json:"sdk_status"`
|
||
|
NodeID int `json:"node_id"`
|
||
|
Status string `json:"status"`
|
||
|
Compute bool `json:"compute"`
|
||
|
Name string `json:"name"`
|
||
|
VStorageClusterID int `json:"vstorage_cluster_id"`
|
||
|
VStorageStatus string `json:"vstorage_status"`
|
||
|
MaintenanceStatus string `json:"maintenance_status"`
|
||
|
StorageStatus string `json:"storage_status"`
|
||
|
ClusterID int `json:"cluster_id"`
|
||
|
IPAddress string `json:"ip_address"`
|
||
|
Deleted time.Time `json:"deleted"`
|
||
|
Modified time.Time `json:"modified"`
|
||
|
VStorageHostID int `json:"vstorage_host_id"`
|
||
|
Description string `json:"description"`
|
||
|
Created time.Time `json:"created"`
|
||
|
}
|
||
|
|
||
|
// Cluster represents the cluster information.
|
||
|
type Cluster struct {
|
||
|
CPUOvercommit float64 `json:"cpu_overcommit"`
|
||
|
FenixPingIP string `json:"fenix_ping_ip"`
|
||
|
Created time.Time `json:"created"`
|
||
|
FenixClusterStatus string `json:"fenix_cluster_status"`
|
||
|
StorageName string `json:"storage_name"`
|
||
|
FenixBalancingStrategy string `json:"fenix_balancing_strategy"`
|
||
|
FenixEnabled bool `json:"fenix_enabled"`
|
||
|
Name string `json:"name"`
|
||
|
VStorageClusterID int `json:"vstorage_cluster_id"`
|
||
|
FenixClusterID int `json:"fenix_cluster_id"`
|
||
|
FenixBroadcastIP string `json:"fenix_broadcast_ip"`
|
||
|
DRSMode string `json:"drs_mode"`
|
||
|
MemoryOvercommit float64 `json:"memory_overcommit"`
|
||
|
ClusterID int `json:"cluster_id"`
|
||
|
StorageType string `json:"storage_type"`
|
||
|
Deleted time.Time `json:"deleted"`
|
||
|
Modified time.Time `json:"modified"`
|
||
|
NodeCount int `json:"node_count"`
|
||
|
VMTotalRAM int `json:"vm_total_ram"`
|
||
|
VMCount int `json:"vm_count"`
|
||
|
}
|
||
|
|
||
|
// VM represents the virtual machine information.
|
||
|
type VM struct {
|
||
|
VMID int `json:"vm_id"`
|
||
|
Name string `json:"name"`
|
||
|
UUID string `json:"uuid"`
|
||
|
IPAddress string `json:"ip_address"`
|
||
|
Status string `json:"status"`
|
||
|
LinkedCloneCount int `json:"linked_clone_count"`
|
||
|
SnapshotCount int `json:"snapshot_count"`
|
||
|
HostDeviceCount int `json:"host_device_count"`
|
||
|
Node NodeRef `json:"node"`
|
||
|
SMBIOSUUID string `json:"smbios_uuid"`
|
||
|
AllMD5 bool `json:"all_md5"`
|
||
|
}
|
||
|
|
||
|
// NodeRef represents a reference to a node, used within VM information.
|
||
|
type NodeRef struct {
|
||
|
NodeID int `json:"node_id"`
|
||
|
Name string `json:"name"`
|
||
|
}
|