Skip to content

Commit 514ce73

Browse files
anshulpundirthaJeztah
authored andcommitted
Changes to cluster/filter, swagger.yaml, version-history.md for filtering on node labels.
Signed-off-by: Anshul Pundir <anshul.pundir@docker.com> Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
1 parent 2629fe9 commit 514ce73

File tree

3 files changed

+7
-0
lines changed

3 files changed

+7
-0
lines changed

api/swagger.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8609,6 +8609,7 @@ paths:
86098609
- `label=<engine label>`
86108610
- `membership=`(`accepted`|`pending`)`
86118611
- `name=<node name>`
8612+
- `node.label=<node label>`
86128613
- `role=`(`manager`|`worker`)`
86138614
type: "string"
86148615
tags: ["Node"]

daemon/cluster/filters.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ func newListNodesFilters(filter filters.Args) (*swarmapi.ListNodesRequest_Filter
1616
"label": true,
1717
"role": true,
1818
"membership": true,
19+
"node.label": true,
1920
}
2021
if err := filter.Validate(accepted); err != nil {
2122
return nil, err
@@ -24,6 +25,7 @@ func newListNodesFilters(filter filters.Args) (*swarmapi.ListNodesRequest_Filter
2425
NamePrefixes: filter.Get("name"),
2526
IDPrefixes: filter.Get("id"),
2627
Labels: runconfigopts.ConvertKVStringsToMap(filter.Get("label")),
28+
NodeLabels: runconfigopts.ConvertKVStringsToMap(filter.Get("node.label")),
2729
}
2830

2931
for _, r := range filter.Get("role") {

docs/api/version-history.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ keywords: "API, Docker, rcli, REST, documentation"
2626
* `POST /swarm/init` now accepts a `DefaultAddrPool` property to set global scope default address pool
2727
* `POST /swarm/init` now accepts a `SubnetSize` property to set global scope networks by giving the
2828
length of the subnet masks for every such network
29+
* `GET /nodes` now supports a filter type `node.label` filter to filter nodes based
30+
on the node.label. The format of the label filter is `node.label=<key>`/`node.label=<key>=<value>`
31+
to return those with the specified labels, or `node.label!=<key>`/`node.label!=<key>=<value>`
32+
to return those without the specified labels.
2933

3034
## V1.38 API changes
3135

0 commit comments

Comments
 (0)