@@ -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,11 +1906,17 @@ 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 }{
@@ -1925,6 +1932,21 @@ func TestBuildBatchUpdateMemberOpts(t *testing.T) {
19251932 expectedLen : 0 ,
19261933 expectedNewMembersCount : 0 ,
19271934 },
1935+ {
1936+ name : "NodesPortequalszero, providerRequiresNodeports=false" ,
1937+ nodes : []* corev1.Node {node1 , node2 },
1938+ port : corev1.ServicePort {NodePort : 0 },
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 },
@@ -1988,6 +2010,10 @@ func TestBuildBatchUpdateMemberOpts(t *testing.T) {
19882010 for _ , tc := range testCases {
19892011 t .Run (tc .name , func (t * testing.T ) {
19902012 lbaas := & LbaasV2 {}
2013+ // overwrite default options
2014+ if tc .lbOpts != nil {
2015+ lbaas .opts = * tc .lbOpts
2016+ }
19912017 members , newMembers , err := lbaas .buildBatchUpdateMemberOpts (context .TODO (), tc .port , tc .nodes , tc .svcConf )
19922018 assert .Len (t , members , tc .expectedLen )
19932019 assert .NoError (t , err )
0 commit comments