@@ -23,9 +23,41 @@ import (
23
23
. "github.com/onsi/ginkgo/v2"
24
24
. "github.com/onsi/gomega"
25
25
26
+ virtv2 "github.com/deckhouse/virtualization/api/core/v1alpha2"
26
27
kc "github.com/deckhouse/virtualization/tests/e2e/kubectl"
27
28
)
28
29
30
+ func AssignIPToVMIP (name string ) error {
31
+ assignErr := fmt .Sprintf ("cannot patch VMIP %q with unnassigned IP address" , name )
32
+ unassignedIP , err := FindUnassignedIP (mc .Spec .Settings .VirtualMachineCIDRs )
33
+ if err != nil {
34
+ return fmt .Errorf ("%s\n %s" , assignErr , err )
35
+ }
36
+ patch := fmt .Sprintf ("{\" spec\" :{\" staticIP\" :%q}}" , unassignedIP )
37
+ err = MergePatchResource (kc .ResourceVMIP , name , patch )
38
+ if err != nil {
39
+ return fmt .Errorf ("%s\n %s" , assignErr , err )
40
+ }
41
+ vmip := virtv2.VirtualMachineIPAddress {}
42
+ err = GetObject (kc .ResourceVMIP , name , & vmip , kc.GetOptions {
43
+ Namespace : conf .Namespace ,
44
+ })
45
+ if err != nil {
46
+ return fmt .Errorf ("%s\n %s" , assignErr , err )
47
+ }
48
+ jsonPath := fmt .Sprintf ("'jsonpath={.status.phase}=%s'" , PhaseAttached )
49
+ waitOpts := kc.WaitOptions {
50
+ Namespace : conf .Namespace ,
51
+ For : jsonPath ,
52
+ Timeout : 30 ,
53
+ }
54
+ res := kubectl .WaitResources (kc .ResourceVMIP , waitOpts , name )
55
+ if res .Error () != nil {
56
+ return fmt .Errorf ("%s\n %s" , assignErr , res .StdErr ())
57
+ }
58
+ return nil
59
+ }
60
+
29
61
var _ = Describe ("Complex test" , Ordered , ContinueOnFailure , func () {
30
62
var (
31
63
testCaseLabel = map [string ]string {"testcase" : "complex-test" }
@@ -74,11 +106,10 @@ var _ = Describe("Complex test", Ordered, ContinueOnFailure, func() {
74
106
75
107
Context ("When virtual machines IP addresses are applied:" , func () {
76
108
It ("patches custom VMIP with unassigned address" , func () {
77
- unassignedIP , err := FindUnassignedIP (mc .Spec .Settings .VirtualMachineCIDRs )
78
- Expect (err ).NotTo (HaveOccurred ())
79
- vmipMetadataName := fmt .Sprintf ("%s-%s" , namePrefix , "vm-custom-ip" )
80
- mergePatch := fmt .Sprintf ("{\" spec\" :{\" staticIP\" :%q}}" , unassignedIP )
81
- MergePatchResource (kc .ResourceVMIP , vmipMetadataName , mergePatch )
109
+ vmipName := fmt .Sprintf ("%s-%s" , namePrefix , "vm-custom-ip" )
110
+ Eventually (func () error {
111
+ return AssignIPToVMIP (vmipName )
112
+ }).Should (Succeed ())
82
113
})
83
114
84
115
It ("checks VMIPs phases" , func () {
0 commit comments