MCPcopy Create free account
hub / github.com/chainloop-dev/chainloop / newCASBackendAddAWSS3Cmd

Function newCASBackendAddAWSS3Cmd

app/cli/cmd/casbackend_add_s3.go:28–108  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

26)
27
28func newCASBackendAddAWSS3Cmd() *cobra.Command {
29 var bucketName, accessKeyID, secretAccessKey, region, endpoint string
30 cmd := &cobra.Command{
31 Use: "aws-s3",
32 Short: "Register a AWS S3 storage bucket",
33 PreRunE: func(_ *cobra.Command, _ []string) error {
34 return parseMaxBytesOption()
35 },
36 RunE: func(cmd *cobra.Command, args []string) error {
37 isDefault, err := cmd.Flags().GetBool("default")
38 cobra.CheckErr(err)
39
40 isFallback, err := cmd.Flags().GetBool("fallback")
41 cobra.CheckErr(err)
42
43 name, err := cmd.Flags().GetString("name")
44 cobra.CheckErr(err)
45
46 description, err := cmd.Flags().GetString("description")
47 cobra.CheckErr(err)
48
49 if isDefault {
50 if confirmed, err := confirmDefaultCASBackendOverride(ActionOpts, ""); err != nil {
51 return err
52 } else if !confirmed {
53 log.Info("Aborting...")
54 return nil
55 }
56 }
57
58 location := bucketName
59 // If there is a custom endpoint we want to store it as part of the fqdn location
60 if endpoint != "" {
61 location = fmt.Sprintf("%s/%s", endpoint, bucketName)
62 }
63
64 opts := &action.NewCASBackendAddOpts{
65 Name: name,
66 Location: location,
67 Provider: s3.ProviderID,
68 Description: description,
69 Credentials: map[string]any{
70 "accessKeyID": accessKeyID,
71 "secretAccessKey": secretAccessKey,
72 "region": region,
73 },
74 Default: isDefault,
75 Fallback: isFallback,
76 MaxBytes: parsedMaxBytes,
77 }
78
79 res, err := action.NewCASBackendAdd(ActionOpts).Run(opts)
80 if err != nil {
81 return err
82 } else if res == nil {
83 return nil
84 }
85

Callers 1

newCASBackendAddCmdFunction · 0.85

Calls 6

NewCASBackendAddFunction · 0.92
EncodeOutputFunction · 0.92
parseMaxBytesOptionFunction · 0.85
InfoMethod · 0.65
RunMethod · 0.45

Tested by

no test coverage detected