Merge pull request #37650 from anshulpundir/vndr
Add support for filtering on node labels
This commit is contained in:
commit
a0385f7ad7
|
@ -8609,6 +8609,7 @@ paths:
|
||||||
- `label=<engine label>`
|
- `label=<engine label>`
|
||||||
- `membership=`(`accepted`|`pending`)`
|
- `membership=`(`accepted`|`pending`)`
|
||||||
- `name=<node name>`
|
- `name=<node name>`
|
||||||
|
- `node.label=<node label>`
|
||||||
- `role=`(`manager`|`worker`)`
|
- `role=`(`manager`|`worker`)`
|
||||||
type: "string"
|
type: "string"
|
||||||
tags: ["Node"]
|
tags: ["Node"]
|
||||||
|
|
|
@ -16,6 +16,7 @@ func newListNodesFilters(filter filters.Args) (*swarmapi.ListNodesRequest_Filter
|
||||||
"label": true,
|
"label": true,
|
||||||
"role": true,
|
"role": true,
|
||||||
"membership": true,
|
"membership": true,
|
||||||
|
"node.label": true,
|
||||||
}
|
}
|
||||||
if err := filter.Validate(accepted); err != nil {
|
if err := filter.Validate(accepted); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -24,6 +25,7 @@ func newListNodesFilters(filter filters.Args) (*swarmapi.ListNodesRequest_Filter
|
||||||
NamePrefixes: filter.Get("name"),
|
NamePrefixes: filter.Get("name"),
|
||||||
IDPrefixes: filter.Get("id"),
|
IDPrefixes: filter.Get("id"),
|
||||||
Labels: runconfigopts.ConvertKVStringsToMap(filter.Get("label")),
|
Labels: runconfigopts.ConvertKVStringsToMap(filter.Get("label")),
|
||||||
|
NodeLabels: runconfigopts.ConvertKVStringsToMap(filter.Get("node.label")),
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, r := range filter.Get("role") {
|
for _, r := range filter.Get("role") {
|
||||||
|
|
|
@ -26,6 +26,10 @@ keywords: "API, Docker, rcli, REST, documentation"
|
||||||
* `POST /swarm/init` now accepts a `DefaultAddrPool` property to set global scope default address pool
|
* `POST /swarm/init` now accepts a `DefaultAddrPool` property to set global scope default address pool
|
||||||
* `POST /swarm/init` now accepts a `SubnetSize` property to set global scope networks by giving the
|
* `POST /swarm/init` now accepts a `SubnetSize` property to set global scope networks by giving the
|
||||||
length of the subnet masks for every such network
|
length of the subnet masks for every such network
|
||||||
|
* `GET /nodes` now supports a filter type `node.label` filter to filter nodes based
|
||||||
|
on the node.label. The format of the label filter is `node.label=<key>`/`node.label=<key>=<value>`
|
||||||
|
to return those with the specified labels, or `node.label!=<key>`/`node.label!=<key>=<value>`
|
||||||
|
to return those without the specified labels.
|
||||||
|
|
||||||
## V1.38 API changes
|
## V1.38 API changes
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue