Skip to content

Commit d706ac9

Browse files
fix
Signed-off-by: Yaroslav Borbat <[email protected]>
1 parent 4013ade commit d706ac9

File tree

1 file changed

+38
-15
lines changed

1 file changed

+38
-15
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,49 @@
1+
diff --git a/pkg/virt-api/webhooks/validating-webhook/admitters/util.go b/pkg/virt-api/webhooks/validating-webhook/admitters/util.go
2+
new file mode 100644
3+
index 0000000000..6d0699b12d
4+
--- /dev/null
5+
+++ b/pkg/virt-api/webhooks/validating-webhook/admitters/util.go
6+
@@ -0,0 +1,19 @@
7+
+package admitters
8+
+
9+
+import (
10+
+ "k8s.io/apimachinery/pkg/api/equality"
11+
+ v1 "kubevirt.io/api/core/v1"
12+
+)
13+
+
14+
+func equalDiskIgnoreSerial(newDisk, oldDisk v1.Disk) bool {
15+
+ return equality.Semantic.DeepEqual(newDisk.Name, oldDisk.Name) &&
16+
+ equality.Semantic.DeepEqual(newDisk.DiskDevice, oldDisk.DiskDevice) &&
17+
+ equality.Semantic.DeepEqual(newDisk.BootOrder, oldDisk.BootOrder) &&
18+
+ equality.Semantic.DeepEqual(newDisk.DedicatedIOThread, oldDisk.DedicatedIOThread) &&
19+
+ equality.Semantic.DeepEqual(newDisk.Cache, oldDisk.Cache) &&
20+
+ equality.Semantic.DeepEqual(newDisk.IO, oldDisk.IO) &&
21+
+ equality.Semantic.DeepEqual(newDisk.Tag, oldDisk.Tag) &&
22+
+ equality.Semantic.DeepEqual(newDisk.BlockSize, oldDisk.BlockSize) &&
23+
+ equality.Semantic.DeepEqual(newDisk.Shareable, oldDisk.Shareable) &&
24+
+ equality.Semantic.DeepEqual(newDisk.ErrorPolicy, oldDisk.ErrorPolicy)
25+
+}
126
diff --git a/pkg/virt-api/webhooks/validating-webhook/admitters/vmi-update-admitter.go b/pkg/virt-api/webhooks/validating-webhook/admitters/vmi-update-admitter.go
2-
index b984ff4262..4a5ffb6c55 100644
27+
index b984ff4262..8201d9375b 100644
328
--- a/pkg/virt-api/webhooks/validating-webhook/admitters/vmi-update-admitter.go
429
+++ b/pkg/virt-api/webhooks/validating-webhook/admitters/vmi-update-admitter.go
5-
@@ -292,7 +292,20 @@ func verifyPermanentVolumes(newPermanentVolumeMap, oldPermanentVolumeMap map[str
30+
@@ -189,7 +189,8 @@ func verifyHotplugVolumes(newHotplugVolumeMap, oldHotplugVolumeMap map[string]v1
31+
},
32+
})
33+
}
34+
- if !equality.Semantic.DeepEqual(newDisks[k], oldDisks[k]) {
35+
+
36+
+ if !equalDiskIgnoreSerial(newDisks[k], oldDisks[k]) {
37+
return webhookutils.ToAdmissionResponse([]metav1.StatusCause{
38+
{
39+
Type: metav1.CauseTypeFieldValueInvalid,
40+
@@ -292,7 +293,8 @@ func verifyPermanentVolumes(newPermanentVolumeMap, oldPermanentVolumeMap map[str
641
},
742
})
843
}
944
- if !equality.Semantic.DeepEqual(newDisks[k], oldDisks[k]) {
1045
+
11-
+ newDisk := newDisks[k]
12-
+ oldDisk := oldDisks[k]
13-
+
14-
+ if !equality.Semantic.DeepEqual(newDisk.Name, oldDisk.Name) ||
15-
+ !equality.Semantic.DeepEqual(newDisk.DiskDevice, oldDisk.DiskDevice) ||
16-
+ !equality.Semantic.DeepEqual(newDisk.BootOrder, oldDisk.BootOrder) ||
17-
+ !equality.Semantic.DeepEqual(newDisk.DedicatedIOThread, oldDisk.DedicatedIOThread) ||
18-
+ !equality.Semantic.DeepEqual(newDisk.Cache, oldDisk.Cache) ||
19-
+ !equality.Semantic.DeepEqual(newDisk.IO, oldDisk.IO) ||
20-
+ !equality.Semantic.DeepEqual(newDisk.Tag, oldDisk.Tag) ||
21-
+ !equality.Semantic.DeepEqual(newDisk.BlockSize, oldDisk.BlockSize) ||
22-
+ !equality.Semantic.DeepEqual(newDisk.Shareable, oldDisk.Shareable) ||
23-
+ !equality.Semantic.DeepEqual(newDisk.ErrorPolicy, oldDisk.ErrorPolicy) {
46+
+ if !equalDiskIgnoreSerial(newDisks[k], oldDisks[k]) {
2447
return webhookutils.ToAdmissionResponse([]metav1.StatusCause{
2548
{
2649
Type: metav1.CauseTypeFieldValueInvalid,

0 commit comments

Comments
 (0)