update secret create
This commit is contained in:
parent
25eb200625
commit
42becb0505
|
@ -31,11 +31,13 @@ var cmdProjectGroupSecretCreate = &cobra.Command{
|
|||
func init() {
|
||||
flags := cmdProjectGroupSecretCreate.Flags()
|
||||
|
||||
flags.StringVar(&secretCreateOpts.projectRef, "project", "", "project id or full path")
|
||||
flags.StringVar(&secretCreateOpts.parentRef, "projectgroup", "", "project group id or full path")
|
||||
flags.StringVarP(&secretCreateOpts.name, "name", "n", "", "secret name")
|
||||
flags.StringVar(&secretCreateOpts.data, "data", "", "json map of secret data")
|
||||
|
||||
cmdProjectGroupSecretCreate.MarkFlagRequired("project")
|
||||
cmdProjectGroupSecretCreate.MarkFlagRequired("name")
|
||||
cmdProjectGroupSecretCreate.MarkFlagRequired("data")
|
||||
|
||||
cmdProjectGroupSecret.AddCommand(cmdProjectGroupSecretCreate)
|
||||
}
|
||||
|
|
|
@ -16,9 +16,12 @@ package cmd
|
|||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/sorintlab/agola/internal/services/gateway/api"
|
||||
"github.com/sorintlab/agola/internal/services/types"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sorintlab/agola/internal/services/gateway/api"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
|
@ -35,6 +38,7 @@ var cmdProjectSecretCreate = &cobra.Command{
|
|||
type secretCreateOptions struct {
|
||||
projectRef string
|
||||
name string
|
||||
data string
|
||||
}
|
||||
|
||||
var secretCreateOpts secretCreateOptions
|
||||
|
@ -44,9 +48,11 @@ func init() {
|
|||
|
||||
flags.StringVar(&secretCreateOpts.projectRef, "project", "", "project id or full path)")
|
||||
flags.StringVarP(&secretCreateOpts.name, "name", "n", "", "secret name")
|
||||
flags.StringVar(&secretCreateOpts.data, "data", "", "json map of secret data")
|
||||
|
||||
cmdProjectSecretCreate.MarkFlagRequired("project")
|
||||
cmdProjectSecretCreate.MarkFlagRequired("name")
|
||||
cmdProjectSecretCreate.MarkFlagRequired("data")
|
||||
|
||||
cmdProjectSecret.AddCommand(cmdProjectSecretCreate)
|
||||
}
|
||||
|
@ -54,8 +60,14 @@ func init() {
|
|||
func secretCreate(cmd *cobra.Command, ownertype string, args []string) error {
|
||||
gwclient := api.NewClient(gatewayURL, token)
|
||||
|
||||
var data map[string]string
|
||||
if err := json.Unmarshal([]byte(secretCreateOpts.data), &data); err != nil {
|
||||
log.Fatalf("failed to unmarshall values: %v", err)
|
||||
}
|
||||
req := &api.CreateSecretRequest{
|
||||
Name: secretCreateOpts.name,
|
||||
Type: types.SecretTypeInternal,
|
||||
Data: data,
|
||||
}
|
||||
|
||||
switch ownertype {
|
||||
|
|
|
@ -896,6 +896,15 @@ func (s *CommandHandler) CreateSecret(ctx context.Context, secret *types.Secret)
|
|||
if secret.Name == "" {
|
||||
return nil, util.NewErrBadRequest(errors.Errorf("secret name required"))
|
||||
}
|
||||
if secret.Type != types.SecretTypeInternal {
|
||||
return nil, util.NewErrBadRequest(errors.Errorf("wrong secret type %q", secret.Type))
|
||||
}
|
||||
switch secret.Type {
|
||||
case types.SecretTypeInternal:
|
||||
if len(secret.Data) == 0 {
|
||||
return nil, util.NewErrBadRequest(errors.Errorf("empty secret data"))
|
||||
}
|
||||
}
|
||||
if secret.Parent.Type == "" {
|
||||
return nil, util.NewErrBadRequest(errors.Errorf("secret parent type required"))
|
||||
}
|
||||
|
|
|
@ -128,6 +128,8 @@ func (h *CreateSecretHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
|
|||
|
||||
s := &types.Secret{
|
||||
Name: req.Name,
|
||||
Type: req.Type,
|
||||
Data: req.Data,
|
||||
}
|
||||
|
||||
switch parentType {
|
||||
|
|
Loading…
Reference in New Issue