Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 11 additions & 13 deletions internal/controller/cisco/nx/bordergateway_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,24 +76,22 @@ var _ = Describe("BorderGateway Controller", func() {
})

AfterEach(func() {
var resource client.Object = &nxv1alpha1.BorderGateway{}
err := k8sClient.Get(ctx, key, resource)
Expect(err).NotTo(HaveOccurred())

By("Cleanup the specific resource instance BorderGateway")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())

resource = &v1alpha1.Device{}
err = k8sClient.Get(ctx, key, resource)
Expect(err).NotTo(HaveOccurred())

By("Cleanup the specific resource instance Device")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())
By("Cleaning up the BorderGateway resource")
bg := &nxv1alpha1.BorderGateway{}
bg.Name = name
bg.Namespace = metav1.NamespaceDefault
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, bg))).To(Succeed())

By("Ensuring the resource is deleted from the provider")
Eventually(func(g Gomega) {
g.Expect(testProvider.BorderGateway).To(BeNil(), "Provider BorderGateway settings should be reset after deletion")
}).Should(Succeed())

By("Cleaning up the Device resource")
device := &v1alpha1.Device{}
device.Name = name
device.Namespace = metav1.NamespaceDefault
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, device))).To(Succeed())
})

It("Should successfully reconcile the resource", func() {
Expand Down
24 changes: 11 additions & 13 deletions internal/controller/cisco/nx/system_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,24 +55,22 @@ var _ = Describe("System Controller", func() {
})

AfterEach(func() {
var resource client.Object = &nxv1alpha1.System{}
err := k8sClient.Get(ctx, key, resource)
Expect(err).NotTo(HaveOccurred())

By("Cleanup the specific resource instance System")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())

resource = &v1alpha1.Device{}
err = k8sClient.Get(ctx, key, resource)
Expect(err).NotTo(HaveOccurred())

By("Cleanup the specific resource instance Device")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())
By("Cleaning up the System resource")
system := &nxv1alpha1.System{}
system.Name = name
system.Namespace = metav1.NamespaceDefault
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, system))).To(Succeed())

By("Ensuring the resource is deleted from the provider")
Eventually(func(g Gomega) {
g.Expect(testProvider.Settings).To(BeNil(), "Provider System settings should be reset after deletion")
}).Should(Succeed())

By("Cleaning up the Device resource")
device := &v1alpha1.Device{}
device.Name = name
device.Namespace = metav1.NamespaceDefault
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, device))).To(Succeed())
})

It("Should successfully reconcile the resource", func() {
Expand Down
34 changes: 22 additions & 12 deletions internal/controller/cisco/nx/vpcdomain_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,16 +116,16 @@ var _ = Describe("VPCDomain Controller", func() {
By("Cleanup the specific resource instance VPCDomain")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())

By("Ensuring the resource is deleted from the provider")
Eventually(func(g Gomega) {
g.Expect(testProvider.VPCDomain).To(BeNil(), "Provider VPCDomain should be nil")
}).Should(Succeed())

resource = &corev1.Device{}
Expect(k8sClient.Get(ctx, key, resource)).To(Succeed())

By("Cleanup the specific resource instance Device")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())

By("Ensuring the resource is deleted from the provider")
Eventually(func(g Gomega) {
g.Expect(testProvider.VPCDomain).To(BeNil(), "Provider VPCDomain should be nil")
}).Should(Succeed())
})

It("Should successfully reconcile the resource", func() {
Expand Down Expand Up @@ -296,18 +296,28 @@ var _ = Describe("VPCDomain Controller", func() {
By("Cleanup the VPCDomain")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())

By("Cleanup all Interface and VRF resources")
Expect(k8sClient.DeleteAllOf(ctx, &corev1.Interface{}, client.InNamespace(metav1.NamespaceDefault))).To(Succeed())
Expect(k8sClient.DeleteAllOf(ctx, &corev1.VRF{}, client.InNamespace(metav1.NamespaceDefault))).To(Succeed())

By("Cleanup Device A and B")
Expect(k8sClient.Delete(ctx, &corev1.Device{ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: metav1.NamespaceDefault}})).To(Succeed())
Expect(k8sClient.Delete(ctx, &corev1.Device{ObjectMeta: metav1.ObjectMeta{Name: name + "-b", Namespace: metav1.NamespaceDefault}})).To(Succeed())
By("Cleanup Interface and VRF resources")
for _, ifName := range []string{name + "-phys", name + "-po", name + "-phys-b", name + "-po-b", name + "-lo0"} {
intf := &corev1.Interface{}
intf.Name = ifName
intf.Namespace = metav1.NamespaceDefault
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, intf))).To(Succeed())
}
for _, vrfName := range []string{name + "-vrf-a", name + "-vrf-b"} {
vrf := &corev1.VRF{}
vrf.Name = vrfName
vrf.Namespace = metav1.NamespaceDefault
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, vrf))).To(Succeed())
}

By("Ensuring the resource is deleted from the provider")
Eventually(func(g Gomega) {
g.Expect(testProvider.VPCDomain).To(BeNil(), "Provider VPCDomain should be nil")
}).Should(Succeed())

By("Cleanup Device A and B")
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, &corev1.Device{ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: metav1.NamespaceDefault}}))).To(Succeed())
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, &corev1.Device{ObjectMeta: metav1.ObjectMeta{Name: name + "-b", Namespace: metav1.NamespaceDefault}}))).To(Succeed())
})

It("reports WaitingForDependencies when peer-link interface is missing", func() {
Expand Down
33 changes: 12 additions & 21 deletions internal/controller/core/acl_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import (

. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
Expand Down Expand Up @@ -73,30 +72,22 @@ var _ = Describe("AccessControlList Controller", func() {
})

AfterEach(func() {
var resource client.Object = &v1alpha1.AccessControlList{}
err := k8sClient.Get(ctx, key, resource)
Expect(err).NotTo(HaveOccurred())
By("Cleaning up the AccessControlList resource")
acl := &v1alpha1.AccessControlList{}
acl.Name = name
acl.Namespace = metav1.NamespaceDefault
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, acl))).To(Succeed())

By("Cleanup the specific resource instance AccessControlList")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())

By("Waiting for AccessControlList to be fully deleted")
Eventually(func(g Gomega) {
err := k8sClient.Get(ctx, key, &v1alpha1.AccessControlList{})
g.Expect(apierrors.IsNotFound(err)).To(BeTrue())
}).Should(Succeed())

resource = &v1alpha1.Device{}
err = k8sClient.Get(ctx, key, resource)
Expect(err).NotTo(HaveOccurred())

By("Cleanup the specific resource instance Device")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())

By("Ensuring the resource is deleted from the provider")
By("Verifying the resource is removed from the provider")
Eventually(func(g Gomega) {
g.Expect(testProvider.ACLs.Has(name)).To(BeFalse(), "Provider shouldn't have AccessControlList configured anymore")
}).Should(Succeed())

By("Cleaning up the Device resource")
device := &v1alpha1.Device{}
device.Name = name
device.Namespace = metav1.NamespaceDefault
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, device))).To(Succeed())
})

It("Should successfully reconcile the resource", func() {
Expand Down
33 changes: 12 additions & 21 deletions internal/controller/core/banner_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ package core
import (
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
Expand Down Expand Up @@ -40,31 +39,23 @@ var _ = Describe("Banner Controller", func() {
})

AfterEach(func() {
var resource client.Object = &v1alpha1.Banner{}
err := k8sClient.Get(ctx, key, resource)
Expect(err).NotTo(HaveOccurred())
By("Cleaning up the Banner resource")
banner := &v1alpha1.Banner{}
banner.Name = name
banner.Namespace = metav1.NamespaceDefault
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, banner))).To(Succeed())

By("Cleanup the specific resource instance Banner")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())

By("Waiting for Banner to be fully deleted")
Eventually(func(g Gomega) {
err := k8sClient.Get(ctx, key, &v1alpha1.Banner{})
g.Expect(apierrors.IsNotFound(err)).To(BeTrue())
}).Should(Succeed())

resource = &v1alpha1.Device{}
err = k8sClient.Get(ctx, key, resource)
Expect(err).NotTo(HaveOccurred())

By("Cleanup the specific resource instance Device")
Expect(k8sClient.Delete(ctx, resource)).To(Succeed())

By("Ensuring the resource is deleted from the provider")
By("Verifying the resource is removed from the provider")
Eventually(func(g Gomega) {
g.Expect(testProvider.PreLoginBanner).To(BeNil(), "Provider PreLogin Banner should be nil")
g.Expect(testProvider.PostLoginBanner).To(BeNil(), "Provider PostLogin Banner should be nil")
}).Should(Succeed())

By("Cleaning up the Device resource")
device := &v1alpha1.Device{}
device.Name = name
device.Namespace = metav1.NamespaceDefault
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, device))).To(Succeed())
})

It("Should successfully reconcile a PreLogin Banner", func() {
Expand Down
85 changes: 34 additions & 51 deletions internal/controller/core/bgp_controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ package core
import (
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
"sigs.k8s.io/controller-runtime/pkg/client"
Expand Down Expand Up @@ -37,8 +36,41 @@ var _ = Describe("BGP Controller", func() {
})

AfterEach(func() {
By("Cleaning up BGP resources for this device")
bgpList := &v1alpha1.BGPList{}
Expect(k8sClient.List(ctx, bgpList, client.InNamespace(metav1.NamespaceDefault), client.MatchingLabels{v1alpha1.DeviceLabel: device.Name})).To(Succeed())
for i := range bgpList.Items {
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, &bgpList.Items[i]))).To(Succeed())
}

By("Cleaning up VRF resources for this device")
vrfList := &v1alpha1.VRFList{}
Expect(k8sClient.List(ctx, vrfList, client.InNamespace(metav1.NamespaceDefault), client.MatchingLabels{v1alpha1.DeviceLabel: device.Name})).To(Succeed())
for i := range vrfList.Items {
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, &vrfList.Items[i]))).To(Succeed())
}

By("Cleaning up RoutingPolicy resources for this device")
rpList := &v1alpha1.RoutingPolicyList{}
Expect(k8sClient.List(ctx, rpList, client.InNamespace(metav1.NamespaceDefault), client.MatchingLabels{v1alpha1.DeviceLabel: device.Name})).To(Succeed())
for i := range rpList.Items {
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, &rpList.Items[i]))).To(Succeed())
}

By("Waiting for BGP resources to be fully deleted")
Eventually(func(g Gomega) {
list := &v1alpha1.BGPList{}
g.Expect(k8sClient.List(ctx, list, client.InNamespace(metav1.NamespaceDefault), client.MatchingLabels{v1alpha1.DeviceLabel: device.Name})).To(Succeed())
g.Expect(list.Items).To(BeEmpty())
}).Should(Succeed())

By("Verifying BGP is removed from the provider")
Eventually(func(g Gomega) {
g.Expect(testProvider.BGP).To(BeNil(), "Provider should not have BGP instance configured")
}).Should(Succeed())

By("Deleting the Device resource")
Expect(k8sClient.Delete(ctx, device, client.PropagationPolicy(metav1.DeletePropagationForeground))).To(Succeed())
Expect(client.IgnoreNotFound(k8sClient.Delete(ctx, device))).To(Succeed())
})

It("Should successfully reconcile the resource", func() {
Expand All @@ -55,17 +87,6 @@ var _ = Describe("BGP Controller", func() {
},
}
Expect(k8sClient.Create(ctx, bgp)).To(Succeed())
DeferCleanup(func() {
Expect(k8sClient.Delete(ctx, bgp)).To(Succeed())
Eventually(func(g Gomega) {
b := &v1alpha1.BGP{}
g.Expect(apierrors.IsNotFound(k8sClient.Get(ctx, client.ObjectKeyFromObject(bgp), b))).To(BeTrue())
}).Should(Succeed())
By("Ensuring the resource is deleted from the provider")
Eventually(func(g Gomega) {
g.Expect(testProvider.BGP).To(BeNil(), "Provider should not have BGP instance configured")
}).Should(Succeed())
})

By("Adding a finalizer to the resource")
Eventually(func(g Gomega) {
Expand Down Expand Up @@ -122,13 +143,6 @@ var _ = Describe("BGP Controller", func() {
},
}
Expect(k8sClient.Create(ctx, bgp)).To(Succeed())
DeferCleanup(func() {
Expect(k8sClient.Delete(ctx, bgp)).To(Succeed())
Eventually(func(g Gomega) {
b := &v1alpha1.BGP{}
g.Expect(apierrors.IsNotFound(k8sClient.Get(ctx, client.ObjectKeyFromObject(bgp), b))).To(BeTrue())
}).Should(Succeed())
})

By("Expecting ReadyCondition to be False with VRFNotFoundReason reason")
Eventually(func(g Gomega) {
Expand All @@ -154,9 +168,6 @@ var _ = Describe("BGP Controller", func() {
},
}
Expect(k8sClient.Create(ctx, vrf)).To(Succeed())
DeferCleanup(func() {
Expect(k8sClient.Delete(ctx, vrf)).To(Succeed())
})

By("Creating a BGP with the vrfRef set")
bgp := &v1alpha1.BGP{
Expand All @@ -172,13 +183,6 @@ var _ = Describe("BGP Controller", func() {
},
}
Expect(k8sClient.Create(ctx, bgp)).To(Succeed())
DeferCleanup(func() {
Expect(k8sClient.Delete(ctx, bgp)).To(Succeed())
Eventually(func(g Gomega) {
b := &v1alpha1.BGP{}
g.Expect(apierrors.IsNotFound(k8sClient.Get(ctx, client.ObjectKeyFromObject(bgp), b))).To(BeTrue())
}).Should(Succeed())
})

By("Ensuring the provider receives the VRF")
Eventually(func(g Gomega) {
Expand Down Expand Up @@ -218,13 +222,6 @@ var _ = Describe("BGP Controller", func() {
},
}
Expect(k8sClient.Create(ctx, bgp)).To(Succeed())
DeferCleanup(func() {
Expect(k8sClient.Delete(ctx, bgp)).To(Succeed())
Eventually(func(g Gomega) {
b := &v1alpha1.BGP{}
g.Expect(apierrors.IsNotFound(k8sClient.Get(ctx, client.ObjectKeyFromObject(bgp), b))).To(BeTrue())
}).Should(Succeed())
})

By("Expecting ReadyCondition to be False with WaitingForDependencies reason")
Eventually(func(g Gomega) {
Expand Down Expand Up @@ -256,13 +253,6 @@ var _ = Describe("BGP Controller", func() {
},
}
Expect(k8sClient.Create(ctx, rp)).To(Succeed())
DeferCleanup(func() {
Expect(k8sClient.Delete(ctx, rp)).To(Succeed())
Eventually(func(g Gomega) {
r := &v1alpha1.RoutingPolicy{}
g.Expect(apierrors.IsNotFound(k8sClient.Get(ctx, client.ObjectKeyFromObject(rp), r))).To(BeTrue())
}).Should(Succeed())
})

By("Expecting ReadyCondition to become True after the RoutingPolicy is created")
Eventually(func(g Gomega) {
Expand All @@ -288,13 +278,6 @@ var _ = Describe("BGP Controller", func() {
},
}
Expect(k8sClient.Create(ctx, bgp)).To(Succeed())
DeferCleanup(func() {
Expect(k8sClient.Delete(ctx, bgp)).To(Succeed())
Eventually(func(g Gomega) {
b := &v1alpha1.BGP{}
g.Expect(apierrors.IsNotFound(k8sClient.Get(ctx, client.ObjectKeyFromObject(bgp), b))).To(BeTrue())
}).Should(Succeed())
})

By("Waiting for the BGP to be reconciled so we know it exists")
Eventually(func(g Gomega) {
Expand Down
Loading
Loading