Skip to content

Commit dc79b94

Browse files
committed
fix index issue removeSwap and manage RAID
1 parent 1290d55 commit dc79b94

File tree

1 file changed

+31
-8
lines changed

1 file changed

+31
-8
lines changed

internal/services/baremetal/easy_partitioning_data_source.go

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -107,17 +107,18 @@ func dataEasyPartitioningRead(ctx context.Context, d *schema.ResourceData, m int
107107
return diag.FromErr(err)
108108
}
109109

110-
hasSwap := d.Get("hasSwap").(bool)
110+
hasSwap := d.Get("swap").(bool)
111111
if !hasSwap {
112112
removeSwap(defaultPartitioningSchema.Disks)
113+
updateRaidRemoveSwap(defaultPartitioningSchema)
113114
}
114115

115116
mountpoint := d.Get("ext_4_mountpoint").(string)
116117
_, hasExtraPartition := d.GetOk("extra_partition")
117118

118119
if hasExtraPartition {
119120
addExtraExt4Partition(mountpoint, defaultPartitioningSchema)
120-
updateRaid(defaultPartitioningSchema)
121+
updateRaidNewPartition(defaultPartitioningSchema)
121122
}
122123

123124
if !hasSwap || hasExtraPartition {
@@ -148,7 +149,29 @@ func dataEasyPartitioningRead(ctx context.Context, d *schema.ResourceData, m int
148149
return nil
149150
}
150151

151-
func updateRaid(partitionSchema *baremetal.Schema) {
152+
func updateRaidRemoveSwap(partitionSchema *baremetal.Schema) {
153+
raidSchema := []*baremetal.SchemaRAID{
154+
{
155+
Name: "/dev/md0",
156+
Level: "raid_level_1",
157+
Devices: []string{
158+
"/dev/nvme0n1p2",
159+
"/dev/nvme1n1p1",
160+
},
161+
},
162+
{
163+
Name: "/dev/md1",
164+
Level: "raid_level_1",
165+
Devices: []string{
166+
"/dev/nvme0n1p3",
167+
"/dev/nvme1n1p2",
168+
},
169+
},
170+
}
171+
partitionSchema.Raids = raidSchema
172+
}
173+
174+
func updateRaidNewPartition(partitionSchema *baremetal.Schema) {
152175
lenDisk0Partition := len(partitionSchema.Disks[0].Partitions)
153176
lenDisk1Partition := len(partitionSchema.Disks[1].Partitions)
154177
raid := &baremetal.SchemaRAID{
@@ -202,16 +225,16 @@ func updateSizeRoot(originalDisks []*baremetal.SchemaDisk, hasExtraPartition boo
202225

203226
func removeSwap(originalDisks []*baremetal.SchemaDisk) {
204227
for _, disk := range originalDisks {
205-
for i, partition := range disk.Partitions {
228+
newPartitions := make([]*baremetal.SchemaPartition, 0, len(disk.Partitions))
229+
for _, partition := range disk.Partitions {
206230
if partition.Label == "swap" {
207-
disk.Partitions = append(disk.Partitions[:i], disk.Partitions[i+1:]...)
208-
209-
break
231+
continue
210232
}
211-
212233
if partition.Label != "uefi" {
213234
partition.Number--
214235
}
236+
newPartitions = append(newPartitions, partition)
215237
}
238+
disk.Partitions = newPartitions
216239
}
217240
}

0 commit comments

Comments
 (0)