Add API specs for voting config exclusions (#55919)
Closes #48131 Backport of #55760 Co-authored-by: zacharymorn <zacharymorn@gmail.com>
This commit is contained in:
parent
767836c367
commit
5ca511622f
|
@ -869,6 +869,8 @@ public class RestHighLevelClientTests extends ESTestCase {
|
|||
"cluster.reroute",
|
||||
"cluster.state",
|
||||
"cluster.stats",
|
||||
"cluster.post_voting_config_exclusions",
|
||||
"cluster.delete_voting_config_exclusions",
|
||||
"indices.shard_stores",
|
||||
"indices.upgrade",
|
||||
"indices.recovery",
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
"cluster.delete_voting_config_exclusions":{
|
||||
"documentation":{
|
||||
"url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/voting-config-exclusions.html",
|
||||
"description":"Clears cluster voting config exclusions."
|
||||
},
|
||||
"stability":"stable",
|
||||
"url":{
|
||||
"paths":[
|
||||
{
|
||||
"path":"/_cluster/voting_config_exclusions",
|
||||
"methods":[
|
||||
"DELETE"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"params":{
|
||||
"wait_for_removal": {
|
||||
"type":"boolean",
|
||||
"description":"Specifies whether to wait for all excluded nodes to be removed from the cluster before clearing the voting configuration exclusions list.",
|
||||
"default":true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"cluster.post_voting_config_exclusions":{
|
||||
"documentation":{
|
||||
"url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/voting-config-exclusions.html",
|
||||
"description":"Updates the cluster voting config exclusions by node ids or node names."
|
||||
},
|
||||
"stability":"stable",
|
||||
"url":{
|
||||
"paths":[
|
||||
{
|
||||
"path":"/_cluster/voting_config_exclusions",
|
||||
"methods":[
|
||||
"POST"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"params":{
|
||||
"node_ids":{
|
||||
"type":"string",
|
||||
"description":"A comma-separated list of the persistent ids of the nodes to exclude from the voting configuration. If specified, you may not also specify ?node_names."
|
||||
},
|
||||
"node_names":{
|
||||
"type":"string",
|
||||
"description":"A comma-separated list of the names of the nodes to exclude from the voting configuration. If specified, you may not also specify ?node_ids."
|
||||
},
|
||||
"timeout":{
|
||||
"type":"time",
|
||||
"description":"Explicit operation timeout",
|
||||
"default":"30s"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,107 @@
|
|||
teardown:
|
||||
- do:
|
||||
cluster.delete_voting_config_exclusions: {}
|
||||
|
||||
---
|
||||
"Get cluster state without voting config exclusions":
|
||||
- skip:
|
||||
version: " - 6.99.99"
|
||||
reason: Voting config exclusions were introduced in 7.0.0
|
||||
|
||||
- do:
|
||||
cluster.state: {}
|
||||
|
||||
- length: { metadata.cluster_coordination.voting_config_exclusions: 0 }
|
||||
|
||||
---
|
||||
"Add voting config exclusion by unknown node Id":
|
||||
- skip:
|
||||
version: " - 7.7.99"
|
||||
reason: Tests the new voting config exclusions API introduced in 7.8.0
|
||||
|
||||
- do:
|
||||
cluster.post_voting_config_exclusions:
|
||||
node_ids: nodeId
|
||||
|
||||
- do:
|
||||
cluster.state: {}
|
||||
|
||||
- length: { metadata.cluster_coordination.voting_config_exclusions: 1 }
|
||||
- match: { metadata.cluster_coordination.voting_config_exclusions.0.node_id: "nodeId" }
|
||||
- match: { metadata.cluster_coordination.voting_config_exclusions.0.node_name: "_absent_" }
|
||||
|
||||
---
|
||||
"Add voting config exclusion by unknown node Ids":
|
||||
- skip:
|
||||
version: " - 7.7.99"
|
||||
features: contains
|
||||
reason: "contains is a newly added assertion, and this tests the new voting config exclusions API introduced in 7.8.0"
|
||||
|
||||
- do:
|
||||
cluster.post_voting_config_exclusions:
|
||||
node_ids: nodeId1,nodeId2
|
||||
|
||||
- do:
|
||||
cluster.state: {}
|
||||
|
||||
- length: { metadata.cluster_coordination.voting_config_exclusions: 2 }
|
||||
- contains : { metadata.cluster_coordination.voting_config_exclusions: {node_id: "nodeId1", node_name: "_absent_"} }
|
||||
- contains : { metadata.cluster_coordination.voting_config_exclusions: {node_id: "nodeId2", node_name: "_absent_"} }
|
||||
|
||||
---
|
||||
"Add voting config exclusion by unknown node name":
|
||||
- skip:
|
||||
version: " - 7.7.99"
|
||||
reason: Tests the new voting config exclusions API introduced in 7.8.0
|
||||
|
||||
- do:
|
||||
cluster.post_voting_config_exclusions:
|
||||
node_names: nodeName
|
||||
|
||||
- do:
|
||||
cluster.state: {}
|
||||
|
||||
- length: { metadata.cluster_coordination.voting_config_exclusions: 1 }
|
||||
- match: { metadata.cluster_coordination.voting_config_exclusions.0.node_id: "_absent_" }
|
||||
- match: { metadata.cluster_coordination.voting_config_exclusions.0.node_name: "nodeName" }
|
||||
|
||||
---
|
||||
"Add voting config exclusion by unknown node names":
|
||||
- skip:
|
||||
version: " - 7.7.99"
|
||||
features: contains
|
||||
reason: "contains is a newly added assertion, and this tests the new voting config exclusions API introduced in 7.8.0"
|
||||
|
||||
- do:
|
||||
cluster.post_voting_config_exclusions:
|
||||
node_names: nodeName1,nodeName2
|
||||
|
||||
- do:
|
||||
cluster.state: {}
|
||||
|
||||
- length: { metadata.cluster_coordination.voting_config_exclusions: 2 }
|
||||
- contains : { metadata.cluster_coordination.voting_config_exclusions: {node_id: "_absent_", node_name: "nodeName1"} }
|
||||
- contains : { metadata.cluster_coordination.voting_config_exclusions: {node_id: "_absent_", node_name: "nodeName2"} }
|
||||
|
||||
---
|
||||
"Throw exception when adding voting config exclusion without specifying nodes":
|
||||
- skip:
|
||||
version: " - 7.7.99"
|
||||
reason: Tests the new voting config exclusions API introduced in 7.8.0
|
||||
|
||||
- do:
|
||||
catch: /Please set node identifiers correctly. One and only one of \[node_name\], \[node_names\] and \[node_ids\] has to be set/
|
||||
cluster.post_voting_config_exclusions: {}
|
||||
|
||||
---
|
||||
"Throw exception when adding voting config exclusion and specifying both node_ids and node_names":
|
||||
- skip:
|
||||
version: " - 7.7.99"
|
||||
reason: Tests the new voting config exclusions API introduced in 7.8.0
|
||||
|
||||
- do:
|
||||
catch: /Please set node identifiers correctly. One and only one of \[node_name\], \[node_names\] and \[node_ids\] has to be set/
|
||||
cluster.post_voting_config_exclusions:
|
||||
node_ids: nodeId
|
||||
node_names: nodeName
|
||||
|
Loading…
Reference in New Issue