VAULT-12144: add openapi responses for /sys/rotate endpoints (#18624)

* responses for rotate endpoints

Signed-off-by: Daniel Huckins <dhuckins@users.noreply.github.com>

* added changelog

* add test for rotate config

Signed-off-by: Daniel Huckins <dhuckins@users.noreply.github.com>

* update to use newer function

Signed-off-by: Daniel Huckins <dhuckins@users.noreply.github.com>

* use new func

Signed-off-by: Daniel Huckins <dhuckins@users.noreply.github.com>

---------

Signed-off-by: Daniel Huckins <dhuckins@users.noreply.github.com>
This commit is contained in:
Daniel Huckins 2023-03-28 15:40:48 -04:00 committed by GitHub
parent 4b52cea28c
commit 243c86b2c5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 55 additions and 3 deletions

3
changelog/18624.txt Normal file
View File

@ -0,0 +1,3 @@
```release-note:improvement
openapi: add openapi response definitions to /sys/rotate endpoints
```

View File

@ -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,
Responses: map[int][]framework.Response{
http.StatusNoContent: {{
Description: "OK",
}},
},
ForwardPerformanceSecondary: true,
ForwardPerformanceStandby: true,
},
@ -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]),

View File

@ -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,
@ -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),