Skip to content

Commit 6ce1e96

Browse files
committed
fix comments
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
1 parent de41a9a commit 6ce1e96

File tree

2 files changed

+26
-9
lines changed

2 files changed

+26
-9
lines changed

images/virtualization-artifact/pkg/controller/kvbuilder/kvvm_utils.go

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,8 @@ func applyBlockDeviceRefs(
173173

174174
kvvmVolumes := kvvm.Resource.Spec.Template.Spec.Volumes
175175
for i, bd := range vm.Spec.BlockDeviceRefs {
176-
if len(kvvmVolumes) > 0 && !slices.ContainsFunc(kvvmVolumes, func(v virtv1.Volume) bool { return v.Name == GenerateDiskName(bd.Kind, bd.Name) }) {
176+
diskName := GenerateDiskName(bd.Kind, bd.Name)
177+
if len(kvvmVolumes) > 0 && !slices.ContainsFunc(kvvmVolumes, func(v virtv1.Volume) bool { return v.Name == diskName }) {
177178
continue
178179
}
179180

@@ -186,16 +187,32 @@ func applyBlockDeviceRefs(
186187
kvBootOrder = uint(i) + 1
187188
}
188189

189-
if err := setBlockDeviceDisk(kvvm, bd, kvBootOrder, vdByName, viByName, cviByName); err != nil {
190+
hotpluggable := isVolumeHotpluggable(kvvmVolumes, diskName)
191+
if err := setBlockDeviceDisk(kvvm, bd, kvBootOrder, hotpluggable, vdByName, viByName, cviByName); err != nil {
190192
return err
191193
}
192194
}
193195

194196
return nil
195197
}
196198

199+
func isVolumeHotpluggable(volumes []virtv1.Volume, name string) bool {
200+
for _, v := range volumes {
201+
if v.Name != name {
202+
continue
203+
}
204+
if v.PersistentVolumeClaim != nil {
205+
return v.PersistentVolumeClaim.Hotpluggable
206+
}
207+
if v.ContainerDisk != nil {
208+
return v.ContainerDisk.Hotpluggable
209+
}
210+
}
211+
return true
212+
}
213+
197214
func setBlockDeviceDisk(
198-
kvvm *KVVM, bd v1alpha2.BlockDeviceSpecRef, bootOrder uint,
215+
kvvm *KVVM, bd v1alpha2.BlockDeviceSpecRef, bootOrder uint, hotpluggable bool,
199216
vdByName map[string]*v1alpha2.VirtualDisk,
200217
viByName map[string]*v1alpha2.VirtualImage,
201218
cviByName map[string]*v1alpha2.ClusterVirtualImage,
@@ -209,7 +226,7 @@ func setBlockDeviceDisk(
209226
opts := SetDiskOptions{
210227
Serial: GenerateSerialFromObject(vi),
211228
BootOrder: bootOrder,
212-
IsHotplugged: true,
229+
IsHotplugged: hotpluggable,
213230
}
214231
switch vi.Spec.Storage {
215232
case v1alpha2.StorageKubernetes, v1alpha2.StoragePersistentVolumeClaim:
@@ -233,7 +250,7 @@ func setBlockDeviceDisk(
233250
IsCdrom: imageformat.IsISO(cvi.Status.Format),
234251
Serial: GenerateSerialFromObject(cvi),
235252
BootOrder: bootOrder,
236-
IsHotplugged: true,
253+
IsHotplugged: hotpluggable,
237254
})
238255

239256
case v1alpha2.DiskDevice:
@@ -248,7 +265,7 @@ func setBlockDeviceDisk(
248265
PersistentVolumeClaim: ptr.To(vd.Status.Target.PersistentVolumeClaim),
249266
Serial: GenerateSerialFromObject(vd),
250267
BootOrder: bootOrder,
251-
IsHotplugged: true,
268+
IsHotplugged: hotpluggable,
252269
})
253270

254271
default:

test/e2e/vm/block_device_hotplug.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,14 @@ var _ = Describe("VirtualMachineBlockDeviceHotplug", Ordered, func() {
8080
Name: vdRoot.Name,
8181
},
8282
),
83-
vmbuilder.WithRestartApprovalMode(v1alpha2.Automatic),
83+
vmbuilder.WithRestartApprovalMode(v1alpha2.Manual),
8484
)
8585

8686
err := f.CreateWithDeferredDeletion(context.Background(), vm, vdRoot, vdBlank)
8787
Expect(err).NotTo(HaveOccurred())
8888

89-
By("Waiting for VM agent to be ready")
90-
util.UntilVMAgentReady(crclient.ObjectKeyFromObject(vm), framework.LongTimeout)
89+
By("Waiting for SSH to be ready")
90+
util.UntilSSHReady(f, vm, framework.LongTimeout)
9191

9292
By("Recording initial disk count")
9393
out, err := f.SSHCommand(vm.Name, vm.Namespace, "lsblk --nodeps --noheadings | wc -l")

0 commit comments

Comments
 (0)