This commit is contained in:
2026-09-21 11:51:12 +03:00
parent 9cd93e4277
commit 2b229a84fb
240 changed files with 7735 additions and 3166 deletions

View File

@@ -39,8 +39,10 @@ func flattenCompute(d *schema.ResourceData, computeRec *compute.RecordCompute, p
d.Set("boot_disk_id", bootDisk.ID)
// we intentionally use the SizeMax field, do not change it until the BootDiskSize field is fixed on the platform
d.Set("boot_disk_size", bootDisk.SizeMax)
d.Set("boot_disk_discard", bootDisk.Discard)
d.Set("boot_image_id", bootDisk.ImageID)
d.Set("chipset", computeRec.Chipset)
d.Set("clock", computeRec.Clock)
d.Set("cd_image_id", computeRec.CdImageId)
d.Set("clone_reference", computeRec.CloneReference)
d.Set("clones", computeRec.Clones)
@@ -85,6 +87,7 @@ func flattenCompute(d *schema.ResourceData, computeRec *compute.RecordCompute, p
d.Set("registered", computeRec.Registered)
d.Set("res_name", computeRec.ResName)
d.Set("reserved_node_cpus", computeRec.ReservedNodeCpus)
d.Set("resized_online", computeRec.ResizedOnline)
d.Set("rg_name", computeRec.RGName)
d.Set("rg_id", computeRec.RGID)
d.Set("snap_sets", flattenSnapSets(computeRec.SnapSets))
@@ -111,12 +114,26 @@ func flattenCompute(d *schema.ResourceData, computeRec *compute.RecordCompute, p
d.Set("zone_id", computeRec.ZoneID)
d.Set("os_version", computeRec.OSVersion)
d.Set("cpu_pin", computeRec.CPUPin)
d.Set("cpu_alignment_profile", computeRec.CPUAlignmentProfile.Name)
d.Set("numa_affinity", computeRec.NumaAffinity)
d.Set("hp_backed", computeRec.HPBacked)
d.Set("weight", computeRec.Weight)
return nil
}
func flattenCPUAlignmentProfile(profile compute.CPUAlignmentProfile) []map[string]interface{} {
if profile.Name == "" && profile.Model == "" && profile.Vendor == "" {
return nil
}
return []map[string]interface{}{
{
"name": profile.Name,
"model": profile.Model,
"vendor": profile.Vendor,
},
}
}
func flattenPCI(pciList compute.ListPCIDevices) []uint64 {
res := make([]uint64, 0, len(pciList.Data))
@@ -145,10 +162,11 @@ func flattenSnapSets(snaps compute.ListSnapshots) []map[string]interface{} {
for _, snap := range snaps {
res = append(res, map[string]interface{}{
"disks": snap.Disks,
"guid": snap.GUID,
"label": snap.Label,
"timestamp": snap.Timestamp,
"disks": snap.Disks,
"guid": snap.GUID,
"label": snap.Label,
"timestamp": snap.Timestamp,
"memory_dump_image": snap.MemoryDumpImage,
})
}
@@ -174,32 +192,33 @@ func flattenInterfaces(ifaces compute.ListInterfaces) []map[string]interface{} {
res := make([]map[string]interface{}, 0, len(ifaces))
for _, iface := range ifaces {
res = append(res, map[string]interface{}{
"bus_number": iface.BusNumber,
"conn_id": iface.ConnID,
"conn_type": iface.ConnType,
"def_gw": iface.DefGW,
"enabled": iface.Enabled,
"enable_secgroups": iface.EnableSecGroups,
"flip_group_id": iface.FLIPGroupID,
"guid": iface.GUID,
"ip_address": iface.IPAddress,
"listen_ssh": iface.ListenSSH,
"mac": iface.MAC,
"mtu": iface.MTU,
"name": iface.Name,
"net_id": iface.NetID,
"netmask": iface.NetMask,
"net_type": iface.NetType,
"node_id": iface.NodeID,
"pci_slot": iface.PCISlot,
"qos": flattenQOS(iface.QOS),
"sdn_interface_id": iface.SDNInterfaceID,
"security_groups": iface.SecGroups,
"target": iface.Target,
"type": iface.Type,
"trunk_tags": iface.TrunkTags,
"vnfs": iface.VNFs,
"libvirt_settings": flattenLibvirtSettings(iface.LibvirtSettings),
"bus_number": iface.BusNumber,
"conn_id": iface.ConnID,
"conn_type": iface.ConnType,
"def_gw": iface.DefGW,
"enabled": iface.Enabled,
"enable_secgroups": iface.EnableSecGroups,
"enable_default_gateway": iface.EnableDefaultGateway,
"flip_group_id": iface.FLIPGroupID,
"guid": iface.GUID,
"ip_address": iface.IPAddress,
"listen_ssh": iface.ListenSSH,
"mac": iface.MAC,
"mtu": iface.MTU,
"name": iface.Name,
"net_id": iface.NetID,
"netmask": iface.NetMask,
"net_type": iface.NetType,
"node_id": iface.NodeID,
"pci_slot": iface.PCISlot,
"qos": flattenQOS(iface.QOS),
"sdn_interface_id": iface.SDNInterfaceID,
"security_groups": iface.SecGroups,
"target": iface.Target,
"type": iface.Type,
"trunk_tags": iface.TrunkTags,
"vnfs": iface.VNFs,
"libvirt_settings": flattenLibvirtSettings(iface.LibvirtSettings),
})
}
return res
@@ -273,6 +292,7 @@ func flattenComputeDisks(disksList compute.ListDisks, disksBlocks, extraDisks []
"pci_slot": disk.PCISlot,
"bus_number": disk.BusNumber,
"pool": disk.Pool,
"read_only": disk.ReadOnly,
"desc": disk.Description,
"image_id": disk.ImageID,
"independent": disk.Independent,
@@ -291,7 +311,7 @@ func flattenComputeDisks(disksList compute.ListDisks, disksBlocks, extraDisks []
"delete_time": disk.DeletedTime,
"update_time": disk.UpdatedTime,
"cache": disk.Cache,
"blk_discard": disk.BLKDiscard,
"discard": disk.Discard,
"block_size": disk.BlockSize,
"provision": disk.Provision,
"iotune": flattenIOTune(disk.IOTune),
@@ -346,6 +366,7 @@ func flattenComputeList(computes *compute.ListComputes) []map[string]interface{}
"arch": computeItem.Arch,
"auto_start_w_node": computeItem.AutoStart,
"chipset": computeItem.Chipset,
"clock": computeItem.Clock,
"cd_image_id": computeItem.CdImageId,
"boot_order": computeItem.BootOrder,
"boot_image_id": computeItem.BootImageID,
@@ -367,6 +388,7 @@ func flattenComputeList(computes *compute.ListComputes) []map[string]interface{}
"guid": computeItem.GUID,
"hp_backed": computeItem.HPBacked,
"compute_id": computeItem.ID,
"cpu_alignment_profiles": flattenCPUAlignmentProfile(computeItem.CPUAlignmentProfile),
"cpu_pin": computeItem.CPUPin,
"interfaces": flattenInterfaces(computeItem.Interfaces),
"live_migration_job_id": computeItem.LiveMigrationJobID,
@@ -390,6 +412,7 @@ func flattenComputeList(computes *compute.ListComputes) []map[string]interface{}
"registered": computeItem.Registered,
"res_name": computeItem.ResName,
"reserved_node_cpus": computeItem.ReservedNodeCpus,
"resized_online": computeItem.ResizedOnline,
"rg_id": computeItem.RGID,
"rg_name": computeItem.RGName,
"snap_sets": flattenSnapSets(computeItem.SnapSets),
@@ -438,6 +461,7 @@ func flattenDeletedComputeList(computes *compute.ListDeletedComputes) []map[stri
"arch": computeItem.Arch,
"auto_start_w_node": computeItem.AutoStart,
"chipset": computeItem.Chipset,
"clock": computeItem.Clock,
"cd_image_id": computeItem.CdImageId,
"boot_order": computeItem.BootOrder,
"bootdisk_size": computeItem.BootDiskSize,
@@ -459,6 +483,7 @@ func flattenDeletedComputeList(computes *compute.ListDeletedComputes) []map[stri
"guid": computeItem.GUID,
"hp_backed": computeItem.HPBacked,
"compute_id": computeItem.ID,
"cpu_alignment_profiles": flattenCPUAlignmentProfile(computeItem.CPUAlignmentProfile),
"cpu_pin": computeItem.CPUPin,
"interfaces": flattenInterfaces(computeItem.Interfaces),
"lock_status": computeItem.LockStatus,
@@ -479,6 +504,7 @@ func flattenDeletedComputeList(computes *compute.ListDeletedComputes) []map[stri
"registered": computeItem.Registered,
"res_name": computeItem.ResName,
"reserved_node_cpus": computeItem.ReservedNodeCpus,
"resized_online": computeItem.ResizedOnline,
"rg_id": computeItem.RGID,
"rg_name": computeItem.RGName,
"snap_sets": flattenSnapSets(computeItem.SnapSets),
@@ -580,7 +606,8 @@ func flattenDisks(disks []compute.InfoDisk) []map[string]interface{} {
// "bus_number": disk.BusNumber,
"disk_id": disk.ID,
// "pci_slot": disk.PCISlot,
"sep_id": disk.SepID,
"sep_id": disk.SepID,
"read_only": disk.ReadOnly,
}
res = append(res, temp)
}
@@ -779,10 +806,12 @@ func flattenDataCompute(d *schema.ResourceData, compFacts *compute.RecordCompute
d.Set("boot_order", compFacts.BootOrder)
d.Set("boot_image_id", compFacts.ImageID)
d.Set("chipset", compFacts.Chipset)
d.Set("clock", compFacts.Clock)
d.Set("cd_image_id", compFacts.CdImageId)
d.Set("clone_reference", compFacts.CloneReference)
d.Set("clones", compFacts.Clones)
d.Set("computeci_id", compFacts.ComputeCIID)
d.Set("cpu_alignment_profiles", flattenCPUAlignmentProfile(compFacts.CPUAlignmentProfile))
d.Set("cpu_pin", compFacts.CPUPin)
d.Set("cpus", compFacts.CPUs)
d.Set("created_by", compFacts.CreatedBy)
@@ -824,6 +853,7 @@ func flattenDataCompute(d *schema.ResourceData, compFacts *compute.RecordCompute
d.Set("registered", compFacts.Registered)
d.Set("res_name", compFacts.ResName)
d.Set("reserved_node_cpus", compFacts.ReservedNodeCpus)
d.Set("resized_online", compFacts.ResizedOnline)
d.Set("rg_id", compFacts.RGID)
d.Set("rg_name", compFacts.RGName)
d.Set("snap_sets", flattenSnapSets(compFacts.SnapSets))
@@ -882,6 +912,7 @@ func parseComputeInterfacesToNetworks(networks []interface{}, ifaces compute.Lis
elem["sdn_interface_id"] = value.SDNInterfaceID
elem["weight"] = flattenNetworkWeight(networks, value.NetID, value.NetType)
elem["enabled"] = value.Enabled
elem["enable_default_gateway"] = value.EnableDefaultGateway
result = append(result, elem)
}
@@ -907,7 +938,7 @@ func flattenDisk(diskList compute.ListDisks) []map[string]interface{} {
"ckey": disk.CKey,
"meta": flattens.FlattenMeta(disk.Meta),
"account_id": disk.AccountID,
"blk_discard": disk.BLKDiscard,
"discard": disk.Discard,
"block_size": disk.BlockSize,
"boot_partition": disk.BootPartition,
"bus_number": disk.BusNumber,
@@ -957,6 +988,7 @@ func flattenDisk(diskList compute.ListDisks) []map[string]interface{} {
"to_clean": disk.ToClean,
"provision": disk.Provision,
"updated_time": disk.UpdatedTime,
"read_only": disk.ReadOnly,
}
res = append(res, temp)
}
@@ -1005,6 +1037,7 @@ func flattendDiskSnapshotList(sl compute.ListDetailedSnapshots) []interface{} {
temp := map[string]interface{}{
"guid": snapshot.GUID,
"label": snapshot.Label,
"pool_name": snapshot.PoolName,
"res_id": snapshot.ResID,
"snap_set_guid": snapshot.SnapSetGUID,
"snap_set_time": snapshot.SnapSetTime,
@@ -1063,3 +1096,193 @@ func flattenQemuQuest(qemuQuest compute.QemuQuest) []map[string]interface{} {
return res
}
func flattenMigrateStorageInfo(d *schema.ResourceData, info *compute.RecordMigrateStorageInfo) {
d.Set("completed", info.Completed)
d.Set("cpu_set", info.CPUSet)
d.Set("daemon_addr", info.DaemonAddr)
d.Set("domain_name", info.DomainName)
d.Set("domain_uuid", info.DomainUUID)
d.Set("elapsed_time", info.ElapsedTime)
d.Set("gid", info.GID)
d.Set("guid", info.GUID)
d.Set("migration_id", info.ID)
d.Set("interfaces", flattenShadowComputeInterfaces(info.Interfaces))
d.Set("log", info.Log)
d.Set("new_disk_xmls", info.NewDiskXmls)
d.Set("new_disks", info.NewDisks)
d.Set("old_disks", info.OldDisks)
d.Set("pid", info.PID)
d.Set("source_node_id", info.SourceNodeID)
d.Set("source_numa_node_id", info.SourceNumaNodeID)
d.Set("source_reserved_node_cpus", info.SourceReservedNodeCpus)
d.Set("source_url", info.SourceURL)
d.Set("status", info.Status)
d.Set("target_shadow_compute", flattenShadowCompute(info.TargetShadowCompute))
d.Set("target_node_id", info.TargetNodeID)
d.Set("target_url", info.TargetURL)
d.Set("vmlog_dir", info.VMLogDir)
}
func flattenShadowCompute(sc compute.ShadowCompute) []map[string]interface{} {
customFields, _ := json.Marshal(sc.CustomFields)
devices, _ := json.Marshal(sc.Devices)
userData, _ := json.Marshal(sc.Userdata)
return []map[string]interface{}{
{
"account_id": sc.AccountID,
"acl": flattenListACLInterface(sc.ACL),
"affinity_label": sc.AffinityLabel,
"affinity_rules": flattenShadowComputeRules(sc.AffinityRules),
"affinity_weight": sc.AffinityWeight,
"anti_affinity_rules": flattenShadowComputeRules(sc.AntiAffinityRules),
"arch": sc.Arch,
"auto_start": sc.AutoStart,
"boot_image_id": sc.BootImageID,
"boot_order": sc.BootOrder,
"boot_type": sc.BootType,
"bootdisk_size": sc.BootDiskSize,
"cd_image_id": sc.CDImageID,
"chipset": sc.Chipset,
"clock": sc.Clock,
"clone_reference": sc.CloneReference,
"clones": sc.Clones,
"computeci_id": sc.ComputeCIID,
"cpu_alignment_profile": flattenCPUAlignmentProfile(sc.CPUAlignmentProfile),
"cpupin": sc.CPUPin,
"cpus": sc.CPUs,
"custom_fields": string(customFields),
"desc": sc.Description,
"devices": string(devices),
"disks": flattenShadowComputeDisks(sc.Disks),
"driver": sc.Driver,
"gid": sc.GID,
"guid": sc.GUID,
"hp_backed": sc.HPBacked,
"hot_resize": sc.HotResize,
"id": sc.ID,
"interfaces": flattenShadowComputeInterfaces(sc.Interfaces),
"live_migration_job_id": sc.LiveMigrationJobID,
"loader_type": sc.LoaderType,
"lock_status": sc.LockStatus,
"manager_id": sc.ManagerID,
"manager_type": sc.ManagerType,
"migrationjob": sc.MigrationJob,
"milestones": sc.Milestones,
"name": sc.Name,
"need_reboot": sc.NeedReboot,
"network_interface_naming": sc.NetworkInterfaceNaming,
"node_id": sc.NodeID,
"numa_affinity": sc.NumaAffinity,
"numa_node_id": sc.NumaNodeID,
"os_users": flattenOSUsers(sc.OSUsers),
"os_version": sc.OSVersion,
"pinned_to_node": sc.PinnedToNode,
"preferred_cpu": sc.PreferredCPU,
"qemu_guest": flattenQemuQuest(sc.QemuGuest),
"read_only": sc.ReadOnly,
"ram": sc.RAM,
"reference_id": sc.ReferenceID,
"reserved_node_cpus": sc.ReservedNodeCpus,
"resized_online": sc.ResizedOnline,
"res_name": sc.ResName,
"rg_id": sc.RGID,
"snap_sets": flattenShadowComputeSnapshots(sc.SnapSets),
"stateless_sep_id": sc.StatelessSEPID,
"stateless_sep_type": sc.StatelessSEPType,
"status": sc.Status,
"tags": flattenTags(sc.Tags),
"tech_status": sc.TechStatus,
"user_managed": sc.UserManaged,
"userdata": string(userData),
"vgpus": sc.VGPUs,
"vnc_passwd": sc.VNCPassword,
"weight": sc.Weight,
"zone_id": sc.ZoneID,
},
}
}
func flattenShadowComputeDisks(disks []compute.ItemShadowComputeDisk) []map[string]interface{} {
res := make([]map[string]interface{}, 0, len(disks))
for _, disk := range disks {
res = append(res, map[string]interface{}{
"id": disk.ID,
})
}
return res
}
func flattenShadowComputeInterfaces(ifaces []compute.ItemShadowComputeInterface) []map[string]interface{} {
res := make([]map[string]interface{}, 0, len(ifaces))
for _, iface := range ifaces {
res = append(res, map[string]interface{}{
"name": iface.Name,
"target": iface.Target,
"pci_slot": iface.PCISlot,
"bus_number": iface.BusNumber,
"mac": iface.MAC,
"mtu": iface.MTU,
"type": iface.Type,
"conn_type": iface.ConnType,
"conn_id": iface.ConnID,
"flip_group_id": iface.FLIPGroupID,
"net_type": iface.NetType,
"net_id": iface.NetID,
"ip_address": iface.IPAddress,
"net_mask": iface.NetMask,
"def_gw": iface.DefGW,
"vnfs": iface.VNFs,
"qos": flattenQOS(iface.QOS),
"libvirt_settings": flattenLibvirtSettings(iface.LibvirtSettings),
"guid": iface.GUID,
"listen_ssh": iface.ListenSSH,
"enabled": iface.Enabled,
"enable_default_gateway": iface.EnableDefaultGateway,
"node_id": iface.NodeID,
"sdn_interface_id": iface.SDNInterfaceID,
"security_groups": iface.SecGroups,
"enable_secgroups": iface.EnableSecGroups,
"trunk_tags": iface.TrunkTags,
})
}
return res
}
// no guid
func flattenShadowComputeRules(rules compute.ListShadowComputeRules) []map[string]interface{} {
res := make([]map[string]interface{}, 0, len(rules))
for _, rule := range rules {
res = append(res, map[string]interface{}{
"key": rule.Key,
"mode": rule.Mode,
"policy": rule.Policy,
"topology": rule.Topology,
"value": rule.Value,
})
}
return res
}
// no compute/memory_dump_image
func flattenShadowComputeSnapshots(snaps compute.ListShadowComputeSnapshots) []map[string]interface{} {
res := make([]map[string]interface{}, 0, len(snaps))
for _, snap := range snaps {
res = append(res, map[string]interface{}{
"disks": snap.Disks,
"guid": snap.GUID,
"label": snap.Label,
"timestamp": snap.Timestamp,
})
}
return res
}