Skip to content

Commit

Permalink
VAULT-12144: add openapi responses for /sys/rotate endpoints (#18624)
Browse files Browse the repository at this point in the history
* responses for rotate endpoints

Signed-off-by: Daniel Huckins <[email protected]>

* added changelog

* add test for rotate config

Signed-off-by: Daniel Huckins <[email protected]>

* update to use newer function

Signed-off-by: Daniel Huckins <[email protected]>

* use new func

Signed-off-by: Daniel Huckins <[email protected]>

---------

Signed-off-by: Daniel Huckins <[email protected]>
  • Loading branch information
dhuckins authored Mar 28, 2023
1 parent b4756f9 commit 1498560
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 3 deletions.
3 changes: 3 additions & 0 deletions changelog/18624.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:improvement
openapi: add openapi response definitions to /sys/rotate endpoints
```
37 changes: 34 additions & 3 deletions vault/logical_system_paths.go
Original file line number Diff line number Diff line change
Expand Up @@ -1482,9 +1482,33 @@ func (b *SystemBackend) sealPaths() []*framework.Path {
Operations: map[logical.Operation]framework.OperationHandler{
logical.ReadOperation: &framework.PathOperation{
Callback: b.handleKeyRotationConfigRead,
Responses: map[int][]framework.Response{
http.StatusOK: {{
Description: "OK",
Fields: map[string]*framework.FieldSchema{
"max_operations": {
Type: framework.TypeInt64,
Required: true,
},
"enabled": {
Type: framework.TypeBool,
Required: true,
},
"interval": {
Type: framework.TypeDurationSecond,
Required: true,
},
},
}},
},
},
logical.UpdateOperation: &framework.PathOperation{
Callback: b.handleKeyRotationConfigUpdate,
Callback: b.handleKeyRotationConfigUpdate,
Responses: map[int][]framework.Response{
http.StatusNoContent: {{
Description: "OK",
}},
},
ForwardPerformanceSecondary: true,
ForwardPerformanceStandby: true,
},
Expand All @@ -1497,8 +1521,15 @@ func (b *SystemBackend) sealPaths() []*framework.Path {
{
Pattern: "rotate$",

Callbacks: map[logical.Operation]framework.OperationFunc{
logical.UpdateOperation: b.handleRotate,
Operations: map[logical.Operation]framework.OperationHandler{
logical.UpdateOperation: &framework.PathOperation{
Callback: b.handleRotate,
Responses: map[int][]framework.Response{
http.StatusNoContent: {{
Description: "OK",
}},
},
},
},

HelpSynopsis: strings.TrimSpace(sysHelp["rotate"][0]),
Expand Down
18 changes: 18 additions & 0 deletions vault/logical_system_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3146,6 +3146,13 @@ func TestSystemBackend_rotateConfig(t *testing.T) {
t.Fatalf("err: %v", err)
}

schema.ValidateResponse(
t,
schema.GetResponseSchema(t, b.(*SystemBackend).Route(req.Path), req.Operation),
resp,
true,
)

exp := map[string]interface{}{
"max_operations": absoluteOperationMaximum,
"interval": 0,
Expand All @@ -3164,11 +3171,22 @@ func TestSystemBackend_rotateConfig(t *testing.T) {
if err != nil {
t.Fatalf("err: %v", err)
}
schema.ValidateResponse(
t,
schema.GetResponseSchema(t, b.(*SystemBackend).Route(req2.Path), req2.Operation),
resp,
true,
)

resp, err = b.HandleRequest(namespace.RootContext(nil), req)
if err != nil {
t.Fatalf("err: %v", err)
}
schema.ValidateResponse(
t,
schema.GetResponseSchema(t, b.(*SystemBackend).Route(req.Path), req.Operation), resp,
true,
)

exp = map[string]interface{}{
"max_operations": int64(3221225472),
Expand Down

0 comments on commit 1498560

Please sign in to comment.