github.com/pluralsh/plural-cli@v0.9.5/cmd/plural/cd_credentials.go (about) 1 package plural 2 3 import ( 4 "fmt" 5 6 "github.com/pkg/errors" 7 gqlclient "github.com/pluralsh/console-client-go" 8 "github.com/pluralsh/plural-cli/pkg/utils" 9 "github.com/urfave/cli" 10 ) 11 12 func (p *Plural) cdCredentials() cli.Command { 13 return cli.Command{ 14 Name: "credentials", 15 Subcommands: p.cdCredentialsCommands(), 16 Usage: "manage Provider credentials", 17 } 18 } 19 20 func (p *Plural) cdCredentialsCommands() []cli.Command { 21 return []cli.Command{ 22 { 23 Name: "create", 24 ArgsUsage: "PROVIDER_NAME", 25 Action: latestVersion(requireArgs(p.handleCreateProviderCredentials, []string{"PROVIDER_NAME"})), 26 Usage: "create provider credentials", 27 }, 28 { 29 Name: "delete", 30 ArgsUsage: "ID", 31 Action: latestVersion(requireArgs(p.handleDeleteProviderCredentials, []string{"ID"})), 32 Usage: "delete provider credentials", 33 }, 34 } 35 } 36 37 func (p *Plural) handleDeleteProviderCredentials(c *cli.Context) error { 38 id := c.Args().Get(0) 39 if err := p.InitConsoleClient(consoleToken, consoleURL); err != nil { 40 return err 41 } 42 if _, err := p.ConsoleClient.DeleteProviderCredentials(id); err != nil { 43 return err 44 } 45 utils.Success("Provider credential %s has been deleted successfully", id) 46 return nil 47 } 48 49 func (p *Plural) handleCreateProviderCredentials(c *cli.Context) error { 50 providerName := c.Args().Get(0) 51 if err := p.InitConsoleClient(consoleToken, consoleURL); err != nil { 52 return err 53 } 54 55 attr, err := p.credentialsPreflights() 56 if err != nil { 57 return err 58 } 59 60 resp, err := p.ConsoleClient.CreateProviderCredentials(providerName, *attr) 61 if err != nil { 62 errList := errors.New("CreateProviderCredentials") 63 errList = errors.Wrap(errList, err.Error()) 64 if *attr.Kind == kindSecret { 65 if err := p.SecretDelete(*attr.Namespace, attr.Name); err != nil { 66 errList = errors.Wrap(errList, err.Error()) 67 } 68 } 69 return errList 70 } 71 if resp == nil { 72 return fmt.Errorf("the response from CreateProviderCredentials is empty") 73 } 74 75 headers := []string{"Id", "Name", "Namespace"} 76 return utils.PrintTable([]*gqlclient.ProviderCredentialFragment{resp.CreateProviderCredential}, headers, func(sd *gqlclient.ProviderCredentialFragment) ([]string, error) { 77 return []string{sd.ID, sd.Name, sd.Namespace}, nil 78 }) 79 }