Skip to content

Commit 4b501e1

Browse files
xwen-winnielyyyuna
authored andcommitted
fix service info err
fix add fix var fix service info err
1 parent 89dbc5a commit 4b501e1

File tree

2 files changed

+32
-20
lines changed

2 files changed

+32
-20
lines changed

pkg/cover/server.go

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

pkg/cover/server_test.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,18 @@ func TestFilterAddrs(t *testing.T) {
105105
},
106106
}
107107
for _, item := range items {
108-
addrs, err := filterAddrs(item.svrList, item.addrList, item.force, svrAll)
108+
res, err := filterAddrInfo(item.svrList, item.addrList, item.force, svrAll)
109109
if err != nil {
110110
assert.Equal(t, err.Error(), item.err)
111111
} else {
112+
addrs := []string{}
113+
if len(res) == 0 {
114+
addrs = nil
115+
} else {
116+
for _, addr := range res {
117+
addrs = append(addrs, addr.Address)
118+
}
119+
}
112120
if len(addrs) == 0 {
113121
assert.Equal(t, addrs, item.addrRes)
114122
}

0 commit comments

Comments
 (0)