From 4529f9240b861d0bb697821a10f4d4fc56742460 Mon Sep 17 00:00:00 2001 From: rawdaGastan Date: Wed, 16 Apr 2025 13:40:47 +0200 Subject: [PATCH] allow to diable sentry in client-cli-tfrobot --- grid-cli/cmd/add_worker_kubernetes.go | 8 ++++++++ grid-cli/cmd/cancel.go | 16 +++++++++++++++- grid-cli/cmd/cancel_contracts.go | 16 +++++++++++++++- grid-cli/cmd/delete_worker_kubernetes.go | 17 ++++++++++++++++- grid-cli/cmd/deploy_gateway_fqdn.go | 7 +++++++ grid-cli/cmd/deploy_gateway_name.go | 7 +++++++ grid-cli/cmd/deploy_kubernetes.go | 7 +++++++ grid-cli/cmd/deploy_vm.go | 7 +++++++ grid-cli/cmd/deploy_zdb.go | 7 +++++++ grid-cli/cmd/get_contract.go | 7 +++++++ grid-cli/cmd/get_contracts.go | 7 +++++++ grid-cli/cmd/get_gateway_fqdn.go | 7 +++++++ grid-cli/cmd/get_gateway_name.go | 7 +++++++ grid-cli/cmd/get_kubernetes.go | 7 +++++++ grid-cli/cmd/get_vm.go | 7 +++++++ grid-cli/cmd/get_zdb.go | 7 +++++++ grid-cli/cmd/root.go | 1 + grid-client/deployer/sentry.go | 12 +++++++----- grid-client/deployer/tf_plugin_client.go | 18 ++++++++++++++---- tfrobot/cmd/cancel.go | 7 ++++++- tfrobot/cmd/deploy.go | 7 ++++++- tfrobot/cmd/load.go | 6 +++++- tfrobot/cmd/setup.go | 5 ++++- 23 files changed, 181 insertions(+), 16 deletions(-) diff --git a/grid-cli/cmd/add_worker_kubernetes.go b/grid-cli/cmd/add_worker_kubernetes.go index b3abe1e4b..eed7aa001 100644 --- a/grid-cli/cmd/add_worker_kubernetes.go +++ b/grid-cli/cmd/add_worker_kubernetes.go @@ -66,6 +66,10 @@ var addWorkerCmd = &cobra.Command{ if err != nil { return err } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + return err + } cfg, err := config.GetUserConfig() if err != nil { @@ -81,6 +85,10 @@ var addWorkerCmd = &cobra.Command{ opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } + t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() diff --git a/grid-cli/cmd/cancel.go b/grid-cli/cmd/cancel.go index 1382865d4..a7b7e2e5c 100644 --- a/grid-cli/cmd/cancel.go +++ b/grid-cli/cmd/cancel.go @@ -21,7 +21,21 @@ var cancelCmd = &cobra.Command{ log.Fatal().Err(err).Send() } - t, err := deployer.NewTFPluginClient(cfg.Mnemonics, deployer.WithNetwork(cfg.Network), deployer.WithRMBTimeout(100)) + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + log.Fatal().Err(err).Send() + } + + opts := []deployer.PluginOpt{ + deployer.WithNetwork(cfg.Network), + deployer.WithRMBTimeout(100), + } + + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } + + t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() } diff --git a/grid-cli/cmd/cancel_contracts.go b/grid-cli/cmd/cancel_contracts.go index 6942eebec..e77c4a0f0 100644 --- a/grid-cli/cmd/cancel_contracts.go +++ b/grid-cli/cmd/cancel_contracts.go @@ -25,12 +25,26 @@ var cancelContracts = &cobra.Command{ return } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + log.Fatal().Err(err).Send() + } + cfg, err := config.GetUserConfig() if err != nil { log.Fatal().Err(err).Send() } - t, err := deployer.NewTFPluginClient(cfg.Mnemonics, deployer.WithNetwork(cfg.Network), deployer.WithRMBTimeout(100)) + opts := []deployer.PluginOpt{ + deployer.WithNetwork(cfg.Network), + deployer.WithRMBTimeout(100), + } + + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } + + t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() } diff --git a/grid-cli/cmd/delete_worker_kubernetes.go b/grid-cli/cmd/delete_worker_kubernetes.go index 6e7d7b66d..80ee9b048 100644 --- a/grid-cli/cmd/delete_worker_kubernetes.go +++ b/grid-cli/cmd/delete_worker_kubernetes.go @@ -24,12 +24,27 @@ var deleteWorkerCmd = &cobra.Command{ if err != nil { return err } + + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + log.Fatal().Err(err).Send() + } + cfg, err := config.GetUserConfig() if err != nil { log.Fatal().Err(err).Send() } - t, err := deployer.NewTFPluginClient(cfg.Mnemonics, deployer.WithNetwork(cfg.Network), deployer.WithRMBTimeout(100)) + opts := []deployer.PluginOpt{ + deployer.WithNetwork(cfg.Network), + deployer.WithRMBTimeout(100), + } + + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } + + t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() } diff --git a/grid-cli/cmd/deploy_gateway_fqdn.go b/grid-cli/cmd/deploy_gateway_fqdn.go index 6a9d36c9c..be8891204 100644 --- a/grid-cli/cmd/deploy_gateway_fqdn.go +++ b/grid-cli/cmd/deploy_gateway_fqdn.go @@ -27,6 +27,10 @@ var deployGatewayFQDNCmd = &cobra.Command{ if err != nil { return err } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + return err + } gateway := workloads.GatewayFQDNProxy{ Name: name, @@ -50,6 +54,9 @@ var deployGatewayFQDNCmd = &cobra.Command{ opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() diff --git a/grid-cli/cmd/deploy_gateway_name.go b/grid-cli/cmd/deploy_gateway_name.go index 95a602bfd..d2cb27d36 100644 --- a/grid-cli/cmd/deploy_gateway_name.go +++ b/grid-cli/cmd/deploy_gateway_name.go @@ -34,6 +34,10 @@ var deployGatewayNameCmd = &cobra.Command{ if err != nil { return err } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + return err + } cfg, err := config.GetUserConfig() if err != nil { @@ -49,6 +53,9 @@ var deployGatewayNameCmd = &cobra.Command{ opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() diff --git a/grid-cli/cmd/deploy_kubernetes.go b/grid-cli/cmd/deploy_kubernetes.go index fa94674dd..14f56f410 100644 --- a/grid-cli/cmd/deploy_kubernetes.go +++ b/grid-cli/cmd/deploy_kubernetes.go @@ -71,6 +71,10 @@ var deployKubernetesCmd = &cobra.Command{ if err != nil { return err } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + return err + } var seed []byte if mycelium { @@ -172,6 +176,9 @@ var deployKubernetesCmd = &cobra.Command{ opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() diff --git a/grid-cli/cmd/deploy_vm.go b/grid-cli/cmd/deploy_vm.go index 561cf4f41..f78aae394 100644 --- a/grid-cli/cmd/deploy_vm.go +++ b/grid-cli/cmd/deploy_vm.go @@ -118,6 +118,10 @@ var deployVMCmd = &cobra.Command{ if err != nil { return err } + disableSentry, err := cmd.Parent().Flags().GetBool("disable-sentry") + if err != nil { + return err + } var seed []byte if mycelium { @@ -140,6 +144,9 @@ var deployVMCmd = &cobra.Command{ opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() diff --git a/grid-cli/cmd/deploy_zdb.go b/grid-cli/cmd/deploy_zdb.go index c6e4a2477..bbd1d5999 100644 --- a/grid-cli/cmd/deploy_zdb.go +++ b/grid-cli/cmd/deploy_zdb.go @@ -38,6 +38,10 @@ var deployZDBCmd = &cobra.Command{ if err != nil { return err } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + return err + } if len(names) > 0 && len(names) != count { return fmt.Errorf("please provide '%d' names not '%d'", count, len(names)) @@ -119,6 +123,9 @@ var deployZDBCmd = &cobra.Command{ opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() diff --git a/grid-cli/cmd/get_contract.go b/grid-cli/cmd/get_contract.go index 7a5725c4b..03c04cb1d 100644 --- a/grid-cli/cmd/get_contract.go +++ b/grid-cli/cmd/get_contract.go @@ -21,6 +21,10 @@ var getContractCmd = &cobra.Command{ if err != nil { log.Fatal().Err(err).Send() } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + log.Fatal().Err(err).Send() + } cfg, err := config.GetUserConfig() if err != nil { @@ -36,6 +40,9 @@ var getContractCmd = &cobra.Command{ opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() diff --git a/grid-cli/cmd/get_contracts.go b/grid-cli/cmd/get_contracts.go index c5cffe76c..91daf8fed 100644 --- a/grid-cli/cmd/get_contracts.go +++ b/grid-cli/cmd/get_contracts.go @@ -22,6 +22,10 @@ var getContractsCmd = &cobra.Command{ if err != nil { log.Fatal().Err(err).Send() } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + log.Fatal().Err(err).Send() + } cfg, err := config.GetUserConfig() if err != nil { @@ -37,6 +41,9 @@ var getContractsCmd = &cobra.Command{ opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() diff --git a/grid-cli/cmd/get_gateway_fqdn.go b/grid-cli/cmd/get_gateway_fqdn.go index d0c63ae8d..b9c3cf67c 100644 --- a/grid-cli/cmd/get_gateway_fqdn.go +++ b/grid-cli/cmd/get_gateway_fqdn.go @@ -20,6 +20,10 @@ var getGatewayFQDNCmd = &cobra.Command{ if err != nil { log.Fatal().Err(err).Send() } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + log.Fatal().Err(err).Send() + } cfg, err := config.GetUserConfig() if err != nil { @@ -35,6 +39,9 @@ var getGatewayFQDNCmd = &cobra.Command{ opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() diff --git a/grid-cli/cmd/get_gateway_name.go b/grid-cli/cmd/get_gateway_name.go index 871e6319c..d0a61bb45 100644 --- a/grid-cli/cmd/get_gateway_name.go +++ b/grid-cli/cmd/get_gateway_name.go @@ -20,6 +20,10 @@ var getGatewayNameCmd = &cobra.Command{ if err != nil { log.Fatal().Err(err).Send() } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + log.Fatal().Err(err).Send() + } cfg, err := config.GetUserConfig() if err != nil { @@ -35,6 +39,9 @@ var getGatewayNameCmd = &cobra.Command{ opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() diff --git a/grid-cli/cmd/get_kubernetes.go b/grid-cli/cmd/get_kubernetes.go index 8d69647bd..1daf48775 100644 --- a/grid-cli/cmd/get_kubernetes.go +++ b/grid-cli/cmd/get_kubernetes.go @@ -21,6 +21,10 @@ var getKubernetesCmd = &cobra.Command{ if err != nil { log.Fatal().Err(err).Send() } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + log.Fatal().Err(err).Send() + } cfg, err := config.GetUserConfig() if err != nil { @@ -36,6 +40,9 @@ var getKubernetesCmd = &cobra.Command{ opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() diff --git a/grid-cli/cmd/get_vm.go b/grid-cli/cmd/get_vm.go index f1d31e666..b97db0e82 100644 --- a/grid-cli/cmd/get_vm.go +++ b/grid-cli/cmd/get_vm.go @@ -21,6 +21,10 @@ var getVMCmd = &cobra.Command{ if err != nil { log.Fatal().Err(err).Send() } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + log.Fatal().Err(err).Send() + } cfg, err := config.GetUserConfig() if err != nil { log.Fatal().Err(err).Send() @@ -35,6 +39,9 @@ var getVMCmd = &cobra.Command{ opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() diff --git a/grid-cli/cmd/get_zdb.go b/grid-cli/cmd/get_zdb.go index 89f91e69e..461d7f5a3 100644 --- a/grid-cli/cmd/get_zdb.go +++ b/grid-cli/cmd/get_zdb.go @@ -21,6 +21,10 @@ var getZDBCmd = &cobra.Command{ if err != nil { log.Fatal().Err(err).Send() } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + log.Fatal().Err(err).Send() + } cfg, err := config.GetUserConfig() if err != nil { @@ -36,6 +40,9 @@ var getZDBCmd = &cobra.Command{ opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } t, err := deployer.NewTFPluginClient(cfg.Mnemonics, opts...) if err != nil { log.Fatal().Err(err).Send() diff --git a/grid-cli/cmd/root.go b/grid-cli/cmd/root.go index 7b6cb6210..a631501ed 100644 --- a/grid-cli/cmd/root.go +++ b/grid-cli/cmd/root.go @@ -27,4 +27,5 @@ func Execute() { func init() { zerolog.SetGlobalLevel(zerolog.InfoLevel) log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr}) + rootCmd.PersistentFlags().Bool("disable-sentry", false, "disable sentry") } diff --git a/grid-client/deployer/sentry.go b/grid-client/deployer/sentry.go index a18f4e58c..643f704ca 100644 --- a/grid-client/deployer/sentry.go +++ b/grid-client/deployer/sentry.go @@ -28,12 +28,14 @@ func initSentry(twinID uint32, network string) (gridSentry, error) { } func (s *gridSentry) error(err error) error { - sentry.WithScope(func(scope *sentry.Scope) { - scope.SetContext("user", map[string]interface{}{ - "twin": s.twinID, + if s.twinID != 0 { + sentry.WithScope(func(scope *sentry.Scope) { + scope.SetContext("user", map[string]interface{}{ + "twin": s.twinID, + }) }) - }) - sentry.CaptureException(err) + sentry.CaptureException(err) + } return err } diff --git a/grid-client/deployer/tf_plugin_client.go b/grid-client/deployer/tf_plugin_client.go index ec7d86a23..867403ed1 100644 --- a/grid-client/deployer/tf_plugin_client.go +++ b/grid-client/deployer/tf_plugin_client.go @@ -81,6 +81,7 @@ type pluginCfg struct { showLogs bool noColorLogs bool rmbInMemCache bool + disableSentry bool } type PluginOpt func(*pluginCfg) @@ -133,6 +134,12 @@ func WithNoColorLogs() PluginOpt { } } +func WithDisableSentry() PluginOpt { + return func(p *pluginCfg) { + p.disableSentry = true + } +} + func WithTwinCache() PluginOpt { return func(p *pluginCfg) { p.rmbInMemCache = false @@ -157,6 +164,7 @@ func parsePluginOpts(opts ...PluginOpt) (pluginCfg, error) { showLogs: false, noColorLogs: false, rmbInMemCache: true, + disableSentry: false, } for _, o := range opts { @@ -299,11 +307,13 @@ func NewTFPluginClient( return TFPluginClient{}, errors.Wrapf(err, "only verified users can deploy, please visit https://dashboard.grid.tf/ to verify your account") } - gridSentry, err := initSentry(twinID, cfg.network) - if err != nil { - return TFPluginClient{}, errors.Wrap(err, "sentry init failed") + if !cfg.disableSentry { + gridSentry, err := initSentry(twinID, cfg.network) + if err != nil { + return TFPluginClient{}, errors.Wrap(err, "sentry init failed") + } + tfPluginClient.sentry = gridSentry } - tfPluginClient.sentry = gridSentry tfPluginClient.useRmbProxy = true // if tfPluginClient.useRmbProxy diff --git a/tfrobot/cmd/cancel.go b/tfrobot/cmd/cancel.go index ad5ca8cd6..3f1af47f7 100644 --- a/tfrobot/cmd/cancel.go +++ b/tfrobot/cmd/cancel.go @@ -29,13 +29,17 @@ var cancelCmd = &cobra.Command{ if err != nil { return err } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + return err + } cfg, err := readConfig(configPath) if err != nil { return err } - tfPluginClient, err := setup(cfg, debug, noColor) + tfPluginClient, err := setup(cfg, debug, noColor, disableSentry) if err != nil { return err } @@ -55,4 +59,5 @@ func init() { cancelCmd.Flags().BoolP("debug", "d", false, "allow debug logs") cancelCmd.Flags().StringP("config", "c", "", "path to config file") cancelCmd.Flags().Bool("no-color", false, "disable output styling") + cancelCmd.Flags().Bool("disable-sentry", false, "disable sentry") } diff --git a/tfrobot/cmd/deploy.go b/tfrobot/cmd/deploy.go index aa4245747..fda6197cd 100644 --- a/tfrobot/cmd/deploy.go +++ b/tfrobot/cmd/deploy.go @@ -34,6 +34,10 @@ var deployCmd = &cobra.Command{ if err != nil { return err } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + return err + } if err = checkOutputFile(outputPath); err != nil { return err @@ -44,7 +48,7 @@ var deployCmd = &cobra.Command{ return err } - tfPluginClient, err := setup(cfg, debug, noColor) + tfPluginClient, err := setup(cfg, debug, noColor, disableSentry) if err != nil { return err } @@ -68,4 +72,5 @@ func init() { deployCmd.Flags().StringP("config", "c", "", "path to config file") deployCmd.Flags().StringP("output", "o", "output.yaml", "path to output file") deployCmd.Flags().Bool("no-color", false, "disable output styling") + deployCmd.Flags().Bool("disable-sentry", false, "disable sentry") } diff --git a/tfrobot/cmd/load.go b/tfrobot/cmd/load.go index 641a72046..541d75b86 100644 --- a/tfrobot/cmd/load.go +++ b/tfrobot/cmd/load.go @@ -34,6 +34,10 @@ var loadCmd = &cobra.Command{ if err != nil { return err } + disableSentry, err := cmd.Flags().GetBool("disable-sentry") + if err != nil { + return err + } if err = checkOutputFile(outputPath); err != nil { return err @@ -44,7 +48,7 @@ var loadCmd = &cobra.Command{ return err } - tfPluginClient, err := setup(cfg, debug, noColor) + tfPluginClient, err := setup(cfg, debug, noColor, disableSentry) if err != nil { return err } diff --git a/tfrobot/cmd/setup.go b/tfrobot/cmd/setup.go index 324fc3d95..9edd8a168 100644 --- a/tfrobot/cmd/setup.go +++ b/tfrobot/cmd/setup.go @@ -18,7 +18,7 @@ const jsonExt = ".json" var allowedExt = []string{".yml", ".yaml", jsonExt} -func setup(conf tfrobot.Config, debug, noColor bool) (deployer.TFPluginClient, error) { +func setup(conf tfrobot.Config, debug, noColor, disableSentry bool) (deployer.TFPluginClient, error) { network := conf.Network log.Debug().Str("network", network).Send() @@ -37,6 +37,9 @@ func setup(conf tfrobot.Config, debug, noColor bool) (deployer.TFPluginClient, e if noColor { opts = append(opts, deployer.WithNoColorLogs()) } + if disableSentry { + opts = append(opts, deployer.WithDisableSentry()) + } return deployer.NewTFPluginClient(mnemonic, opts...) }