Skip to content

Commit 0de2853

Browse files
committed
Ensure E2E cleanup
Signed-off-by: Huy Mai <[email protected]>
1 parent acc680d commit 0de2853

File tree

2 files changed

+65
-1
lines changed

2 files changed

+65
-1
lines changed

test/e2e/shared/openstack.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import (
3939
"github.com/gophercloud/gophercloud/openstack/compute/v2/flavors"
4040
"github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
4141
"github.com/gophercloud/gophercloud/openstack/imageservice/v2/images"
42+
"github.com/gophercloud/gophercloud/openstack/loadbalancer/v2/loadbalancers"
4243
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers"
4344
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups"
4445
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules"
@@ -865,3 +866,28 @@ func GetFlavorFromName(e2eCtx *E2EContext, name string) (*flavors.Flavor, error)
865866

866867
return flavors.Get(computeClient, flavorID).Extract()
867868
}
869+
870+
func DumpOpenStackLoadBalancers(e2eCtx *E2EContext, filter loadbalancers.ListOpts) ([]loadbalancers.LoadBalancer, error) {
871+
providerClient, clientOpts, _, err := GetTenantProviderClient(e2eCtx)
872+
if err != nil {
873+
_, _ = fmt.Fprintf(GinkgoWriter, "error creating provider client: %s\n", err)
874+
return nil, err
875+
}
876+
877+
loadBalancerClient, err := openstack.NewLoadBalancerV2(providerClient, gophercloud.EndpointOpts{
878+
Region: clientOpts.RegionName,
879+
})
880+
if err != nil {
881+
return nil, fmt.Errorf("error creating network client: %s", err)
882+
}
883+
884+
allPages, err := loadbalancers.List(loadBalancerClient, filter).AllPages()
885+
if err != nil {
886+
return nil, fmt.Errorf("error getting load balancers: %s", err)
887+
}
888+
loadBalancersList, err := loadbalancers.ExtractLoadBalancers(allPages)
889+
if err != nil {
890+
return nil, fmt.Errorf("error getting load balancers: %s", err)
891+
}
892+
return loadBalancersList, nil
893+
}

test/e2e/suites/e2e/e2e_suite_test.go

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ import (
2323
"os"
2424
"testing"
2525

26+
"github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes"
27+
"github.com/gophercloud/gophercloud/openstack/compute/v2/servers"
28+
"github.com/gophercloud/gophercloud/openstack/loadbalancer/v2/loadbalancers"
29+
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups"
30+
"github.com/gophercloud/gophercloud/openstack/networking/v2/networks"
2631
. "github.com/onsi/ginkgo/v2"
2732
. "github.com/onsi/gomega"
2833
"k8s.io/klog/v2"
@@ -31,7 +36,15 @@ import (
3136
"sigs.k8s.io/cluster-api-provider-openstack/test/e2e/shared"
3237
)
3338

34-
var e2eCtx *shared.E2EContext
39+
var (
40+
e2eCtx *shared.E2EContext
41+
initialServers []servers.Server
42+
initialNetworks []networks.Network
43+
initialSecurityGroups []groups.SecGroup
44+
initialLoadBalancers []loadbalancers.LoadBalancer
45+
initialVolumes []volumes.Volume
46+
err error
47+
)
3548

3649
func init() {
3750
e2eCtx = shared.NewE2EContext()
@@ -54,11 +67,36 @@ var _ = SynchronizedBeforeSuite(func() []byte {
5467
data := shared.Node1BeforeSuite(e2eCtx)
5568
return data
5669
}, func(data []byte) {
70+
initialServers, err = shared.DumpOpenStackServers(e2eCtx, servers.ListOpts{})
71+
Expect(err).NotTo(HaveOccurred())
72+
initialNetworks, err = shared.DumpOpenStackNetworks(e2eCtx, networks.ListOpts{})
73+
Expect(err).NotTo(HaveOccurred())
74+
initialSecurityGroups, err = shared.DumpOpenStackSecurityGroups(e2eCtx, groups.ListOpts{})
75+
Expect(err).NotTo(HaveOccurred())
76+
initialLoadBalancers, err = shared.DumpOpenStackLoadBalancers(e2eCtx, loadbalancers.ListOpts{})
77+
Expect(err).NotTo(HaveOccurred())
78+
initialVolumes, err = shared.DumpOpenStackVolumes(e2eCtx, volumes.ListOpts{})
79+
Expect(err).NotTo(HaveOccurred())
5780
shared.AllNodesBeforeSuite(e2eCtx, data)
5881
})
5982

6083
var _ = SynchronizedAfterSuite(func() {
6184
shared.AllNodesAfterSuite(e2eCtx)
6285
}, func() {
6386
shared.Node1AfterSuite(e2eCtx)
87+
endServers, err := shared.DumpOpenStackServers(e2eCtx, servers.ListOpts{})
88+
Expect(err).NotTo(HaveOccurred())
89+
Expect(endServers).To(Equal(initialServers))
90+
endNetworks, err := shared.DumpOpenStackNetworks(e2eCtx, networks.ListOpts{})
91+
Expect(err).NotTo(HaveOccurred())
92+
Expect(endNetworks).To(Equal(initialNetworks))
93+
endSecurityGroups, err := shared.DumpOpenStackSecurityGroups(e2eCtx, groups.ListOpts{})
94+
Expect(err).NotTo(HaveOccurred())
95+
Expect(endSecurityGroups).To(Equal(initialSecurityGroups))
96+
endLoadBalancers, err := shared.DumpOpenStackLoadBalancers(e2eCtx, loadbalancers.ListOpts{})
97+
Expect(err).NotTo(HaveOccurred())
98+
Expect(endLoadBalancers).To(Equal(initialLoadBalancers))
99+
endVolumes, err := shared.DumpOpenStackVolumes(e2eCtx, volumes.ListOpts{})
100+
Expect(err).NotTo(HaveOccurred())
101+
Expect(endVolumes).To(Equal(initialVolumes))
64102
})

0 commit comments

Comments
 (0)