@@ -166,22 +166,22 @@ func (s *server) profile(c *gin.Context) {
166166 }
167167
168168 allInfos := s .Store .GetAll ()
169- filterAddrList , err := filterAddrs (body .Service , body .Address , body .Force , allInfos )
169+ filterAddrInfoList , err := filterAddrInfo (body .Service , body .Address , body .Force , allInfos )
170170 if err != nil {
171171 c .JSON (http .StatusExpectationFailed , gin.H {"error" : err .Error ()})
172172 return
173173 }
174174
175175 var mergedProfiles = make ([][]* cover.Profile , 0 )
176- for _ , addr := range filterAddrList {
177- pp , err := NewWorker (addr ).Profile (ProfileParam {})
176+ for _ , addrInfo := range filterAddrInfoList {
177+ pp , err := NewWorker (addrInfo . Address ).Profile (ProfileParam {})
178178 if err != nil {
179179 if body .Force {
180- log .Warnf ("get profile from [%s] failed, error: %s" , addr , err .Error ())
180+ log .Warnf ("get profile from [%s] failed, error: %s" , addrInfo , err .Error ())
181181 continue
182182 }
183183
184- c .JSON (http .StatusExpectationFailed , gin.H {"error" : fmt .Sprintf ("failed to get profile from %s, error %s" , addr , err .Error ())})
184+ c .JSON (http .StatusExpectationFailed , gin.H {"error" : fmt .Sprintf ("failed to get profile from %s, service %s, error %s" , addrInfo . Address , addrInfo . Name , err .Error ())})
185185 return
186186 }
187187
@@ -277,18 +277,18 @@ func (s *server) clear(c *gin.Context) {
277277 return
278278 }
279279 svrsUnderTest := s .Store .GetAll ()
280- filterAddrList , err := filterAddrs (body .Service , body .Address , true , svrsUnderTest )
280+ filterAddrInfoList , err := filterAddrInfo (body .Service , body .Address , true , svrsUnderTest )
281281 if err != nil {
282282 c .JSON (http .StatusExpectationFailed , gin.H {"error" : err .Error ()})
283283 return
284284 }
285- for _ , addr := range filterAddrList {
286- pp , err := NewWorker (addr ).Clear (ProfileParam {})
285+ for _ , addrInfo := range filterAddrInfoList {
286+ pp , err := NewWorker (addrInfo . Address ).Clear (ProfileParam {})
287287 if err != nil {
288288 c .JSON (http .StatusExpectationFailed , gin.H {"error" : err .Error ()})
289289 return
290290 }
291- fmt .Fprintf (c .Writer , "Register service %s coverage counter %s" , addr , string (pp ))
291+ fmt .Fprintf (c .Writer , "Register service %s coverage counter %s" , addrInfo . Address , string (pp ))
292292 }
293293
294294}
@@ -309,18 +309,18 @@ func (s *server) removeServices(c *gin.Context) {
309309 return
310310 }
311311 svrsUnderTest := s .Store .GetAll ()
312- filterAddrList , err := filterAddrs (body .Service , body .Address , true , svrsUnderTest )
312+ filterAddrInfoList , err := filterAddrInfo (body .Service , body .Address , true , svrsUnderTest )
313313 if err != nil {
314314 c .JSON (http .StatusExpectationFailed , gin.H {"error" : err .Error ()})
315315 return
316316 }
317- for _ , addr := range filterAddrList {
318- err := s .Store .Remove (addr )
317+ for _ , addrInfo := range filterAddrInfoList {
318+ err := s .Store .Remove (addrInfo . Address )
319319 if err != nil {
320320 c .JSON (http .StatusExpectationFailed , gin.H {"error" : err .Error ()})
321321 return
322322 }
323- fmt .Fprintf (c .Writer , "Register service %s removed from the center." , addr )
323+ fmt .Fprintf (c .Writer , "Register service %s removed from the center." , addrInfo . Address )
324324 }
325325}
326326
@@ -350,8 +350,8 @@ func contains(arr []string, str string) bool {
350350 return false
351351}
352352
353- // filterAddrs filter address list by given service and address list
354- func filterAddrs (serviceList , addressList []string , force bool , allInfos map [string ][]string ) (filterAddrList []string , err error ) {
353+ // filterAddrInfo filter address list by given service and address list
354+ func filterAddrInfo (serviceList , addressList []string , force bool , allInfos map [string ][]string ) (filterAddrList []ServiceUnderTest , err error ) {
355355 addressAll := []string {}
356356 for _ , addr := range allInfos {
357357 addressAll = append (addressAll , addr ... )
@@ -363,8 +363,10 @@ func filterAddrs(serviceList, addressList []string, force bool, allInfos map[str
363363
364364 // Add matched services to map
365365 for _ , name := range serviceList {
366- if addr , ok := allInfos [name ]; ok {
367- filterAddrList = append (filterAddrList , addr ... )
366+ if addrs , ok := allInfos [name ]; ok {
367+ for _ , addr := range addrs {
368+ filterAddrList = append (filterAddrList , ServiceUnderTest {Name : name , Address : addr })
369+ }
368370 continue // jump to match the next service
369371 }
370372 if ! force {
@@ -376,7 +378,7 @@ func filterAddrs(serviceList, addressList []string, force bool, allInfos map[str
376378 // Add matched addresses to map
377379 for _ , addr := range addressList {
378380 if contains (addressAll , addr ) {
379- filterAddrList = append (filterAddrList , addr )
381+ filterAddrList = append (filterAddrList , ServiceUnderTest { Address : addr } )
380382 continue
381383 }
382384 if ! force {
@@ -386,7 +388,9 @@ func filterAddrs(serviceList, addressList []string, force bool, allInfos map[str
386388 }
387389
388390 if len (addressList ) == 0 && len (serviceList ) == 0 {
389- filterAddrList = addressAll
391+ for _ , addr := range addressAll {
392+ filterAddrList = append (filterAddrList , ServiceUnderTest {Address : addr })
393+ }
390394 }
391395
392396 // Return all services when all param is nil
0 commit comments