github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/sms/v3/tasks/results.go (about) 1 package tasks 2 3 // CreateResp is a auto create Response Object 4 type CreateResp struct { 5 // 创建成功返回的任务id 6 ID string `json:"id"` 7 } 8 9 // MigrateTask 查询指定迁移任务的返回体 10 type MigrateTask struct { 11 // 任务名称 12 Name string `json:"name"` 13 // 任务类型,创建时必选,更新时可选 14 Type string `json:"type"` 15 // 操作系统类型,分为WINDOWS和LINUX,创建时必选,更新时可选 16 OsType string `json:"os_type"` 17 // 迁移任务id 18 Id string `json:"id"` 19 // 进程优先级 20 // 0:低 21 // 1:标准(默认) 22 // 2:高 23 Priority int `json:"priority"` 24 // 迁移完成后是否启动目的端服务器 25 // true:启动 26 // false:停止 27 StartTargetServer bool `json:"start_target_server"` 28 // 企业项目id 29 EnterpriseProjectId string `json:"enterprise_project_id"` 30 // 目的端服务器的IP地址。 31 // 公网迁移时请填写弹性IP地址 32 // 专线迁移时请填写私有IP地址 33 MigrationIp string `json:"migration_ip"` 34 // 目的端服务器的区域名称 35 Region string `json:"region_name"` 36 // 目的端服务器的区域ID 37 RegionID string `json:"region_id"` 38 // 目的端服务器所在项目名称 39 Project string `json:"project_name"` 40 // 目的端服务器所在项目ID 41 ProjectID string `json:"project_id"` 42 // 模板ID 43 VmTemplateId string `json:"vm_template_id"` 44 // 源端服务器信息 45 SourceServer SourceServer `json:"source_server"` 46 // 目的端服务器信息 47 TargetServer TaskTargetServer `json:"target_server"` 48 // 任务状态 49 State string `json:"state"` 50 51 // 连接状态 52 Connected bool `json:"connected"` 53 // 迁移速率,单位:MB/S 54 MigrateSpeed float32 `json:"migrate_speed"` 55 // 压缩率 56 CompressRate float32 `json:"compress_rate"` 57 // 错误信息 58 ErrorMsg string `json:"error_json"` 59 60 // 任务创建时间 61 CreateDate int `json:"create_date"` 62 // 任务开始时间 63 StartDate int `json:"start_date"` 64 // 任务结束时间 65 FinishDate int `json:"finish_date"` 66 // 预估完成时间 67 EstimateCompleteTime int `json:"estimate_complete_time"` 68 // 迁移剩余时间(秒) 69 RemainSeconds int `json:"remain_seconds"` 70 // 任务总耗时 71 TotalTime int `json:"total_time"` 72 // 目的端的快照id 73 TargetSnapshotId string `json:"target_snapshot_id"` 74 // 克隆服务器信息 75 CloneServer CloneServer `json:"clone_server"` 76 // 任务包含的子任务列表 77 SubTasks []SubTask `json:"sub_tasks"` 78 } 79 80 // SourceServer 源端服务器 81 type SourceServer struct { 82 // 源端在SMS数据库中的ID 83 Id string `json:"id"` 84 // 源端服务器ip,注册源端时必选,更新非必选 85 Ip string `json:"ip"` 86 // 用来区分不同源端服务器的名称 87 Name string `json:"name"` 88 // 源端主机名,注册源端必选,更新非必选 89 Hostname string `json:"hostname"` 90 // 源端服务器的OS类型,分为Windows和Linux,注册必选,更新非必选 91 OsType string `json:"os_type"` 92 // 操作系统版本,注册必选,更新非必选 93 OsVersion string `json:"os_version"` 94 // 源端服务器启动类型,如BIOS或者UEFI 95 Firmware string `json:"firmware"` 96 // CPU个数,单位vCPU 97 CpuQuantity int `json:"cpu_quantity"` 98 // 内存大小,单位MB 99 Memory int `json:"memory"` 100 // 源端服务器的磁盘信息 101 Disks []ServerDisk `json:"disks"` 102 // Linux 必选,源端的Btrfs信息。如果源端不存在Btrfs,则为[] 103 BtrfsList []BtrfsFileSystem `json:"btrfs_list"` 104 // 源端服务器的网卡信息 105 Networks []NetWork `json:"networks"` 106 // 租户的domainId 107 DomainId string `json:"domain_id"` 108 // 是否安装rsync组件,Linux系统此参数为必选 109 HasRsync bool `json:"has_rsync"` 110 // Linux场景必选,源端是否是半虚拟化 111 Paravirtualization bool `json:"paravirtualization"` 112 // Linux必选,裸设备列表 113 RawDevices string `json:"raw_devices"` 114 // Windows 必选,是否缺少驱动文件 115 DriverFiles bool `json:"driver_files"` 116 // Windows必选,是否存在不正常服务 117 SystemServices bool `json:"system_services"` 118 // Windows必选,权限是否满足要求 119 AccountRights bool `json:"account_rights"` 120 // Linux必选,系统引导类型,BOOT_LOADER(GRUB/LILO) 121 BootLoader string `json:"boot_loader"` 122 // Windows必选,系统目录 123 SystemDir string `json:"system_dir"` 124 // Linux必选,如果没有卷组,输入[] 125 VolumeGroups []VolumeGroups `json:"volume_groups"` 126 // Agent版本 127 AgentVersion string `json:"agent_version"` 128 } 129 130 // ServerDisk 磁盘信息 131 type ServerDisk struct { 132 // 磁盘名称 133 Name string `json:"name"` 134 // 磁盘的分区类型,添加源端时源端磁盘必选 135 PartitionStyle string `json:"partition_style"` 136 // 磁盘类型 137 DeviceType string `json:"device_use"` 138 // 磁盘总大小,以字节为单位 139 Size int64 `json:"size"` 140 // 磁盘已使用大小,以字节为单位 141 UsedSize int64 `json:"used_size"` 142 // 磁盘上的物理分区信息 143 PhysicalVolumes []PhysicalVolume `json:"physical_volumes"` 144 // 是否为系统盘 145 OsDisk bool `json:"os_disk"` 146 // Linux系统 目的端ECS中与源端关联的磁盘名称 147 RelationName string `json:"relation_name"` 148 } 149 150 // PhysicalVolume 使用大小 151 type PhysicalVolume struct { 152 // 分区类型,普通分区,启动分区,系统分区 153 DeviceType string `json:"device_use"` 154 // 文件系统类型 155 FileSystem string `json:"file_system"` 156 // 顺序 157 Index int `json:"index"` 158 // 挂载点 159 MountPoint string `json:"mount_point"` 160 // 名称,windows表示盘符,Linux表示设备号 161 Name string `json:"name"` 162 // 大小 163 Size int64 `json:"size"` 164 // 使用大小 165 UsedSize int64 `json:"used_size"` 166 // GUID,可从源端查询 167 UUID string `json:"uuid"` 168 // 每个cluster大小 169 SizePerCluster int `json:"size_per_cluster"` 170 } 171 172 // BtrfsFileSystem btrfs分区类型 173 type BtrfsFileSystem struct { 174 // 文件系统名称 175 Name string `json:"name"` 176 // 文件系统标签,若无标签为空字符串 177 Label string `json:"label"` 178 // 文件系统的uuid 179 UUID string `json:"uuid"` 180 // btrfs包含的设备名称 181 Device string `json:"device"` 182 // 文件系统数据占用大小 183 Size int64 `json:"size"` 184 // btrfs节点大小 185 Nodesize int `json:"nodesize"` 186 // 扇区大小 187 Sectorsize int `json:"sectorsize"` 188 // 数据配置(RAD) 189 DataProfile string `json:"data_profile"` 190 // 文件系统配置(RAD) 191 SystemProfile string `json:"system_profile"` 192 // 元数据配置(RAD) 193 MetadataProfile string `json:"metadata_profile"` 194 // Btrfs文件系统信息 195 GlobalReserve1 string `json:"global_reserve1"` 196 // Btrfs卷已使用空间大小 197 UsedSize int64 `json:"g_vol_used_size"` 198 // 默认子卷ID 199 DefaultSubvolid string `json:"default_subvolid"` 200 // 默认子卷名称 201 DefaultSubvolName string `json:"default_subvol_name"` 202 // 默认子卷挂载路径/BTRFS文件系统的挂载路径 203 DefaultSubvolMountpath string `json:"default_subvol_mountpath"` 204 // 子卷信息 205 Subvolumn []BtrfsSubvolumn `json:"subvolumn"` 206 } 207 208 // BtrfsSubvolumn btrfs子卷信息 209 type BtrfsSubvolumn struct { 210 // 父卷的uuid 211 UUID string `json:"uuid"` 212 // 子卷是否为快照 213 IsSnapshot string `json:"is_snapshot"` 214 // 子卷的id 215 SubvolId string `json:"subvol_id"` 216 // 父卷id 217 ParentId string `json:"parent_id"` 218 // 子卷的名称 219 SubvolName string `json:"subvol_name"` 220 // 子卷的挂载路径 221 SubvolMountPath string `json:"subvol_mount_path"` 222 } 223 224 // NetWork 网卡实体类 225 type NetWork struct { 226 // 网卡的名称 227 Name string `json:"name"` 228 // 该网卡绑定的IP 229 Ip string `json:"ip"` 230 // 掩码 231 Netmask string `json:"netmask"` 232 // 网关 233 Gateway string `json:"gateway"` 234 // Linux必选,网卡的MTU 235 Mtu int `json:"mtu"` 236 // Mac地址 237 Mac string `json:"mac"` 238 // 数据库Id 239 Id string `json:"id"` 240 } 241 242 // VolumeGroups 逻辑卷组信息 243 type VolumeGroups struct { 244 // Pv信息 245 Components string `json:"components"` 246 // 剩余空间 247 FreeSize int64 `json:"free_size"` 248 // lv信息 249 LogicalVolumes []LogicalVolumes `json:"logical_volumes"` 250 // 名称 251 Name string `json:"name"` 252 // 大小 253 Size int64 `json:"size"` 254 } 255 256 // LogicalVolumes 逻辑卷信息 257 type LogicalVolumes struct { 258 // 块数量 259 BlockCount int `json:"block_count"` 260 // 块大小 261 BlockSize int `json:"block_size"` 262 // 文件系统 263 FileSystem string `json:"file_system"` 264 // inode数量 265 InodeSize int `json:"inode_size"` 266 // 挂载点 267 MountPoint string `json:"mount_point"` 268 // 名称 269 Name string `json:"name"` 270 // 大小 271 Size int64 `json:"size"` 272 // 使用大小 273 UsedSize int64 `json:"used_size"` 274 // 剩余空间 275 FreeSize int64 `json:"free_size"` 276 } 277 278 // TaskTargetServer 目的端服务器 279 type TaskTargetServer struct { 280 // 目的端在SMS数据库中的ID 281 Id string `json:"id"` 282 // 目的端服务器ID,自动创建虚拟机不需要这个参数 283 VMID string `json:"vm_id"` 284 // 目的端服务器的名称 285 Name string `json:"name"` 286 // 目的端服务器ip 287 Ip string `json:"ip"` 288 // 源端服务器的OS类型,分为Windows和Linux,注册必选,更新非必选 289 OsType string `json:"os_type"` 290 // 操作系统版本,注册必选,更新非必选 291 OsVersion string `json:"os_version"` 292 // Windows必选,系统目录 293 SystemDir string `json:"system_dir"` 294 // 目的端磁盘信息,一般和源端保持一致 295 Disks []TargetDisk `json:"disks"` 296 // lvm信息,一般和源端保持一致 297 VolumeGroups []VolumeGroups `json:"volume_groups"` 298 // Linux 必选,源端的Btrfs信息。如果源端不存在Btrfs,则为[] 299 BtrfsList []string `json:"btrfs_list"` 300 // 目的端代理镜像磁盘id 301 ImageDiskId string `json:"image_disk_id"` 302 // 目的端回滚快照id 303 CutoveredSnapshotIds string `json:"cutovered_snapshot_ids"` 304 } 305 306 // TargetDisk 目的端磁盘 307 type TargetDisk struct { 308 // 判断是普通分区,启动分区还是系统分区 309 DeviceType string `json:"device_use"` 310 // 磁盘id 311 DiskId string `json:"disk_id"` 312 // 磁盘名称 313 Name string `json:"name"` 314 // 逻辑卷信息 315 PhysicalVolumes []TargetPhysicalVolumes `json:"physical_volumes"` 316 // 大小 317 Size int64 `json:"size"` 318 // 已使用大小 319 UsedSize int64 `json:"used_size"` 320 } 321 322 // TargetPhysicalVolumes 物理分区 323 type TargetPhysicalVolumes struct { 324 // 分区类型 325 DeviceType string `json:"device_use"` 326 // 文件系统 327 FileSystem string `json:"file_system"` 328 // 编号 329 Index int `json:"index"` 330 // 挂载点 331 MountPoint string `json:"mount_point"` 332 // 名称 333 Name string `json:"name"` 334 // 大小 335 Size int64 `json:"size"` 336 // 使用大小 337 UsedSize int64 `json:"used_size"` 338 // uuid 339 UUID string `json:"uuid"` 340 } 341 342 // CloneServer 克隆服务器类 343 type CloneServer struct { 344 // 克隆服务器ID 345 VMID string `json:"vm_id"` 346 // 克隆虚拟机的名称 347 Name string `json:"name"` 348 // 克隆错误信息 349 CloneError string `json:"clone_error"` 350 // 克隆状态 351 CloneState string `json:"clone_state"` 352 // 克隆错误信息描述 353 ErrorMsg string `json:"error_msg"` 354 } 355 356 // SubTask 修改任务进度 357 type SubTask struct { 358 // 子任务名称 359 Name string `json:"name"` 360 // 子任务的进度,取值为0-100之间的整数 361 Progress int `json:"progress"` 362 // 子任务开始时间 363 StartDate int `json:"start_date"` 364 // 子任务结束时间(如果子任务还没有结束,则为空) 365 EndDate int `json:"end_date"` 366 // 迁移速率,Mbit/s 367 MigrateSpeed float32 `json:"migrate_speed"` 368 // 触发子任务的用户操作名称 369 UserOp string `json:"user_op"` 370 // 迁移或同步时,具体的迁移详情 371 ProcessTrace string `json:"process_trace"` 372 }