From 95021fe992bfe27bd66aa2ae26660edfc2cc29b3 Mon Sep 17 00:00:00 2001 From: Predrag Janosevic Date: Thu, 4 Jul 2024 10:23:56 +0000 Subject: [PATCH] Update exo x (#616) Updates `exo x` commands to include grafana-user-password. --- CHANGELOG.md | 1 + cmd/internal/x/x.gen.go | 164 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 165 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 44909137..d3b7efa7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - go.mk: lint with staticcheck #606 - Update deprecated goreleaser directives #607 - sks nodepool: show instance family #615 +- Update exo x #616 ### Bug Fixes diff --git a/cmd/internal/x/x.gen.go b/cmd/internal/x/x.gen.go index 68bfd4e3..dd0ac815 100644 --- a/cmd/internal/x/x.gen.go +++ b/cmd/internal/x/x.gen.go @@ -1248,6 +1248,96 @@ func XStartDbaasGrafanaMaintenance(paramName string, params *viper.Viper, body s return resp, decoded, nil } +// XResetDbaasGrafanaUserPassword Reset the credentials of a DBaaS Grafana user +func XResetDbaasGrafanaUserPassword(paramServiceName string, paramUsername string, params *viper.Viper, body string) (*gentleman.Response, map[string]interface{}, error) { + handlerPath := "reset-dbaas-grafana-user-password" + if xSubcommand { + handlerPath = "x " + handlerPath + } + + server := viper.GetString("server") + if server == "" { + server = xServers()[viper.GetInt("server-index")]["url"] + } + + url := server + "/dbaas-grafana/{service-name}/user/{username}/password/reset" + url = strings.Replace(url, "{service-name}", paramServiceName, 1) + url = strings.Replace(url, "{username}", paramUsername, 1) + + req := cli.Client.Put().URL(url) + + if body != "" { + req = req.AddHeader("Content-Type", "application/json").BodyString(body) + } + + cli.HandleBefore(handlerPath, params, req) + + resp, err := req.Do() + if err != nil { + return nil, nil, errors.Wrap(err, "Request failed") + } + + var decoded map[string]interface{} + + if resp.StatusCode < 400 { + if err := cli.UnmarshalResponse(resp, &decoded); err != nil { + return nil, nil, errors.Wrap(err, "Unmarshalling response failed") + } + } else { + return nil, nil, errors.Errorf("HTTP %d: %s", resp.StatusCode, resp.String()) + } + + after := cli.HandleAfter(handlerPath, params, resp, decoded) + if after != nil { + decoded = after.(map[string]interface{}) + } + + return resp, decoded, nil +} + +// XRevealDbaasGrafanaUserPassword Reveal the secrets of a DBaaS Grafana user +func XRevealDbaasGrafanaUserPassword(paramServiceName string, paramUsername string, params *viper.Viper) (*gentleman.Response, map[string]interface{}, error) { + handlerPath := "reveal-dbaas-grafana-user-password" + if xSubcommand { + handlerPath = "x " + handlerPath + } + + server := viper.GetString("server") + if server == "" { + server = xServers()[viper.GetInt("server-index")]["url"] + } + + url := server + "/dbaas-grafana/{service-name}/user/{username}/password/reveal" + url = strings.Replace(url, "{service-name}", paramServiceName, 1) + url = strings.Replace(url, "{username}", paramUsername, 1) + + req := cli.Client.Get().URL(url) + + cli.HandleBefore(handlerPath, params, req) + + resp, err := req.Do() + if err != nil { + return nil, nil, errors.Wrap(err, "Request failed") + } + + var decoded map[string]interface{} + + if resp.StatusCode < 400 { + if err := cli.UnmarshalResponse(resp, &decoded); err != nil { + return nil, nil, errors.Wrap(err, "Unmarshalling response failed") + } + } else { + return nil, nil, errors.Errorf("HTTP %d: %s", resp.StatusCode, resp.String()) + } + + after := cli.HandleAfter(handlerPath, params, resp, decoded) + if after != nil { + decoded = after.(map[string]interface{}) + } + + return resp, decoded, nil +} + // XCreateDbaasIntegration Create a new DBaaS integration between two services func XCreateDbaasIntegration(params *viper.Viper, body string) (*gentleman.Response, map[string]interface{}, error) { handlerPath := "create-dbaas-integration" @@ -12084,6 +12174,80 @@ func xRegister(subcommand bool) { }() + func() { + params := viper.New() + + var examples string + + cmd := &cobra.Command{ + Use: "reset-dbaas-grafana-user-password service-name username", + Short: "Reset the credentials of a DBaaS Grafana user", + Long: cli.Markdown("If no password is provided one will be generated automatically.\n## Request Schema (application/json)\n\nproperties:\n password:\n $ref: '#/components/schemas/dbaas-user-password'\ntype: object\n"), + Example: examples, + Args: cobra.MinimumNArgs(2), + Run: func(cmd *cobra.Command, args []string) { + body, err := cli.GetBody("application/json", args[2:]) + if err != nil { + log.Fatal().Err(err).Msg("Unable to get body") + } + + _, decoded, err := XResetDbaasGrafanaUserPassword(args[0], args[1], params, body) + if err != nil { + log.Fatal().Err(err).Msg("Error calling operation") + } + + if err := cli.Formatter.Format(decoded); err != nil { + log.Fatal().Err(err).Msg("Formatting failed") + } + + }, + } + + root.AddCommand(cmd) + + cli.SetCustomFlags(cmd) + + if cmd.Flags().HasFlags() { + params.BindPFlags(cmd.Flags()) + } + + }() + + func() { + params := viper.New() + + var examples string + + cmd := &cobra.Command{ + Use: "reveal-dbaas-grafana-user-password service-name username", + Short: "Reveal the secrets of a DBaaS Grafana user", + Long: cli.Markdown(""), + Example: examples, + Args: cobra.MinimumNArgs(2), + Run: func(cmd *cobra.Command, args []string) { + + _, decoded, err := XRevealDbaasGrafanaUserPassword(args[0], args[1], params) + if err != nil { + log.Fatal().Err(err).Msg("Error calling operation") + } + + if err := cli.Formatter.Format(decoded); err != nil { + log.Fatal().Err(err).Msg("Formatting failed") + } + + }, + } + + root.AddCommand(cmd) + + cli.SetCustomFlags(cmd) + + if cmd.Flags().HasFlags() { + params.BindPFlags(cmd.Flags()) + } + + }() + func() { params := viper.New()