Skip to content

Commit 0bf9805

Browse files
committed
MINOR: consul: add support for regexp filtering service names
1 parent e5709f9 commit 0bf9805

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

discovery/consul_service_discovery_instance.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,10 @@ func (c *consulInstance) updateServices() error {
142142
if c.params.Namespace != "" {
143143
params.Namespace = c.params.Namespace
144144
}
145+
146+
if c.params.ServiceNameRegexp != "" {
147+
params.Filter = fmt.Sprintf("ServiceName matches \"%s\"", c.params.ServiceNameRegexp)
148+
}
145149
cServices, _, err := c.queryCatalogServices(params)
146150
if err != nil {
147151
return err
@@ -336,11 +340,19 @@ func (c *consulInstance) doConsulQuery(method string, path string, params *query
336340
req.Header.Add("X-Consul-Token", c.params.Token)
337341
}
338342

343+
q := url.Values{}
344+
339345
// Request's parameters.
340346
if params.Namespace != "" {
341347
req.Header.Add("ns", c.params.Namespace)
342348
}
343349

350+
if params.Filter != "" {
351+
q.Add("filter", params.Filter)
352+
}
353+
354+
req.URL.RawQuery = q.Encode()
355+
344356
httpResp, err := c.httpClient.Do(req)
345357
if err != nil {
346358
return nil, err
@@ -378,6 +390,7 @@ type serviceEntry struct {
378390

379391
type queryParams struct {
380392
Namespace string
393+
Filter string
381394
}
382395

383396
type queryMetadata struct {

0 commit comments

Comments
 (0)