Skip to content

Commit 942215c

Browse files
committed
#159: Add node-meta param to /catalog/nodes request
1 parent 569a41f commit 942215c

File tree

4 files changed

+47
-5
lines changed

4 files changed

+47
-5
lines changed

src/main/java/com/ecwid/consul/v1/ConsulClient.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,11 @@ public Response<List<Node>> getCatalogNodes(QueryParams queryParams) {
367367
return catalogClient.getCatalogNodes(queryParams);
368368
}
369369

370+
@Override
371+
public Response<List<Node>> getCatalogNodes(Map<String, String> nodeMeta, QueryParams queryParams) {
372+
return catalogClient.getCatalogNodes(nodeMeta, queryParams);
373+
}
374+
370375
@Override
371376
public Response<Map<String, List<String>>> getCatalogServices(QueryParams queryParams) {
372377
return catalogClient.getCatalogServices(queryParams);
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.ecwid.consul.v1;
2+
3+
import com.ecwid.consul.UrlParameters;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
import java.util.Map;
8+
9+
public class NodeMetaParameters implements UrlParameters {
10+
11+
private final Map<String, String> nodeMeta;
12+
13+
public NodeMetaParameters(Map<String, String> nodeMeta) {
14+
this.nodeMeta = nodeMeta;
15+
}
16+
17+
@Override
18+
public List<String> toUrlParameters() {
19+
List<String> params = new ArrayList<>();
20+
21+
if (nodeMeta != null) {
22+
String key = "node-meta";
23+
24+
for (Map.Entry<String, String> entry : nodeMeta.entrySet()) {
25+
String value = entry.getKey() + ":" + entry.getValue();
26+
params.add(key + "=" + value);
27+
}
28+
}
29+
30+
return params;
31+
}
32+
}

src/main/java/com/ecwid/consul/v1/catalog/CatalogClient.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ public interface CatalogClient {
2727

2828
public Response<List<Node>> getCatalogNodes(QueryParams queryParams);
2929

30+
public Response<List<Node>> getCatalogNodes(Map<String, String> nodeMeta, QueryParams queryParams);
31+
3032
public Response<Map<String, List<String>>> getCatalogServices(QueryParams queryParams);
3133

3234
public Response<Map<String, List<String>>> getCatalogServices(QueryParams queryParams, String token);

src/main/java/com/ecwid/consul/v1/catalog/CatalogConsulClient.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@
88
import com.ecwid.consul.json.GsonFactory;
99
import com.ecwid.consul.transport.RawResponse;
1010
import com.ecwid.consul.transport.TLSConfig;
11-
import com.ecwid.consul.v1.ConsulRawClient;
12-
import com.ecwid.consul.v1.OperationException;
13-
import com.ecwid.consul.v1.QueryParams;
14-
import com.ecwid.consul.v1.Response;
11+
import com.ecwid.consul.v1.*;
1512
import com.ecwid.consul.v1.catalog.model.CatalogDeregistration;
1613
import com.ecwid.consul.v1.catalog.model.CatalogNode;
1714
import com.ecwid.consul.v1.catalog.model.CatalogRegistration;
@@ -104,7 +101,13 @@ public Response<List<String>> getCatalogDatacenters() {
104101

105102
@Override
106103
public Response<List<Node>> getCatalogNodes(QueryParams queryParams) {
107-
RawResponse rawResponse = rawClient.makeGetRequest("/v1/catalog/nodes", queryParams);
104+
return getCatalogNodes(null, queryParams);
105+
}
106+
107+
@Override
108+
public Response<List<Node>> getCatalogNodes(Map<String, String> nodeMeta, QueryParams queryParams) {
109+
UrlParameters nodeMetaParam = new NodeMetaParameters(nodeMeta);
110+
RawResponse rawResponse = rawClient.makeGetRequest("/v1/catalog/nodes", queryParams, nodeMetaParam);
108111

109112
if (rawResponse.getStatusCode() == 200) {
110113
List<Node> value = GsonFactory.getGson().fromJson(rawResponse.getContent(), new TypeToken<List<Node>>() {

0 commit comments

Comments
 (0)