2023-03-15 16:00:52 +00:00
|
|
|
// Copyright (c) HashiCorp, Inc.
|
|
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
|
2019-07-16 07:31:00 +00:00
|
|
|
package command
|
|
|
|
|
|
|
|
import (
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
"github.com/mitchellh/cli"
|
|
|
|
)
|
|
|
|
|
|
|
|
var _ cli.Command = (*OperatorRaftCommand)(nil)
|
|
|
|
|
|
|
|
type OperatorRaftCommand struct {
|
|
|
|
*BaseCommand
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *OperatorRaftCommand) Synopsis() string {
|
|
|
|
return "Interact with Vault's raft storage backend"
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *OperatorRaftCommand) Help() string {
|
|
|
|
helpText := `
|
|
|
|
Usage: vault operator raft <subcommand> [options] [args]
|
|
|
|
|
2020-03-17 13:46:44 +00:00
|
|
|
This command groups subcommands for operators interacting with the Vault raft
|
|
|
|
storage backend. Most users will not need to interact with these commands. Here
|
|
|
|
are a few examples of the raft operator commands:
|
2019-07-16 07:31:00 +00:00
|
|
|
|
|
|
|
Joins a node to the raft cluster:
|
|
|
|
|
|
|
|
$ vault operator raft join https://127.0.0.1:8200
|
|
|
|
|
2020-03-06 22:40:50 +00:00
|
|
|
Returns the set of raft peers:
|
2019-07-16 07:31:00 +00:00
|
|
|
|
2020-03-06 22:40:50 +00:00
|
|
|
$ vault operator raft list-peers
|
2019-07-16 07:31:00 +00:00
|
|
|
|
|
|
|
Removes a node from the raft cluster:
|
|
|
|
|
|
|
|
$ vault operator raft remove-peer
|
|
|
|
|
2020-03-06 22:40:50 +00:00
|
|
|
Restores and saves snapshots from the raft cluster:
|
|
|
|
|
2020-03-17 13:46:44 +00:00
|
|
|
$ vault operator raft snapshot save out.snap
|
2020-03-06 22:40:50 +00:00
|
|
|
|
2019-07-16 07:31:00 +00:00
|
|
|
Please see the individual subcommand help for detailed usage information.
|
|
|
|
`
|
|
|
|
|
|
|
|
return strings.TrimSpace(helpText)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *OperatorRaftCommand) Run(args []string) int {
|
|
|
|
return cli.RunResultHelp
|
|
|
|
}
|