From 72f910e22235f1602ed2947d630ea084d5fe282a Mon Sep 17 00:00:00 2001 From: Kevin Pike Date: Fri, 8 Apr 2016 09:46:25 -0700 Subject: [PATCH] List roles --- builtin/logical/rabbitmq/backend.go | 1 + builtin/logical/rabbitmq/path_roles.go | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/builtin/logical/rabbitmq/backend.go b/builtin/logical/rabbitmq/backend.go index f806798d0a..8fd19fac11 100644 --- a/builtin/logical/rabbitmq/backend.go +++ b/builtin/logical/rabbitmq/backend.go @@ -30,6 +30,7 @@ func Backend() *framework.Backend { Paths: []*framework.Path{ pathConfigConnection(&b), pathConfigLease(&b), + pathListRoles(&b), pathRoles(&b), pathRoleCreate(&b), }, diff --git a/builtin/logical/rabbitmq/path_roles.go b/builtin/logical/rabbitmq/path_roles.go index fc829dff2e..d1b81d1313 100644 --- a/builtin/logical/rabbitmq/path_roles.go +++ b/builtin/logical/rabbitmq/path_roles.go @@ -8,6 +8,19 @@ import ( "github.com/hashicorp/vault/logical/framework" ) +func pathListRoles(b *backend) *framework.Path { + return &framework.Path{ + Pattern: "roles/?$", + + Callbacks: map[logical.Operation]framework.OperationFunc{ + logical.ListOperation: b.pathRoleList, + }, + + HelpSynopsis: pathRoleHelpSyn, + HelpDescription: pathRoleHelpDesc, + } +} + func pathRoles(b *backend) *framework.Path { return &framework.Path{ Pattern: "roles/" + framework.GenericNameRegex("name"), @@ -84,6 +97,16 @@ func (b *backend) pathRoleRead( }, nil } +func (b *backend) pathRoleList( + req *logical.Request, d *framework.FieldData) (*logical.Response, error) { + entries, err := req.Storage.List("role/") + if err != nil { + return nil, err + } + + return logical.ListResponse(entries), nil +} + func (b *backend) pathRoleCreate( req *logical.Request, data *framework.FieldData) (*logical.Response, error) { name := data.Get("name").(string)