Skip to content

Commit

Permalink
E2E: Add subports to trunked port to test subports deletion
Browse files Browse the repository at this point in the history
Signed-off-by: Huy Mai <huy.mai@est.tech>
  • Loading branch information
mquhuy committed Jul 17, 2024
1 parent 20e8bac commit 2834de0
Showing 1 changed file with 47 additions and 8 deletions.
55 changes: 47 additions & 8 deletions test/e2e/suites/e2e/e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ import (
"strings"
"time"

"github.com/gophercloud/gophercloud/v2"
"github.com/gophercloud/gophercloud/v2/openstack"
"github.com/gophercloud/gophercloud/v2/openstack/blockstorage/v3/volumes"
"github.com/gophercloud/gophercloud/v2/openstack/compute/v2/servers"
"github.com/gophercloud/gophercloud/v2/openstack/networking/v2/extensions/layer3/routers"
Expand Down Expand Up @@ -420,6 +422,9 @@ var _ = Describe("e2e tests [PR-Blocking]", func() {
Description: ptr.To("trunked"),
Trunk: ptr.To(true),
},
{
Description: ptr.To("with-subport"),
},
{
SecurityGroups: []infrav1.SecurityGroupParam{{Filter: &infrav1.SecurityGroupFilter{Name: testSecurityGroupName}}},
},
Expand All @@ -446,30 +451,64 @@ var _ = Describe("e2e tests [PR-Blocking]", func() {
return len(plist)
}, e2eCtx.E2EConfig.GetIntervals(specName, "wait-worker-nodes")...).Should(Equal(1))

port := plist[0]
Expect(port.Description).To(Equal("primary"))
Expect(port.Tags).To(ContainElement(testTag))
primaryPort := plist[0]
Expect(primaryPort.Description).To(Equal("primary"))
Expect(primaryPort.Tags).To(ContainElement(testTag))

// assert trunked port is created.
Eventually(func() int {
plist, err = shared.DumpOpenStackPorts(e2eCtx, ports.ListOpts{Description: "trunked", Tags: testTag})
Expect(err).To(BeNil())
return len(plist)
}, e2eCtx.E2EConfig.GetIntervals(specName, "wait-worker-nodes")...).Should(Equal(1))
port = plist[0]
Expect(port.Description).To(Equal("trunked"))
Expect(port.Tags).To(ContainElement(testTag))
trunkedPort := plist[0]
Expect(trunkedPort.Description).To(Equal("trunked"))
Expect(trunkedPort.Tags).To(ContainElement(testTag))

// assert trunk data.
var trunk *trunks.Trunk
Eventually(func() int {
trunk, err = shared.DumpOpenStackTrunks(e2eCtx, port.ID)
trunk, err = shared.DumpOpenStackTrunks(e2eCtx, trunkedPort.ID)
Expect(err).To(BeNil())
Expect(trunk).NotTo(BeNil())
return 1
}, e2eCtx.E2EConfig.GetIntervals(specName, "wait-worker-nodes")...).Should(Equal(1))
Expect(trunk.PortID).To(Equal(port.ID))
Expect(trunk.PortID).To(Equal(trunkedPort.ID))

// Testing subports
Eventually(func() int {
plist, err = shared.DumpOpenStackPorts(e2eCtx, ports.ListOpts{Description: "with-subport", Tags: testTag})
Expect(err).To(BeNil())
return len(plist)
}, e2eCtx.E2EConfig.GetIntervals(specName, "wait-worker-nodes")...).Should(Equal(1))

subPortedPort := plist[0]
shared.Logf("Adding subport to the with-subport port")
providerClient, clientOpts, _, err := shared.GetTenantProviderClient(e2eCtx)
Expect(err).To(BeNil(), "Cannot create providerClient")
networkClient, err := openstack.NewNetworkV2(providerClient, gophercloud.EndpointOpts{
Region: clientOpts.RegionName,
})
Expect(err).To(BeNil(), "Cannot create network client")

addSubportsOpts := trunks.AddSubportsOpts{
Subports: []trunks.Subport{
{
SegmentationID: 1,
SegmentationType: "vlan",
PortID: subPortedPort.ID,
},
},
}
_, err = trunks.AddSubports(context.TODO(), networkClient, trunk.ID, addSubportsOpts).Extract()
Expect(err).To(BeNil(), "Cannot add subports")

shared.Logf("Deleting the trunked port, which should trigger deletion of the trunk")
err = ports.Delete(context.TODO(), networkClient, trunkedPort.ID).ExtractErr()
Expect(err).To(BeNil(), "Failed to remove trunk subports")

// assert port level security group is created by name using SecurityGroupFilters

securityGroupsList, err := shared.DumpOpenStackSecurityGroups(e2eCtx, groups.ListOpts{Name: testSecurityGroupName})
Expect(err).NotTo(HaveOccurred())
Expect(securityGroupsList).To(HaveLen(1))
Expand Down

0 comments on commit 2834de0

Please sign in to comment.