Merge pull request #1210 from hashicorp/audit-id-path

Rename id to path and path to file_path, print audit backend paths
This commit is contained in:
Vishal Nayak 2016-03-15 20:13:21 -04:00
commit 7db7b47fdd
10 changed files with 26 additions and 19 deletions

View file

@ -78,6 +78,7 @@ func (c *Sys) DisableAudit(path string) error {
// documentation. Please refer to that documentation for more details. // documentation. Please refer to that documentation for more details.
type Audit struct { type Audit struct {
Path string
Type string Type string
Description string Description string
Options map[string]string Options map[string]string

View file

@ -18,9 +18,12 @@ func Factory(conf *audit.BackendConfig) (audit.Backend, error) {
return nil, fmt.Errorf("nil salt") return nil, fmt.Errorf("nil salt")
} }
path, ok := conf.Config["path"] path, ok := conf.Config["file_path"]
if !ok { if !ok {
return nil, fmt.Errorf("path is required") path, ok = conf.Config["path"]
if !ok {
return nil, fmt.Errorf("file_path is required")
}
} }
// Check if hashing of accessor is disabled // Check if hashing of accessor is disabled

View file

@ -19,10 +19,10 @@ type AuditEnableCommand struct {
} }
func (c *AuditEnableCommand) Run(args []string) int { func (c *AuditEnableCommand) Run(args []string) int {
var desc, id string var desc, path string
flags := c.Meta.FlagSet("audit-enable", FlagSetDefault) flags := c.Meta.FlagSet("audit-enable", FlagSetDefault)
flags.StringVar(&desc, "description", "", "") flags.StringVar(&desc, "description", "", "")
flags.StringVar(&id, "id", "", "") flags.StringVar(&path, "path", "", "")
flags.Usage = func() { c.Ui.Error(c.Help()) } flags.Usage = func() { c.Ui.Error(c.Help()) }
if err := flags.Parse(args); err != nil { if err := flags.Parse(args); err != nil {
return 1 return 1
@ -37,8 +37,8 @@ func (c *AuditEnableCommand) Run(args []string) int {
} }
auditType := args[0] auditType := args[0]
if id == "" { if path == "" {
id = auditType path = auditType
} }
// Build the options // Build the options
@ -67,7 +67,7 @@ func (c *AuditEnableCommand) Run(args []string) int {
return 1 return 1
} }
err = client.Sys().EnableAudit(id, auditType, desc, opts) err = client.Sys().EnableAudit(path, auditType, desc, opts)
if err != nil { if err != nil {
c.Ui.Error(fmt.Sprintf( c.Ui.Error(fmt.Sprintf(
"Error enabling audit backend: %s", err)) "Error enabling audit backend: %s", err))
@ -75,7 +75,7 @@ func (c *AuditEnableCommand) Run(args []string) int {
} }
c.Ui.Output(fmt.Sprintf( c.Ui.Output(fmt.Sprintf(
"Successfully enabled audit backend '%s'!", auditType)) "Successfully enabled audit backend '%s' with path '%s'!", auditType, path))
return 0 return 0
} }
@ -103,7 +103,7 @@ Audit Enable Options:
-description=<desc> A human-friendly description for the backend. This -description=<desc> A human-friendly description for the backend. This
shows up only when querying the enabled backends. shows up only when querying the enabled backends.
-id=<id> Specify a unique ID for this audit backend. This -path=<path> Specify a unique path for this audit backend. This
is purely for referencing this audit backend. By is purely for referencing this audit backend. By
default this will be the backend type. default this will be the backend type.

View file

@ -47,7 +47,7 @@ func (c *AuditListCommand) Run(args []string) int {
} }
sort.Strings(paths) sort.Strings(paths)
columns := []string{"Type | Description | Options"} columns := []string{"Path | Type | Description | Options"}
for _, path := range paths { for _, path := range paths {
audit := audits[path] audit := audits[path]
opts := make([]string, 0, len(audit.Options)) opts := make([]string, 0, len(audit.Options))
@ -56,7 +56,7 @@ func (c *AuditListCommand) Run(args []string) int {
} }
columns = append(columns, fmt.Sprintf( columns = append(columns, fmt.Sprintf(
"%s | %s | %s", audit.Type, audit.Description, strings.Join(opts, " "))) "%s | %s | %s | %s", audit.Path, audit.Type, audit.Description, strings.Join(opts, " ")))
} }
c.Ui.Output(columnize.SimpleFormat(columns)) c.Ui.Output(columnize.SimpleFormat(columns))

View file

@ -23,6 +23,7 @@ func TestSysAudit(t *testing.T) {
var actual map[string]interface{} var actual map[string]interface{}
expected := map[string]interface{}{ expected := map[string]interface{}{
"noop/": map[string]interface{}{ "noop/": map[string]interface{}{
"path": "noop/",
"type": "noop", "type": "noop",
"description": "", "description": "",
"options": map[string]interface{}{}, "options": map[string]interface{}{},
@ -31,7 +32,7 @@ func TestSysAudit(t *testing.T) {
testResponseStatus(t, resp, 200) testResponseStatus(t, resp, 200)
testResponseBody(t, resp, &actual) testResponseBody(t, resp, &actual)
if !reflect.DeepEqual(actual, expected) { if !reflect.DeepEqual(actual, expected) {
t.Fatalf("bad: %#v", actual) t.Fatalf("bad: expected:\n%#v actual:\n%#v\n", expected, actual)
} }
} }

View file

@ -932,6 +932,7 @@ func (b *SystemBackend) handleAuditTable(
} }
for _, entry := range b.Core.audit.Entries { for _, entry := range b.Core.audit.Entries {
info := map[string]interface{}{ info := map[string]interface{}{
"path": entry.Path,
"type": entry.Type, "type": entry.Type,
"description": entry.Description, "description": entry.Description,
"options": entry.Options, "options": entry.Options,

View file

@ -635,6 +635,7 @@ func TestSystemBackend_auditTable(t *testing.T) {
exp := map[string]interface{}{ exp := map[string]interface{}{
"foo/": map[string]interface{}{ "foo/": map[string]interface{}{
"path": "foo/",
"type": "noop", "type": "noop",
"description": "testing", "description": "testing",
"options": map[string]string{ "options": map[string]string{

View file

@ -25,13 +25,13 @@ information is first hashed before logging in the audit logs.
Audit `file` backend can be enabled by the following command. Audit `file` backend can be enabled by the following command.
``` ```
$ vault audit-enable file path=/var/log/vault_audit.log $ vault audit-enable file file_path=/var/log/vault_audit.log
``` ```
Any number of `file` audit logs can be created by enabling it with different `id`s. Any number of `file` audit logs can be created by enabling it with different `path`s.
``` ```
$ vault audit-enable -id="vault_audit_1" file path=/home/user/vault_audit.log $ vault audit-enable -path="vault_audit_1" file file_path=/home/user/vault_audit.log
``` ```
Note the difference between `audit-enable` command options and the `file` backend Note the difference between `audit-enable` command options and the `file` backend
@ -43,7 +43,7 @@ Following are the configuration options available for the backend.
<dd> <dd>
<ul> <ul>
<li> <li>
<span class="param">path</span> <span class="param">file_path</span>
<span class="param-flags">required</span> <span class="param-flags">required</span>
The path to where the audit log will be written. If this The path to where the audit log will be written. If this
path exists, the audit backend will append to it. path exists, the audit backend will append to it.

View file

@ -27,7 +27,7 @@ description: |-
<dd>POST</dd> <dd>POST</dd>
<dt>URL</dt> <dt>URL</dt>
<dd>`/sys/audit-hash/<name>`</dd> <dd>`/sys/audit-hash/<path>`</dd>
<dt>Parameters</dt> <dt>Parameters</dt>
<dd> <dd>

View file

@ -54,7 +54,7 @@ description: |-
<dd>PUT</dd> <dd>PUT</dd>
<dt>URL</dt> <dt>URL</dt>
<dd>`/sys/audit/<name>`</dd> <dd>`/sys/audit/<path>`</dd>
<dt>Parameters</dt> <dt>Parameters</dt>
<dd> <dd>
@ -96,7 +96,7 @@ description: |-
<dd>DELETE</dd> <dd>DELETE</dd>
<dt>URL</dt> <dt>URL</dt>
<dd>`/sys/audit/<name>`</dd> <dd>`/sys/audit/<path>`</dd>
<dt>Parameters</dt> <dt>Parameters</dt>
<dd>None <dd>None