@@ -187,7 +187,7 @@ START:
187187 }
188188 }
189189 }()
190- err := a .locker .WatchServices (a . ctx , serviceName , []string {"cluster-name=" + a .Config .Clustering .ClusterName }, membersChan , a .Config .Clustering .ServicesWatchTimer )
190+ err := a .locker .WatchServices (ctx , serviceName , []string {"cluster-name=" + a .Config .Clustering .ClusterName }, membersChan , a .Config .Clustering .ServicesWatchTimer )
191191 if err != nil {
192192 a .Logger .Printf ("failed getting services: %v" , err )
193193 time .Sleep (retryTimer )
@@ -549,8 +549,10 @@ func (a *App) deleteTarget(name string) error {
549549 },
550550 }
551551 }
552+ ctx , cancel := context .WithCancel (a .ctx )
553+ defer cancel ()
552554 url := fmt .Sprintf ("%s://%s/api/v1/config/targets/%s" , scheme , s .Address , name )
553- req , err := http .NewRequestWithContext (a . ctx , http .MethodDelete , url , nil )
555+ req , err := http .NewRequestWithContext (ctx , http .MethodDelete , url , nil )
554556 if err != nil {
555557 a .Logger .Printf ("failed to create a delete request: %v" , err )
556558 errs = append (errs , err )
@@ -559,10 +561,12 @@ func (a *App) deleteTarget(name string) error {
559561
560562 rsp , err := client .Do (req )
561563 if err != nil {
564+ rsp .Body .Close ()
562565 a .Logger .Printf ("failed deleting target %q: %v" , name , err )
563566 errs = append (errs , err )
564567 continue
565568 }
569+ rsp .Body .Close ()
566570 a .Logger .Printf ("received response code=%d, for DELETE %s" , rsp .StatusCode , url )
567571 }
568572 if len (errs ) == 0 {
@@ -604,6 +608,7 @@ func (a *App) assignTarget(ctx context.Context, tc *types.TargetConfig, service
604608 if err != nil {
605609 return err
606610 }
611+ defer resp .Body .Close ()
607612 a .Logger .Printf ("got response code=%d for target %q config add from %q" , resp .StatusCode , tc .Name , service .Address )
608613 if resp .StatusCode > 200 {
609614 return fmt .Errorf ("status code=%d" , resp .StatusCode )
@@ -617,6 +622,7 @@ func (a *App) assignTarget(ctx context.Context, tc *types.TargetConfig, service
617622 if err != nil {
618623 return err
619624 }
625+ defer resp .Body .Close ()
620626 a .Logger .Printf ("got response code=%d for target %q assignment from %q" , resp .StatusCode , tc .Name , service .Address )
621627 if resp .StatusCode > 200 {
622628 return fmt .Errorf ("status code=%d" , resp .StatusCode )
@@ -655,8 +661,10 @@ func (a *App) unassignTarget(name string, serviceID string) error {
655661 }
656662 rsp , err := client .Do (req )
657663 if err != nil {
664+ rsp .Body .Close ()
658665 continue
659666 }
667+ rsp .Body .Close ()
660668 a .Logger .Printf ("received response code=%d, for DELETE %s" , rsp .StatusCode , url )
661669 break
662670 }
0 commit comments