From c2e09688db0b5a7621587cd6b1ea21d151ed85fc Mon Sep 17 00:00:00 2001 From: Abhishek Pandey Date: Tue, 12 Sep 2023 22:22:58 +0530 Subject: [PATCH] stashed changes --- src/cli/config/config.go | 2 ++ src/cli/config/storage.go | 20 ++++++++++---------- src/cli/flags/flags.go | 2 +- src/cli/flags/repo.go | 9 +++++++++ src/cli/repo/s3.go | 24 +++++++++++++++++++++++- 5 files changed, 45 insertions(+), 12 deletions(-) diff --git a/src/cli/config/config.go b/src/cli/config/config.go index a3f376164..d66d75aeb 100644 --- a/src/cli/config/config.go +++ b/src/cli/config/config.go @@ -291,6 +291,8 @@ func getStorageAndAccountWithViper( err error ) + //overrides := repo.S3Overrides(pfs) + overrides := make(map[string]string) readConfigFromViper := readFromFile // possibly read the prior config from a .corso file diff --git a/src/cli/config/storage.go b/src/cli/config/storage.go index 52d1f99ad..811f2d979 100644 --- a/src/cli/config/storage.go +++ b/src/cli/config/storage.go @@ -52,7 +52,7 @@ func s3Overrides(in map[string]string) map[string]string { } } -// Make it local +// Moved from repo/s3.go pkg func S3Overrides(pfs *pflag.FlagSet) map[string]string { fs := flags.GetPopulatedFlags(pfs) return PopulateS3Flags(fs) @@ -76,23 +76,23 @@ func PopulateS3Flags(flagset flags.PopulatedFlags) map[string]string { } if _, ok := flagset[flags.BucketFN]; ok { - s3Overrides[storage.Bucket] = flags.BucketFV + s3Overrides[storage.Bucket] = bucket } - if _, ok := flagset[flags.PrefixFN]; ok { - s3Overrides[storage.Prefix] = flags.PrefixFV + if _, ok := flagset[prefixFN]; ok { + s3Overrides[storage.Prefix] = prefix } - if _, ok := flagset[flags.DoNotUseTLSFN]; ok { - s3Overrides[storage.DoNotUseTLS] = strconv.FormatBool(flags.DoNotUseTLSFV) + if _, ok := flagset[doNotUseTLSFN]; ok { + s3Overrides[storage.DoNotUseTLS] = strconv.FormatBool(doNotUseTLS) } - if _, ok := flagset[flags.DoNotVerifyTLSFN]; ok { - s3Overrides[storage.DoNotVerifyTLS] = strconv.FormatBool(flags.DoNotVerifyTLSFV) + if _, ok := flagset[doNotVerifyTLSFN]; ok { + s3Overrides[storage.DoNotVerifyTLS] = strconv.FormatBool(doNotVerifyTLS) } - if _, ok := flagset[flags.EndpointFN]; ok { - s3Overrides[storage.Endpoint] = flags.EndpointFV + if _, ok := flagset[endpointFN]; ok { + s3Overrides[storage.Endpoint] = endpoint } return s3Overrides diff --git a/src/cli/flags/flags.go b/src/cli/flags/flags.go index 70b9e40c3..1721e627f 100644 --- a/src/cli/flags/flags.go +++ b/src/cli/flags/flags.go @@ -24,7 +24,7 @@ func (fs PopulatedFlags) populate(pf *pflag.Flag) { func GetPopulatedFlags(pfs *pflag.FlagSet) PopulatedFlags { pop := PopulatedFlags{} - // fs := cmd.Flags() + //fs := cmd.Flags() if pfs == nil { return pop } diff --git a/src/cli/flags/repo.go b/src/cli/flags/repo.go index 3ec1605ad..9cad6b2c4 100644 --- a/src/cli/flags/repo.go +++ b/src/cli/flags/repo.go @@ -14,6 +14,15 @@ const ( CorsoPassphraseFN = "passphrase" ) +// s3 bucket flags +const ( + BucketFN = "bucket" + EndpointFN = "endpoint" + PrefixFN = "prefix" + DoNotUseTLSFN = "disable-tls" + DoNotVerifyTLSFN = "disable-tls-verification" +) + var ( BackupIDFV string AWSAccessKeyFV string diff --git a/src/cli/repo/s3.go b/src/cli/repo/s3.go index e264d6b76..f642c3086 100644 --- a/src/cli/repo/s3.go +++ b/src/cli/repo/s3.go @@ -15,6 +15,16 @@ import ( "github.com/alcionai/corso/src/pkg/repository" ) +// s3 bucket info from flags +var ( + succeedIfExists bool + bucket string + endpoint string + prefix string + doNotUseTLS bool + doNotVerifyTLS bool +) + // called by repo.go to map subcommands to provider-specific handling. func addS3Commands(cmd *cobra.Command) *cobra.Command { var c *cobra.Command @@ -35,7 +45,19 @@ func addS3Commands(cmd *cobra.Command) *cobra.Command { flags.AddAWSCredsFlags(c) flags.AddAzureCredsFlags(c) flags.AddCorsoPassphaseFlags(c) - flags.AddS3BucketFlags(c) + + // Flags addition ordering should follow the order we want them to appear in help and docs: + // More generic and more frequently used flags take precedence. + fs.StringVar(&bucket, flags.BucketFN, "", "Name of S3 bucket for repo. (required)") + fs.StringVar(&prefix, flags.PrefixFN, "", "Repo prefix within bucket.") + fs.StringVar(&endpoint, flags.EndpointFN, "", "S3 service endpoint.") + fs.BoolVar(&doNotUseTLS, flags.DoNotUseTLSFN, false, "Disable TLS (HTTPS)") + fs.BoolVar(&doNotVerifyTLS, flags.DoNotVerifyTLSFN, false, "Disable TLS (HTTPS) certificate verification.") + + // In general, we don't want to expose this flag to users and have them mistake it + // for a broad-scale idempotency solution. We can un-hide it later the need arises. + fs.BoolVar(&succeedIfExists, "succeed-if-exists", false, "Exit with success if the repo has already been initialized.") + cobra.CheckErr(fs.MarkHidden("succeed-if-exists")) return c }