From 1857c62c89fd7afdbfe9388116f6e01b498327c9 Mon Sep 17 00:00:00 2001 From: Ganesh Nalawade Date: Sat, 15 Apr 2023 16:55:45 +0530 Subject: [PATCH] Update Ansible metadata event (#853) * Update Ansible metadata event * Add telemetry to identify if Ansible Lightspeed and code assist is enabled or disabled * Read EE enabled from VSCode Ansible settings * fix typo --- USAGE_DATA.md | 3 +++ src/extension.ts | 2 +- src/features/ansibleMetaData.ts | 18 ++++++++++++++++-- src/features/utils/formatAnsibleMetaData.ts | 1 - 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/USAGE_DATA.md b/USAGE_DATA.md index f765f465e..4c6d0cd90 100644 --- a/USAGE_DATA.md +++ b/USAGE_DATA.md @@ -14,6 +14,9 @@ vscode-ansible has opt-in telemetry collection, provided by - ansible-navigator run command runs successfully or fails. - Ansible vault (ansible-vault) command run in case it fails. - Resync Ansible inventory (ansible-inventory) command run in case it fails. +- Execution environment enabled or disabled +- Ansible Lightspeed enabled or disabled +- Ansible Lightspeed code assist enabled or disabled ## What's included in the general telemetry data diff --git a/src/extension.ts b/src/extension.ts index e99cb209f..fe9d6b13e 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -97,7 +97,7 @@ export async function activate(context: ExtensionContext): Promise { new AnsiblePlaybookRunProvider(context, extSettings.settings, telemetry); // handle metadata status bar - const metaData = new MetadataManager(context, client, telemetry); + const metaData = new MetadataManager(context, client, telemetry, extSettings); metaData.updateAnsibleInfoInStatusbar(); // handle Ansible Lightspeed diff --git a/src/features/ansibleMetaData.ts b/src/features/ansibleMetaData.ts index c1f1ee62c..3f9cd8d50 100644 --- a/src/features/ansibleMetaData.ts +++ b/src/features/ansibleMetaData.ts @@ -12,16 +12,21 @@ import { LanguageClient } from "vscode-languageclient/node"; import { TelemetryManager } from "../utils/telemetryUtils"; import { formatAnsibleMetaData } from "./utils/formatAnsibleMetaData"; import { compareObjects } from "./utils/data"; +import { SettingsManager } from "../settings"; interface ansibleMetadataEvent { ansibleVersion: string; ansibleLintVersion?: string; eeEnabled: boolean; + lightSpeedEnabled: boolean; + lightSpeedCodeAssistEnabled: boolean; } let prevEventData: ansibleMetadataEvent = { ansibleVersion: "", eeEnabled: false, + lightSpeedEnabled: false, + lightSpeedCodeAssistEnabled: false, }; export class MetadataManager { @@ -30,15 +35,18 @@ export class MetadataManager { private cachedAnsibleVersion = ""; private metadataStatusBarItem: StatusBarItem; private telemetry: TelemetryManager; + private extensionSettings: SettingsManager; constructor( context: ExtensionContext, client: LanguageClient, - telemetry: TelemetryManager + telemetry: TelemetryManager, + extensionSettings: SettingsManager ) { this.context = context; this.client = client; this.telemetry = telemetry; + this.extensionSettings = extensionSettings; this.metadataStatusBarItem = this.initialiseStatusBar(); } @@ -105,7 +113,13 @@ export class MetadataManager { const eventData: ansibleMetadataEvent = { ansibleVersion: ansibleMetaData.metaData["ansible information"]["core version"], - eeEnabled: ansibleMetaData.eeEnabled, + eeEnabled: + this.extensionSettings.settings.executionEnvironment.enabled, + lightSpeedEnabled: + this.extensionSettings.settings.lightSpeedService.enabled, + lightSpeedCodeAssistEnabled: + this.extensionSettings.settings.lightSpeedService.suggestions + .enabled, }; if (ansibleMetaData.ansibleLintPresent) { eventData["ansibleLintVersion"] = diff --git a/src/features/utils/formatAnsibleMetaData.ts b/src/features/utils/formatAnsibleMetaData.ts index 5cd42bd4f..89074dac1 100644 --- a/src/features/utils/formatAnsibleMetaData.ts +++ b/src/features/utils/formatAnsibleMetaData.ts @@ -32,7 +32,6 @@ export function formatAnsibleMetaData(ansibleMetaData: any) { markdown, ansiblePresent, ansibleLintPresent, - eeEnabled, }; }