diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-06-25 12:45:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-25 12:45:53 -0400 |
commit | 0a0ade3cc00c3779bbf68ddd103d3efd10b5c25b (patch) | |
tree | 7a14316df448918e2e54dce77cade7b5cac381b3 /pkg/api | |
parent | b4767817012a3aedaf05dc7a32bd823fcd3776f4 (diff) | |
parent | e7507fe7cf2f35e332f58ae632882f29395e4c59 (diff) | |
download | podman-0a0ade3cc00c3779bbf68ddd103d3efd10b5c25b.tar.gz podman-0a0ade3cc00c3779bbf68ddd103d3efd10b5c25b.tar.bz2 podman-0a0ade3cc00c3779bbf68ddd103d3efd10b5c25b.zip |
Merge pull request #10736 from trusch/feature-use-secret-config
read secret config from config file if no user data.
Diffstat (limited to 'pkg/api')
-rw-r--r-- | pkg/api/handlers/libpod/secrets.go | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/pkg/api/handlers/libpod/secrets.go b/pkg/api/handlers/libpod/secrets.go index e7f4397ea..7086d9e38 100644 --- a/pkg/api/handlers/libpod/secrets.go +++ b/pkg/api/handlers/libpod/secrets.go @@ -1,7 +1,9 @@ package libpod import ( + "encoding/json" "net/http" + "reflect" "github.com/containers/podman/v3/libpod" "github.com/containers/podman/v3/pkg/api/handlers/utils" @@ -16,9 +18,17 @@ func CreateSecret(w http.ResponseWriter, r *http.Request) { runtime = r.Context().Value("runtime").(*libpod.Runtime) decoder = r.Context().Value("decoder").(*schema.Decoder) ) + + decoder.RegisterConverter(map[string]string{}, func(str string) reflect.Value { + res := make(map[string]string) + json.Unmarshal([]byte(str), &res) + return reflect.ValueOf(res) + }) + query := struct { - Name string `schema:"name"` - Driver string `schema:"driver"` + Name string `schema:"name"` + Driver string `schema:"driver"` + DriverOpts map[string]string `schema:"driveropts"` }{ // override any golang type defaults } @@ -28,7 +38,9 @@ func CreateSecret(w http.ResponseWriter, r *http.Request) { errors.Wrapf(err, "failed to parse parameters for %s", r.URL.String())) return } + opts.Driver = query.Driver + opts.DriverOpts = query.DriverOpts ic := abi.ContainerEngine{Libpod: runtime} report, err := ic.SecretCreate(r.Context(), query.Name, r.Body, opts) |