private void ValidateStopToken(IExecutionContext context, string stopToken) { #if OS_WINDOWS var envContext = context.ExpressionValues["env"] as DictionaryContextData; #else var envContext = context.ExpressionValues["env"] as CaseSensitiveDictionaryContextData; #endif var allowUnsecureStopCommandTokens = false; allowUnsecureStopCommandTokens = StringUtil.ConvertToBoolean(Environment.GetEnvironmentVariable(Constants.Variables.Actions.AllowUnsupportedStopCommandTokens)); if (!allowUnsecureStopCommandTokens && envContext.ContainsKey(Constants.Variables.Actions.AllowUnsupportedStopCommandTokens)) { allowUnsecureStopCommandTokens = StringUtil.ConvertToBoolean(envContext[Constants.Variables.Actions.AllowUnsupportedStopCommandTokens].ToString()); } bool isTokenInvalid = _registeredCommands.Contains(stopToken) || string.IsNullOrEmpty(stopToken) || string.Equals(stopToken, "pause-logging", StringComparison.OrdinalIgnoreCase); if (isTokenInvalid) { var telemetry = new JobTelemetry { Message = $"Invoked ::stopCommand:: with token: [{stopToken}]", Type = JobTelemetryType.ActionCommand }; context.JobTelemetry.Add(telemetry); } if (isTokenInvalid && !allowUnsecureStopCommandTokens) { throw new Exception(Constants.Runner.UnsupportedStopCommandTokenDisabled); } }
private void LoadFromTelemetryFile(List <JobTelemetry> jobTelemetry) { try { var telemetryFilePath = HostContext.GetConfigFile(WellKnownConfigFile.Telemetry); if (File.Exists(telemetryFilePath)) { var telemetryData = File.ReadAllText(telemetryFilePath, Encoding.UTF8); var telemetry = new JobTelemetry { Message = $"Runner File Telemetry:\n{telemetryData}", Type = JobTelemetryType.General }; jobTelemetry.Add(telemetry); IOUtil.DeleteFile(telemetryFilePath); } } catch (Exception e) { Trace.Error("Error when trying to load telemetry from telemetry file"); Trace.Error(e); } }