@@ -31,6 +31,7 @@ import (
31
31
. "github.com/onsi/ginkgo/v2"
32
32
. "github.com/onsi/gomega"
33
33
"k8s.io/klog/v2"
34
+ "k8s.io/utils/pointer"
34
35
ctrl "sigs.k8s.io/controller-runtime"
35
36
36
37
"sigs.k8s.io/cluster-api-provider-openstack/test/e2e/shared"
@@ -81,24 +82,45 @@ var _ = SynchronizedBeforeSuite(func() []byte {
81
82
Expect (err ).NotTo (HaveOccurred ())
82
83
})
83
84
85
+ func CheckResourceCleanup [T any , L any ](f func (* shared.E2EContext , L ) ([]T , error ), l L , initialResources []T ) * string {
86
+ endResources , err := f (e2eCtx , l )
87
+
88
+ if err != nil {
89
+ return pointer .String (err .Error ())
90
+ }
91
+
92
+ matcher := ConsistOfIDs (initialResources )
93
+ success , err := matcher .Match (endResources )
94
+ if err != nil {
95
+ return pointer .String (err .Error ())
96
+ }
97
+ if ! success {
98
+ return pointer .String (matcher .FailureMessage (endResources ))
99
+ }
100
+
101
+ return nil
102
+ }
103
+
84
104
var _ = SynchronizedAfterSuite (func () {
85
105
shared .AllNodesAfterSuite (e2eCtx )
86
106
}, func () {
87
- endServers , err := shared .DumpOpenStackServers (e2eCtx , servers.ListOpts {})
88
- Expect (err ).NotTo (HaveOccurred ())
89
- Expect (endServers ).To (ConsistOfIDs (initialServers ))
90
- endNetworks , err := shared .DumpOpenStackNetworks (e2eCtx , networks.ListOpts {})
91
- Expect (err ).NotTo (HaveOccurred ())
92
- Expect (endNetworks ).To (ConsistOfIDs (initialNetworks ))
93
- endSecurityGroups , err := shared .DumpOpenStackSecurityGroups (e2eCtx , groups.ListOpts {})
94
- Expect (err ).NotTo (HaveOccurred ())
95
- Expect (endSecurityGroups ).To (ConsistOfIDs (initialSecurityGroups ))
96
- endLoadBalancers , err := shared .DumpOpenStackLoadBalancers (e2eCtx , loadbalancers.ListOpts {})
97
- Expect (err ).NotTo (HaveOccurred ())
98
- Expect (endLoadBalancers ).To (ConsistOfIDs (initialLoadBalancers ))
99
- endVolumes , err := shared .DumpOpenStackVolumes (e2eCtx , volumes.ListOpts {})
100
- Expect (err ).NotTo (HaveOccurred ())
101
- Expect (endVolumes ).To (ConsistOfIDs (initialVolumes ))
107
+ failed := false
108
+ for _ , error := range []* string {
109
+ CheckResourceCleanup (shared .DumpOpenStackServers , servers.ListOpts {}, initialServers ),
110
+ CheckResourceCleanup (shared .DumpOpenStackNetworks , networks.ListOpts {}, initialNetworks ),
111
+ CheckResourceCleanup (shared .DumpOpenStackSecurityGroups , groups.ListOpts {}, initialSecurityGroups ),
112
+ CheckResourceCleanup (shared .DumpOpenStackLoadBalancers , loadbalancers.ListOpts {}, initialLoadBalancers ),
113
+ CheckResourceCleanup (shared .DumpOpenStackVolumes , volumes.ListOpts {}, initialVolumes ),
114
+ } {
115
+ if error != nil {
116
+ GinkgoWriter .Println (* error )
117
+ failed = true
118
+ }
119
+ }
102
120
103
121
shared .Node1AfterSuite (e2eCtx )
122
+
123
+ if failed {
124
+ Fail ("Not all resources were cleaned up" )
125
+ }
104
126
})
0 commit comments