Exemplo n.º 1
0
        private static int ReadTelemetryDailyPushes(IConfigReader configReader)
        {
            var telemetryDailyPushesParam = configReader.GetUnencryptedConfigValue(
                ConfigReader.DiagnosticsSectionName,
                ConfigReader.TestOnlyTelemetryDailyPushesParamName,
                string.Empty);

            int telemetryDailyPushes;

            if (!int.TryParse(telemetryDailyPushesParam, out telemetryDailyPushes) || telemetryDailyPushes <= 0)
            {
                if (telemetryDailyPushesParam != string.Empty)
                {
                    throw new ArgumentException(
                              string.Format(
                                  "Invalid value of '{0}' for parameter '{1}', under '{2}' section. Expecting an integer value greater than zero.",
                                  telemetryDailyPushesParam,
                                  ConfigReader.DiagnosticsSectionName,
                                  ConfigReader.TestOnlyTelemetryDailyPushesParamName),
                              ConfigReader.TestOnlyTelemetryDailyPushesParamName);
                }

                return(TelemetryScheduler.DefaultTelemetryDailyPushes);
            }

            return(telemetryDailyPushes);
        }
Exemplo n.º 2
0
        public void SetupFromSettingsFile(IConfigReader configReader, TimeSpan currentTimeOfTheDay)
        {
            // reading the number of daily pushes
            this.DailyPushes = TelemetryScheduler.ReadTelemetryDailyPushes(configReader);

            // parsing time from telemetryPushTimeParamValue
            var telemetryPushTimeParamValue = configReader.GetUnencryptedConfigValue(
                ConfigReader.DiagnosticsSectionName,
                ConfigReader.TestOnlyTelemetryPushTimeParamName,
                string.Empty);

            TimeSpan telemetryPushTime;

            if (!TimeSpan.TryParse(telemetryPushTimeParamValue, out telemetryPushTime))
            {
                // the first batch of telemetry is sent after 30min that the cluster came up
                // the time of the push time will be than be 30min + 24h - (24/dailyPushes)
                TimeSpan totalTimeToPushTime = this.InitialSendDelay.Add(TimeSpan.FromHours(24.0 - this.SendInterval.TotalHours));
                this.PushTime = (currentTimeOfTheDay.Add(totalTimeToPushTime) < TimeSpan.FromDays(1)) ? currentTimeOfTheDay.Add(totalTimeToPushTime) : currentTimeOfTheDay.Add(totalTimeToPushTime).Subtract(TimeSpan.FromDays(1));
                this.IsTestOnlyTelemetryPushTimeSet = false;
            }
            else
            {
                this.PushTime = telemetryPushTime;
                this.IsTestOnlyTelemetryPushTimeSet = true;
            }

            this.UpdateScheduler(false, false, TimeSpan.FromHours(0.0), currentTimeOfTheDay);
        }