csi: allow volume detach to take a node ID prefix (#9041)
Fixes a bug where the `nomad volume detach` command would not accept a node ID prefix instead of a full node ID. The volume ID is already prefix matched server-side.
This commit is contained in:
parent
3ceb5b36b1
commit
82749bd6a6
|
@ -21,6 +21,7 @@ BUG FIXES:
|
|||
* core: Fixed a bug where blocking queries would not include the query's maximum wait time when calculating whether it was safe to retry. [[GH-8921](https://github.com/hashicorp/nomad/issues/8921)]
|
||||
* consul: Fixed a bug to correctly validate task when using script-checks in group-level services [[GH-8952](https://github.com/hashicorp/nomad/issues/8952)]
|
||||
* csi: Fixed a bug where multi-writer volumes were allowed only 1 write claim. [[GH-9040](https://github.com/hashicorp/nomad/issues/9040)]
|
||||
* csi: Fixed a bug where `nomad volume detach` would not accept prefixes for the node ID parameter. [[GH-9041](https://github.com/hashicorp/nomad/issues/9041)]
|
||||
|
||||
## 0.12.5 (September 17, 2020)
|
||||
|
||||
|
|
|
@ -87,7 +87,24 @@ func (c *VolumeDetachCommand) Run(args []string) int {
|
|||
return 1
|
||||
}
|
||||
|
||||
err = client.CSIVolumes().Detach(volID, nodeID, nil)
|
||||
nodeID = sanitizeUUIDPrefix(nodeID)
|
||||
nodes, _, err := client.Nodes().PrefixList(nodeID)
|
||||
if err != nil {
|
||||
c.Ui.Error(fmt.Sprintf("Error detaching volume: %s", err))
|
||||
return 1
|
||||
}
|
||||
// Return error if no nodes are found
|
||||
if len(nodes) == 0 {
|
||||
c.Ui.Error(fmt.Sprintf("No node(s) with prefix or id %q found", nodeID))
|
||||
return 1
|
||||
}
|
||||
if len(nodes) > 1 {
|
||||
c.Ui.Error(fmt.Sprintf("Prefix matched multiple nodes\n\n%s",
|
||||
formatNodeStubList(nodes, true)))
|
||||
return 1
|
||||
}
|
||||
|
||||
err = client.CSIVolumes().Detach(volID, nodes[0].ID, nil)
|
||||
if err != nil {
|
||||
c.Ui.Error(fmt.Sprintf("Error detaching volume: %s", err))
|
||||
return 1
|
||||
|
|
Loading…
Reference in New Issue