mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-11-02 03:27:54 +00:00
List plugin runtimes API always includes a list even if empty (#24864)
This commit is contained in:
3
changelog/24864.txt
Normal file
3
changelog/24864.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
```release-note:change
|
||||
plugins: `/sys/plugins/runtimes/catalog` response will always include a list of "runtimes" in the response, even if empty.
|
||||
```
|
||||
@@ -46,14 +46,14 @@ func TestPluginRuntimeListCommand_Run(t *testing.T) {
|
||||
{
|
||||
"list container on empty plugin runtime catalog",
|
||||
[]string{"-type=container"},
|
||||
"Error listing available plugin runtimes:",
|
||||
2,
|
||||
"OCI Runtime",
|
||||
0,
|
||||
},
|
||||
{
|
||||
"list on empty plugin runtime catalog",
|
||||
nil,
|
||||
"Error listing available plugin runtimes:",
|
||||
2,
|
||||
"OCI Runtime",
|
||||
0,
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -888,7 +888,7 @@ func (b *SystemBackend) handlePluginRuntimeCatalogRead(ctx context.Context, _ *l
|
||||
}
|
||||
|
||||
func (b *SystemBackend) handlePluginRuntimeCatalogList(ctx context.Context, _ *logical.Request, d *framework.FieldData) (*logical.Response, error) {
|
||||
var data []map[string]any
|
||||
runtimes := []map[string]any{}
|
||||
|
||||
var pluginRuntimeTypes []consts.PluginRuntimeType
|
||||
runtimeTypeStr := d.Get("type").(string)
|
||||
@@ -916,7 +916,7 @@ func (b *SystemBackend) handlePluginRuntimeCatalogList(ctx context.Context, _ *l
|
||||
return strings.Compare(configs[i].Name, configs[j].Name) == -1
|
||||
})
|
||||
for _, conf := range configs {
|
||||
data = append(data, map[string]any{
|
||||
runtimes = append(runtimes, map[string]any{
|
||||
"name": conf.Name,
|
||||
"type": conf.Type.String(),
|
||||
"oci_runtime": conf.OCIRuntime,
|
||||
@@ -929,15 +929,11 @@ func (b *SystemBackend) handlePluginRuntimeCatalogList(ctx context.Context, _ *l
|
||||
}
|
||||
}
|
||||
|
||||
resp := &logical.Response{
|
||||
Data: map[string]interface{}{},
|
||||
}
|
||||
|
||||
if len(data) > 0 {
|
||||
resp.Data["runtimes"] = data
|
||||
}
|
||||
|
||||
return resp, nil
|
||||
return &logical.Response{
|
||||
Data: map[string]interface{}{
|
||||
"runtimes": runtimes,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
// handleAuditedHeaderUpdate creates or overwrites a header entry
|
||||
|
||||
@@ -6164,7 +6164,9 @@ func TestSystemBackend_pluginRuntimeCRUD(t *testing.T) {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
|
||||
listExp := map[string]interface{}{}
|
||||
listExp := map[string]any{
|
||||
"runtimes": []map[string]any{},
|
||||
}
|
||||
if !reflect.DeepEqual(resp.Data, listExp) {
|
||||
t.Fatalf("got: %#v expect: %#v", resp.Data, listExp)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user