package tenant import ( "os" "forge.cadoles.com/Cadoles/emissary/internal/command/client/apierr" clientFlag "forge.cadoles.com/Cadoles/emissary/internal/command/client/flag" "forge.cadoles.com/Cadoles/emissary/pkg/client" "github.com/pkg/errors" "github.com/urfave/cli/v2" "gitlab.com/wpetit/goweb/cli/format" ) func CreateCommand() *cli.Command { return &cli.Command{ Name: "create", Usage: "Create tenant", Flags: clientFlag.ComposeFlags( &cli.StringFlag{ Name: "tenant-label", Usage: "Set `TENANT_LABEL` to targeted tenant", Value: "", }, ), Action: func(ctx *cli.Context) error { baseFlags := clientFlag.GetBaseFlags(ctx) token, err := clientFlag.GetToken(baseFlags) if err != nil { return errors.WithStack(apierr.Wrap(err)) } tenantLabel := ctx.String("tenant-label") client := client.New(baseFlags.ServerURL, client.WithToken(token)) agent, err := client.CreateTenant(ctx.Context, tenantLabel) if err != nil { return errors.WithStack(apierr.Wrap(err)) } hints := tenantHints(baseFlags.OutputMode) if err := format.Write(baseFlags.Format, os.Stdout, hints, agent); err != nil { return errors.WithStack(err) } return nil }, } }