@@ -3,11 +3,12 @@ package openstack
33import (
44 "context"
55 "fmt"
6- "k8s.io/utils/ptr"
76 "reflect"
87 "sort"
98 "testing"
109
10+ "k8s.io/utils/ptr"
11+
1112 "github.com/gophercloud/gophercloud/v2"
1213 "github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/listeners"
1314 v2monitors "github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/monitors"
@@ -1905,16 +1906,22 @@ func TestBuildBatchUpdateMemberOpts(t *testing.T) {
19051906 },
19061907 },
19071908 }
1909+
1910+ defaultLBaasOpts := LoadBalancerOpts {
1911+ ProviderRequiresNodeports : true ,
1912+ }
1913+
19081914 testCases := []struct {
19091915 name string
19101916 nodes []* corev1.Node
19111917 port corev1.ServicePort
19121918 svcConf * serviceConfig
1919+ lbOpts * LoadBalancerOpts
19131920 expectedLen int
19141921 expectedNewMembersCount int
19151922 }{
19161923 {
1917- name : "NodePortequalszero " ,
1924+ name : "NodePort equals zero " ,
19181925 nodes : []* corev1.Node {node1 , node2 },
19191926 port : corev1.ServicePort {NodePort : 0 },
19201927 svcConf : & serviceConfig {
@@ -1925,6 +1932,21 @@ func TestBuildBatchUpdateMemberOpts(t *testing.T) {
19251932 expectedLen : 0 ,
19261933 expectedNewMembersCount : 0 ,
19271934 },
1935+ {
1936+ name : "NodesPort equals zero, providerRequiresNodeports=false" ,
1937+ nodes : []* corev1.Node {node1 , node2 },
1938+ port : corev1.ServicePort {NodePort : 0 , Port : 80 },
1939+ svcConf : & serviceConfig {
1940+ preferredIPFamily : corev1 .IPv4Protocol ,
1941+ lbMemberSubnetID : "subnet-12345-test" ,
1942+ healthCheckNodePort : 8081 ,
1943+ },
1944+ lbOpts : & LoadBalancerOpts {
1945+ ProviderRequiresNodeports : false ,
1946+ },
1947+ expectedLen : 2 ,
1948+ expectedNewMembersCount : 2 ,
1949+ },
19281950 {
19291951 name : "Valid nodes, canUseHTTPMonitor=false" ,
19301952 nodes : []* corev1.Node {node1 , node2 },
@@ -1987,7 +2009,15 @@ func TestBuildBatchUpdateMemberOpts(t *testing.T) {
19872009
19882010 for _ , tc := range testCases {
19892011 t .Run (tc .name , func (t * testing.T ) {
1990- lbaas := & LbaasV2 {}
2012+ lbaas := & LbaasV2 {
2013+ LoadBalancer : LoadBalancer {
2014+ opts : defaultLBaasOpts ,
2015+ },
2016+ }
2017+ // overwrite default options
2018+ if tc .lbOpts != nil {
2019+ lbaas .opts = * tc .lbOpts
2020+ }
19912021 members , newMembers , err := lbaas .buildBatchUpdateMemberOpts (context .TODO (), tc .port , tc .nodes , tc .svcConf )
19922022 assert .Len (t , members , tc .expectedLen )
19932023 assert .NoError (t , err )
0 commit comments