@@ -365,19 +365,28 @@ func (os *OpenStack) EnsureListener(name string, lbID string, secretRefs []strin
365365
366366 log .WithFields (log.Fields {"lbID" : lbID , "listenerName" : name }).Info ("listener created" )
367367 } else {
368+ updateOpts := listeners.UpdateOpts {}
368369 if len (listenerAllowedCIDRs ) > 0 && ! reflect .DeepEqual (listener .AllowedCIDRs , listenerAllowedCIDRs ) {
369- _ , err := listeners .Update (os .Octavia , listener .ID , listeners.UpdateOpts {
370- AllowedCIDRs : & listenerAllowedCIDRs ,
371- TimeoutClientData : timeoutClientData ,
372- TimeoutMemberData : timeoutMemberData ,
373- TimeoutMemberConnect : timeoutMemberConnect ,
374- TimeoutTCPInspect : timeoutTCPInspect ,
375- }).Extract ()
370+ updateOpts .AllowedCIDRs = & listenerAllowedCIDRs
371+ }
372+
373+ if timeoutClientData == nil && listener .TimeoutClientData != 0 || timeoutClientData != nil && * timeoutClientData != listener .TimeoutClientData ||
374+ timeoutMemberData == nil && listener .TimeoutMemberData != 0 || timeoutMemberData != nil && * timeoutMemberData != listener .TimeoutMemberData ||
375+ timeoutMemberConnect == nil && listener .TimeoutMemberConnect != 0 || timeoutMemberData != nil && * timeoutMemberConnect != listener .TimeoutMemberConnect ||
376+ timeoutTCPInspect == nil && listener .TimeoutTCPInspect != 0 || timeoutTCPInspect != nil && * timeoutTCPInspect != listener .TimeoutTCPInspect {
377+ updateOpts .TimeoutClientData = timeoutClientData
378+ updateOpts .TimeoutMemberData = timeoutMemberData
379+ updateOpts .TimeoutMemberConnect = timeoutMemberConnect
380+ updateOpts .TimeoutTCPInspect = timeoutTCPInspect
381+ }
382+
383+ if updateOpts != (listeners.UpdateOpts {}) {
384+ _ , err := listeners .Update (os .Octavia , listener .ID , updateOpts ).Extract ()
376385 if err != nil {
377- return nil , fmt .Errorf ("failed to update listener allowed CIDRs : %v" , err )
386+ return nil , fmt .Errorf ("failed to update listener options : %v" , err )
378387 }
379388
380- log .WithFields (log.Fields {"listenerID" : listener .ID }).Debug ("listener allowed CIDRs updated" )
389+ log .WithFields (log.Fields {"listenerID" : listener .ID }).Debug ("listener options updated" )
381390 }
382391 }
383392
0 commit comments