From 87fd0688fcfe10b05303df270ea9c13328de7a65 Mon Sep 17 00:00:00 2001 From: Philippe Martin Date: Fri, 20 Jan 2023 16:26:58 +0100 Subject: [PATCH 1/2] Set experimental mode in telemetry --- pkg/odo/genericclioptions/runnable.go | 2 ++ pkg/segment/context/context.go | 25 +++++++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/pkg/odo/genericclioptions/runnable.go b/pkg/odo/genericclioptions/runnable.go index 9c4ef3d3a19..740f688ef2a 100644 --- a/pkg/odo/genericclioptions/runnable.go +++ b/pkg/odo/genericclioptions/runnable.go @@ -167,6 +167,8 @@ func GenericRun(o Runnable, cmd *cobra.Command, args []string) error { // set value for telemetry status in context so that we do not need to call IsTelemetryEnabled every time to check its status scontext.SetTelemetryStatus(cmd.Context(), segment.IsTelemetryEnabled(userConfig, envConfig)) + scontext.SetExperimentalMode(cmd.Context(), envConfig.OdoExperimentalMode) + // Send data to telemetry in case of user interrupt captureSignals := []os.Signal{syscall.SIGHUP, syscall.SIGTERM, syscall.SIGQUIT, os.Interrupt} go commonutil.StartSignalWatcher(captureSignals, func(receivedSignal os.Signal) { diff --git a/pkg/segment/context/context.go b/pkg/segment/context/context.go index 9921dfbbc31..46615f2faca 100644 --- a/pkg/segment/context/context.go +++ b/pkg/segment/context/context.go @@ -17,16 +17,17 @@ import ( ) const ( - Caller = "caller" - ComponentType = "componentType" - ClusterType = "clusterType" - TelemetryStatus = "isTelemetryEnabled" - DevfileName = "devfileName" - Language = "language" - ProjectType = "projectType" - NOTFOUND = "not-found" - InteractiveMode = "interactive" - Flags = "flags" + Caller = "caller" + ComponentType = "componentType" + ClusterType = "clusterType" + TelemetryStatus = "isTelemetryEnabled" + DevfileName = "devfileName" + Language = "language" + ProjectType = "projectType" + NOTFOUND = "not-found" + InteractiveMode = "interactive" + ExperimentalMode = "experimental" + Flags = "flags" ) const ( @@ -122,6 +123,10 @@ func SetInteractive(ctx context.Context, interactive bool) { setContextProperty(ctx, InteractiveMode, interactive) } +func SetExperimentalMode(ctx context.Context, value bool) { + setContextProperty(ctx, ExperimentalMode, value) +} + // SetFlags sets flags property for telemetry to record what flags were used func SetFlags(ctx context.Context, flags *pflag.FlagSet) { var changedFlags []string From 5a3820da9eddd6812883ad666b79860c980e4036 Mon Sep 17 00:00:00 2001 From: Philippe Martin Date: Fri, 20 Jan 2023 16:44:28 +0100 Subject: [PATCH 2/2] Add integration tests --- tests/integration/cmd_dev_test.go | 5 +++++ tests/integration/cmd_devfile_deploy_test.go | 1 + 2 files changed, 6 insertions(+) diff --git a/tests/integration/cmd_dev_test.go b/tests/integration/cmd_dev_test.go index 9aae1295f93..9f664cf6536 100644 --- a/tests/integration/cmd_dev_test.go +++ b/tests/integration/cmd_dev_test.go @@ -234,6 +234,11 @@ var _ = Describe("odo dev command tests", func() { Expect(td.Properties.CmdProperties[segment.ProjectType]).To(ContainSubstring("nodejs")) Expect(td.Properties.CmdProperties).Should(HaveKey(segment.Caller)) Expect(td.Properties.CmdProperties[segment.Caller]).To(BeEmpty()) + experimentalValue := false + if podman { + experimentalValue = true + } + Expect(td.Properties.CmdProperties[segment.ExperimentalMode]).To(Equal(experimentalValue)) }) })) diff --git a/tests/integration/cmd_devfile_deploy_test.go b/tests/integration/cmd_devfile_deploy_test.go index 8a226fe9074..3ecd08bbe23 100644 --- a/tests/integration/cmd_devfile_deploy_test.go +++ b/tests/integration/cmd_devfile_deploy_test.go @@ -220,6 +220,7 @@ ComponentSettings: Expect(td.Properties.CmdProperties[segment.Flags]).To(BeEmpty()) Expect(td.Properties.CmdProperties).Should(HaveKey(segment.Caller)) Expect(td.Properties.CmdProperties[segment.Caller]).To(BeEmpty()) + Expect(td.Properties.CmdProperties[segment.ExperimentalMode]).To(Equal(false)) }) })