serviceR = "serviceR"
serviceL = "serviceL"
serviceZ = "serviceZ"
+
+ externalIpControl = "1.2.3.4"
+ internalIpControl = "192.168.121.100"
+ internalIpWorker = "192.168.121.200"
+ hostnameControl = "onap-control-1"
+ hostnameWorker = "onap-worker-1"
)
var (
servicesManyWithNodePort *v1.ServiceList
servicesManyWithMultipleNodePorts *v1.ServiceList
servicesManyMixedNodePorts *v1.ServiceList
+
+ nodesEmpty *v1.NodeList
+ nodesSingleWithIP *v1.NodeList
+ nodesSingleWithBothIPs *v1.NodeList
+ nodesManyWithHostnames *v1.NodeList
+ nodesManyWithMixedIPs *v1.NodeList
)
BeforeEach(func() {
},
},
}
+
+ nodesEmpty = &v1.NodeList{}
+ nodesSingleWithIP = &v1.NodeList{
+ Items: []v1.Node{
+ v1.Node{
+ Status: v1.NodeStatus{
+ Addresses: []v1.NodeAddress{
+ v1.NodeAddress{Type: "InternalIP", Address: internalIpControl},
+ v1.NodeAddress{Type: "Hostname", Address: hostnameControl},
+ },
+ },
+ },
+ },
+ }
+ nodesSingleWithBothIPs = &v1.NodeList{
+ Items: []v1.Node{
+ v1.Node{
+ Status: v1.NodeStatus{
+ Addresses: []v1.NodeAddress{
+ v1.NodeAddress{Type: "ExternalIP", Address: externalIpControl},
+ v1.NodeAddress{Type: "InternalIP", Address: internalIpControl},
+ v1.NodeAddress{Type: "Hostname", Address: hostnameControl},
+ },
+ },
+ },
+ },
+ }
+ nodesManyWithHostnames = &v1.NodeList{
+ Items: []v1.Node{
+ v1.Node{
+ Status: v1.NodeStatus{
+ Addresses: []v1.NodeAddress{
+ v1.NodeAddress{Type: "Hostname", Address: hostnameControl},
+ },
+ },
+ },
+ v1.Node{
+ Status: v1.NodeStatus{
+ Addresses: []v1.NodeAddress{
+ v1.NodeAddress{Type: "Hostname", Address: hostnameWorker},
+ },
+ },
+ },
+ },
+ }
+ nodesManyWithMixedIPs = &v1.NodeList{
+ Items: []v1.Node{
+ v1.Node{
+ Status: v1.NodeStatus{
+ Addresses: []v1.NodeAddress{
+ v1.NodeAddress{Type: "ExternalIP", Address: externalIpControl},
+ v1.NodeAddress{Type: "InternalIP", Address: internalIpControl},
+ v1.NodeAddress{Type: "Hostname", Address: hostnameControl},
+ },
+ },
+ },
+ v1.Node{
+ Status: v1.NodeStatus{
+ Addresses: []v1.NodeAddress{
+ v1.NodeAddress{Type: "InternalIP", Address: internalIpWorker},
+ v1.NodeAddress{Type: "Hostname", Address: hostnameWorker},
+ },
+ },
+ },
+ },
+ }
})
Describe("NodePorts extraction", func() {
})
})
})
+
+ Describe("IP addresses extraction", func() {
+ Context("With empty node list", func() {
+ It("should report no IP addresses", func() {
+ addresses, ok := FilterIPAddresses(nodesEmpty)
+ Expect(ok).To(BeFalse())
+ Expect(addresses).To(BeEmpty())
+ })
+ })
+ Context("With nodes using only hostnames", func() {
+ It("should report no IP addresses", func() {
+ addresses, ok := FilterIPAddresses(nodesManyWithHostnames)
+ Expect(ok).To(BeFalse())
+ Expect(addresses).To(BeEmpty())
+ })
+ })
+ Context("With node using only internal IP", func() {
+ It("should report internal IP", func() {
+ expected := []string{internalIpControl}
+ addresses, ok := FilterIPAddresses(nodesSingleWithIP)
+ Expect(ok).To(BeTrue())
+ Expect(addresses).To(Equal(expected))
+ })
+ })
+ Context("With node in the cloud", func() {
+ It("should report all IPs in correct order", func() {
+ expected := []string{externalIpControl, internalIpControl}
+ addresses, ok := FilterIPAddresses(nodesSingleWithBothIPs)
+ Expect(ok).To(BeTrue())
+ Expect(addresses).To(Equal(expected))
+ })
+ })
+ Context("With nodes in the mixed cloud", func() {
+ It("should report external IP as the first one", func() {
+ addresses, ok := FilterIPAddresses(nodesManyWithMixedIPs)
+ Expect(ok).To(BeTrue())
+ Expect(addresses[0]).To(Equal(externalIpControl))
+ })
+ })
+ })
})