acc843f04d
This PR is based on the previous work by @snuggie12 in PR #6825. It adds the command consul intention list to list all available intentions. The list functionality for intentions seems a bit overdue as it's just very handy. The web UI cannot list intentions outside of the default namespace, and using the API is sometimes not the friendliest option. ;) I cherry picked snuggie12's commits who did most of the heavy lifting (thanks again @snuggie12 for your great work!). The changes in the original commit mostly still worked on the current HEAD. On top of that I added support for namespaces and fixed the docs as they are managed differently today. Also the requested changes related to the "Connect" references in the original PRs have been addressed. Fixes #5652 Co-authored-by: Matt Hoey <mhoey05@jcu.edu>
230 lines
17 KiB
Go
230 lines
17 KiB
Go
package command
|
|
|
|
import (
|
|
"github.com/hashicorp/consul/command/acl"
|
|
aclagent "github.com/hashicorp/consul/command/acl/agenttokens"
|
|
aclam "github.com/hashicorp/consul/command/acl/authmethod"
|
|
aclamcreate "github.com/hashicorp/consul/command/acl/authmethod/create"
|
|
aclamdelete "github.com/hashicorp/consul/command/acl/authmethod/delete"
|
|
aclamlist "github.com/hashicorp/consul/command/acl/authmethod/list"
|
|
aclamread "github.com/hashicorp/consul/command/acl/authmethod/read"
|
|
aclamupdate "github.com/hashicorp/consul/command/acl/authmethod/update"
|
|
aclbr "github.com/hashicorp/consul/command/acl/bindingrule"
|
|
aclbrcreate "github.com/hashicorp/consul/command/acl/bindingrule/create"
|
|
aclbrdelete "github.com/hashicorp/consul/command/acl/bindingrule/delete"
|
|
aclbrlist "github.com/hashicorp/consul/command/acl/bindingrule/list"
|
|
aclbrread "github.com/hashicorp/consul/command/acl/bindingrule/read"
|
|
aclbrupdate "github.com/hashicorp/consul/command/acl/bindingrule/update"
|
|
aclbootstrap "github.com/hashicorp/consul/command/acl/bootstrap"
|
|
aclpolicy "github.com/hashicorp/consul/command/acl/policy"
|
|
aclpcreate "github.com/hashicorp/consul/command/acl/policy/create"
|
|
aclpdelete "github.com/hashicorp/consul/command/acl/policy/delete"
|
|
aclplist "github.com/hashicorp/consul/command/acl/policy/list"
|
|
aclpread "github.com/hashicorp/consul/command/acl/policy/read"
|
|
aclpupdate "github.com/hashicorp/consul/command/acl/policy/update"
|
|
aclrole "github.com/hashicorp/consul/command/acl/role"
|
|
aclrcreate "github.com/hashicorp/consul/command/acl/role/create"
|
|
aclrdelete "github.com/hashicorp/consul/command/acl/role/delete"
|
|
aclrlist "github.com/hashicorp/consul/command/acl/role/list"
|
|
aclrread "github.com/hashicorp/consul/command/acl/role/read"
|
|
aclrupdate "github.com/hashicorp/consul/command/acl/role/update"
|
|
aclrules "github.com/hashicorp/consul/command/acl/rules"
|
|
acltoken "github.com/hashicorp/consul/command/acl/token"
|
|
acltclone "github.com/hashicorp/consul/command/acl/token/clone"
|
|
acltcreate "github.com/hashicorp/consul/command/acl/token/create"
|
|
acltdelete "github.com/hashicorp/consul/command/acl/token/delete"
|
|
acltlist "github.com/hashicorp/consul/command/acl/token/list"
|
|
acltread "github.com/hashicorp/consul/command/acl/token/read"
|
|
acltupdate "github.com/hashicorp/consul/command/acl/token/update"
|
|
"github.com/hashicorp/consul/command/agent"
|
|
"github.com/hashicorp/consul/command/catalog"
|
|
catlistdc "github.com/hashicorp/consul/command/catalog/list/dc"
|
|
catlistnodes "github.com/hashicorp/consul/command/catalog/list/nodes"
|
|
catlistsvc "github.com/hashicorp/consul/command/catalog/list/services"
|
|
"github.com/hashicorp/consul/command/config"
|
|
configdelete "github.com/hashicorp/consul/command/config/delete"
|
|
configlist "github.com/hashicorp/consul/command/config/list"
|
|
configread "github.com/hashicorp/consul/command/config/read"
|
|
configwrite "github.com/hashicorp/consul/command/config/write"
|
|
"github.com/hashicorp/consul/command/connect"
|
|
"github.com/hashicorp/consul/command/connect/ca"
|
|
caget "github.com/hashicorp/consul/command/connect/ca/get"
|
|
caset "github.com/hashicorp/consul/command/connect/ca/set"
|
|
"github.com/hashicorp/consul/command/connect/envoy"
|
|
pipebootstrap "github.com/hashicorp/consul/command/connect/envoy/pipe-bootstrap"
|
|
"github.com/hashicorp/consul/command/connect/expose"
|
|
"github.com/hashicorp/consul/command/connect/proxy"
|
|
"github.com/hashicorp/consul/command/debug"
|
|
"github.com/hashicorp/consul/command/event"
|
|
"github.com/hashicorp/consul/command/exec"
|
|
"github.com/hashicorp/consul/command/forceleave"
|
|
"github.com/hashicorp/consul/command/info"
|
|
"github.com/hashicorp/consul/command/intention"
|
|
ixncheck "github.com/hashicorp/consul/command/intention/check"
|
|
ixncreate "github.com/hashicorp/consul/command/intention/create"
|
|
ixndelete "github.com/hashicorp/consul/command/intention/delete"
|
|
ixnget "github.com/hashicorp/consul/command/intention/get"
|
|
ixnlist "github.com/hashicorp/consul/command/intention/list"
|
|
ixnmatch "github.com/hashicorp/consul/command/intention/match"
|
|
"github.com/hashicorp/consul/command/join"
|
|
"github.com/hashicorp/consul/command/keygen"
|
|
"github.com/hashicorp/consul/command/keyring"
|
|
"github.com/hashicorp/consul/command/kv"
|
|
kvdel "github.com/hashicorp/consul/command/kv/del"
|
|
kvexp "github.com/hashicorp/consul/command/kv/exp"
|
|
kvget "github.com/hashicorp/consul/command/kv/get"
|
|
kvimp "github.com/hashicorp/consul/command/kv/imp"
|
|
kvput "github.com/hashicorp/consul/command/kv/put"
|
|
"github.com/hashicorp/consul/command/leave"
|
|
"github.com/hashicorp/consul/command/lock"
|
|
login "github.com/hashicorp/consul/command/login"
|
|
logout "github.com/hashicorp/consul/command/logout"
|
|
"github.com/hashicorp/consul/command/maint"
|
|
"github.com/hashicorp/consul/command/members"
|
|
"github.com/hashicorp/consul/command/monitor"
|
|
"github.com/hashicorp/consul/command/operator"
|
|
operauto "github.com/hashicorp/consul/command/operator/autopilot"
|
|
operautoget "github.com/hashicorp/consul/command/operator/autopilot/get"
|
|
operautoset "github.com/hashicorp/consul/command/operator/autopilot/set"
|
|
operautostate "github.com/hashicorp/consul/command/operator/autopilot/state"
|
|
operraft "github.com/hashicorp/consul/command/operator/raft"
|
|
operraftlist "github.com/hashicorp/consul/command/operator/raft/listpeers"
|
|
operraftremove "github.com/hashicorp/consul/command/operator/raft/removepeer"
|
|
"github.com/hashicorp/consul/command/reload"
|
|
"github.com/hashicorp/consul/command/rtt"
|
|
"github.com/hashicorp/consul/command/services"
|
|
svcsderegister "github.com/hashicorp/consul/command/services/deregister"
|
|
svcsregister "github.com/hashicorp/consul/command/services/register"
|
|
"github.com/hashicorp/consul/command/snapshot"
|
|
snapinspect "github.com/hashicorp/consul/command/snapshot/inspect"
|
|
snaprestore "github.com/hashicorp/consul/command/snapshot/restore"
|
|
snapsave "github.com/hashicorp/consul/command/snapshot/save"
|
|
"github.com/hashicorp/consul/command/tls"
|
|
tlsca "github.com/hashicorp/consul/command/tls/ca"
|
|
tlscacreate "github.com/hashicorp/consul/command/tls/ca/create"
|
|
tlscert "github.com/hashicorp/consul/command/tls/cert"
|
|
tlscertcreate "github.com/hashicorp/consul/command/tls/cert/create"
|
|
"github.com/hashicorp/consul/command/validate"
|
|
"github.com/hashicorp/consul/command/version"
|
|
"github.com/hashicorp/consul/command/watch"
|
|
consulversion "github.com/hashicorp/consul/version"
|
|
|
|
"github.com/mitchellh/cli"
|
|
)
|
|
|
|
func init() {
|
|
rev := consulversion.GitCommit
|
|
ver := consulversion.Version
|
|
verPre := consulversion.VersionPrerelease
|
|
verHuman := consulversion.GetHumanVersion()
|
|
|
|
Register("acl", func(cli.Ui) (cli.Command, error) { return acl.New(), nil })
|
|
Register("acl bootstrap", func(ui cli.Ui) (cli.Command, error) { return aclbootstrap.New(ui), nil })
|
|
Register("acl policy", func(cli.Ui) (cli.Command, error) { return aclpolicy.New(), nil })
|
|
Register("acl policy create", func(ui cli.Ui) (cli.Command, error) { return aclpcreate.New(ui), nil })
|
|
Register("acl policy list", func(ui cli.Ui) (cli.Command, error) { return aclplist.New(ui), nil })
|
|
Register("acl policy read", func(ui cli.Ui) (cli.Command, error) { return aclpread.New(ui), nil })
|
|
Register("acl policy update", func(ui cli.Ui) (cli.Command, error) { return aclpupdate.New(ui), nil })
|
|
Register("acl policy delete", func(ui cli.Ui) (cli.Command, error) { return aclpdelete.New(ui), nil })
|
|
Register("acl translate-rules", func(ui cli.Ui) (cli.Command, error) { return aclrules.New(ui), nil })
|
|
Register("acl set-agent-token", func(ui cli.Ui) (cli.Command, error) { return aclagent.New(ui), nil })
|
|
Register("acl token", func(cli.Ui) (cli.Command, error) { return acltoken.New(), nil })
|
|
Register("acl token create", func(ui cli.Ui) (cli.Command, error) { return acltcreate.New(ui), nil })
|
|
Register("acl token clone", func(ui cli.Ui) (cli.Command, error) { return acltclone.New(ui), nil })
|
|
Register("acl token list", func(ui cli.Ui) (cli.Command, error) { return acltlist.New(ui), nil })
|
|
Register("acl token read", func(ui cli.Ui) (cli.Command, error) { return acltread.New(ui), nil })
|
|
Register("acl token update", func(ui cli.Ui) (cli.Command, error) { return acltupdate.New(ui), nil })
|
|
Register("acl token delete", func(ui cli.Ui) (cli.Command, error) { return acltdelete.New(ui), nil })
|
|
Register("acl role", func(cli.Ui) (cli.Command, error) { return aclrole.New(), nil })
|
|
Register("acl role create", func(ui cli.Ui) (cli.Command, error) { return aclrcreate.New(ui), nil })
|
|
Register("acl role list", func(ui cli.Ui) (cli.Command, error) { return aclrlist.New(ui), nil })
|
|
Register("acl role read", func(ui cli.Ui) (cli.Command, error) { return aclrread.New(ui), nil })
|
|
Register("acl role update", func(ui cli.Ui) (cli.Command, error) { return aclrupdate.New(ui), nil })
|
|
Register("acl role delete", func(ui cli.Ui) (cli.Command, error) { return aclrdelete.New(ui), nil })
|
|
Register("acl auth-method", func(cli.Ui) (cli.Command, error) { return aclam.New(), nil })
|
|
Register("acl auth-method create", func(ui cli.Ui) (cli.Command, error) { return aclamcreate.New(ui), nil })
|
|
Register("acl auth-method list", func(ui cli.Ui) (cli.Command, error) { return aclamlist.New(ui), nil })
|
|
Register("acl auth-method read", func(ui cli.Ui) (cli.Command, error) { return aclamread.New(ui), nil })
|
|
Register("acl auth-method update", func(ui cli.Ui) (cli.Command, error) { return aclamupdate.New(ui), nil })
|
|
Register("acl auth-method delete", func(ui cli.Ui) (cli.Command, error) { return aclamdelete.New(ui), nil })
|
|
Register("acl binding-rule", func(cli.Ui) (cli.Command, error) { return aclbr.New(), nil })
|
|
Register("acl binding-rule create", func(ui cli.Ui) (cli.Command, error) { return aclbrcreate.New(ui), nil })
|
|
Register("acl binding-rule list", func(ui cli.Ui) (cli.Command, error) { return aclbrlist.New(ui), nil })
|
|
Register("acl binding-rule read", func(ui cli.Ui) (cli.Command, error) { return aclbrread.New(ui), nil })
|
|
Register("acl binding-rule update", func(ui cli.Ui) (cli.Command, error) { return aclbrupdate.New(ui), nil })
|
|
Register("acl binding-rule delete", func(ui cli.Ui) (cli.Command, error) { return aclbrdelete.New(ui), nil })
|
|
Register("agent", func(ui cli.Ui) (cli.Command, error) {
|
|
return agent.New(ui, rev, ver, verPre, verHuman, make(chan struct{})), nil
|
|
})
|
|
Register("catalog", func(cli.Ui) (cli.Command, error) { return catalog.New(), nil })
|
|
Register("catalog datacenters", func(ui cli.Ui) (cli.Command, error) { return catlistdc.New(ui), nil })
|
|
Register("catalog nodes", func(ui cli.Ui) (cli.Command, error) { return catlistnodes.New(ui), nil })
|
|
Register("catalog services", func(ui cli.Ui) (cli.Command, error) { return catlistsvc.New(ui), nil })
|
|
Register("config", func(ui cli.Ui) (cli.Command, error) { return config.New(), nil })
|
|
Register("config delete", func(ui cli.Ui) (cli.Command, error) { return configdelete.New(ui), nil })
|
|
Register("config list", func(ui cli.Ui) (cli.Command, error) { return configlist.New(ui), nil })
|
|
Register("config read", func(ui cli.Ui) (cli.Command, error) { return configread.New(ui), nil })
|
|
Register("config write", func(ui cli.Ui) (cli.Command, error) { return configwrite.New(ui), nil })
|
|
Register("connect", func(ui cli.Ui) (cli.Command, error) { return connect.New(), nil })
|
|
Register("connect ca", func(ui cli.Ui) (cli.Command, error) { return ca.New(), nil })
|
|
Register("connect ca get-config", func(ui cli.Ui) (cli.Command, error) { return caget.New(ui), nil })
|
|
Register("connect ca set-config", func(ui cli.Ui) (cli.Command, error) { return caset.New(ui), nil })
|
|
Register("connect proxy", func(ui cli.Ui) (cli.Command, error) { return proxy.New(ui, MakeShutdownCh()), nil })
|
|
Register("connect envoy", func(ui cli.Ui) (cli.Command, error) { return envoy.New(ui), nil })
|
|
Register("connect envoy pipe-bootstrap", func(ui cli.Ui) (cli.Command, error) { return pipebootstrap.New(ui), nil })
|
|
Register("connect expose", func(ui cli.Ui) (cli.Command, error) { return expose.New(ui), nil })
|
|
Register("debug", func(ui cli.Ui) (cli.Command, error) { return debug.New(ui, MakeShutdownCh()), nil })
|
|
Register("event", func(ui cli.Ui) (cli.Command, error) { return event.New(ui), nil })
|
|
Register("exec", func(ui cli.Ui) (cli.Command, error) { return exec.New(ui, MakeShutdownCh()), nil })
|
|
Register("force-leave", func(ui cli.Ui) (cli.Command, error) { return forceleave.New(ui), nil })
|
|
Register("info", func(ui cli.Ui) (cli.Command, error) { return info.New(ui), nil })
|
|
Register("intention", func(ui cli.Ui) (cli.Command, error) { return intention.New(), nil })
|
|
Register("intention check", func(ui cli.Ui) (cli.Command, error) { return ixncheck.New(ui), nil })
|
|
Register("intention create", func(ui cli.Ui) (cli.Command, error) { return ixncreate.New(ui), nil })
|
|
Register("intention delete", func(ui cli.Ui) (cli.Command, error) { return ixndelete.New(ui), nil })
|
|
Register("intention get", func(ui cli.Ui) (cli.Command, error) { return ixnget.New(ui), nil })
|
|
Register("intention list", func(ui cli.Ui) (cli.Command, error) { return ixnlist.New(ui), nil })
|
|
Register("intention match", func(ui cli.Ui) (cli.Command, error) { return ixnmatch.New(ui), nil })
|
|
Register("join", func(ui cli.Ui) (cli.Command, error) { return join.New(ui), nil })
|
|
Register("keygen", func(ui cli.Ui) (cli.Command, error) { return keygen.New(ui), nil })
|
|
Register("keyring", func(ui cli.Ui) (cli.Command, error) { return keyring.New(ui), nil })
|
|
Register("kv", func(cli.Ui) (cli.Command, error) { return kv.New(), nil })
|
|
Register("kv delete", func(ui cli.Ui) (cli.Command, error) { return kvdel.New(ui), nil })
|
|
Register("kv export", func(ui cli.Ui) (cli.Command, error) { return kvexp.New(ui), nil })
|
|
Register("kv get", func(ui cli.Ui) (cli.Command, error) { return kvget.New(ui), nil })
|
|
Register("kv import", func(ui cli.Ui) (cli.Command, error) { return kvimp.New(ui), nil })
|
|
Register("kv put", func(ui cli.Ui) (cli.Command, error) { return kvput.New(ui), nil })
|
|
Register("leave", func(ui cli.Ui) (cli.Command, error) { return leave.New(ui), nil })
|
|
Register("lock", func(ui cli.Ui) (cli.Command, error) { return lock.New(ui, MakeShutdownCh()), nil })
|
|
Register("login", func(ui cli.Ui) (cli.Command, error) { return login.New(ui), nil })
|
|
Register("logout", func(ui cli.Ui) (cli.Command, error) { return logout.New(ui), nil })
|
|
Register("maint", func(ui cli.Ui) (cli.Command, error) { return maint.New(ui), nil })
|
|
Register("members", func(ui cli.Ui) (cli.Command, error) { return members.New(ui), nil })
|
|
Register("monitor", func(ui cli.Ui) (cli.Command, error) { return monitor.New(ui, MakeShutdownCh()), nil })
|
|
Register("operator", func(cli.Ui) (cli.Command, error) { return operator.New(), nil })
|
|
Register("operator autopilot", func(cli.Ui) (cli.Command, error) { return operauto.New(), nil })
|
|
Register("operator autopilot get-config", func(ui cli.Ui) (cli.Command, error) { return operautoget.New(ui), nil })
|
|
Register("operator autopilot set-config", func(ui cli.Ui) (cli.Command, error) { return operautoset.New(ui), nil })
|
|
Register("operator autopilot state", func(ui cli.Ui) (cli.Command, error) { return operautostate.New(ui), nil })
|
|
Register("operator raft", func(cli.Ui) (cli.Command, error) { return operraft.New(), nil })
|
|
Register("operator raft list-peers", func(ui cli.Ui) (cli.Command, error) { return operraftlist.New(ui), nil })
|
|
Register("operator raft remove-peer", func(ui cli.Ui) (cli.Command, error) { return operraftremove.New(ui), nil })
|
|
Register("reload", func(ui cli.Ui) (cli.Command, error) { return reload.New(ui), nil })
|
|
Register("rtt", func(ui cli.Ui) (cli.Command, error) { return rtt.New(ui), nil })
|
|
Register("services", func(cli.Ui) (cli.Command, error) { return services.New(), nil })
|
|
Register("services register", func(ui cli.Ui) (cli.Command, error) { return svcsregister.New(ui), nil })
|
|
Register("services deregister", func(ui cli.Ui) (cli.Command, error) { return svcsderegister.New(ui), nil })
|
|
Register("snapshot", func(cli.Ui) (cli.Command, error) { return snapshot.New(), nil })
|
|
Register("snapshot inspect", func(ui cli.Ui) (cli.Command, error) { return snapinspect.New(ui), nil })
|
|
Register("snapshot restore", func(ui cli.Ui) (cli.Command, error) { return snaprestore.New(ui), nil })
|
|
Register("snapshot save", func(ui cli.Ui) (cli.Command, error) { return snapsave.New(ui), nil })
|
|
Register("tls", func(ui cli.Ui) (cli.Command, error) { return tls.New(), nil })
|
|
Register("tls ca", func(ui cli.Ui) (cli.Command, error) { return tlsca.New(), nil })
|
|
Register("tls ca create", func(ui cli.Ui) (cli.Command, error) { return tlscacreate.New(ui), nil })
|
|
Register("tls cert", func(ui cli.Ui) (cli.Command, error) { return tlscert.New(), nil })
|
|
Register("tls cert create", func(ui cli.Ui) (cli.Command, error) { return tlscertcreate.New(ui), nil })
|
|
Register("validate", func(ui cli.Ui) (cli.Command, error) { return validate.New(ui), nil })
|
|
Register("version", func(ui cli.Ui) (cli.Command, error) { return version.New(ui), nil })
|
|
Register("watch", func(ui cli.Ui) (cli.Command, error) { return watch.New(ui, MakeShutdownCh()), nil })
|
|
}
|