protected override void ProcessRecordInternal() { ServiceDiagnosticSettingsGetResponse result = this.InsightsManagementClient.ServiceDiagnosticSettingsOperations.GetAsync(this.ResourceId, CancellationToken.None).Result; PSServiceDiagnosticSettings psResult = new PSServiceDiagnosticSettings(result.Properties); WriteObject(psResult); }
protected override void ProcessRecordInternal() { ServiceDiagnosticSettingsResource result = this.InsightsManagementClient.ServiceDiagnosticSettings.GetAsync(resourceUri: this.ResourceId, cancellationToken: CancellationToken.None).Result; PSServiceDiagnosticSettings psResult = new PSServiceDiagnosticSettings(result); WriteObject(psResult); }
protected override void ProcessRecordInternal() { var putParameters = new ServiceDiagnosticSettingsPutParameters(); ServiceDiagnosticSettingsGetResponse getResponse = this.InsightsManagementClient.ServiceDiagnosticSettingsOperations.GetAsync(this.ResourceId, CancellationToken.None).Result; ServiceDiagnosticSettings properties = getResponse.Properties; if (this.Enabled && string.IsNullOrWhiteSpace(this.StorageAccountId)) { throw new ArgumentException("StorageAccountId can't be null when enabling"); } if (!string.IsNullOrWhiteSpace(this.StorageAccountId)) { properties.StorageAccountId = this.StorageAccountId; } if (this.Categories == null && this.Timegrains == null) { foreach (var log in properties.Logs) { log.Enabled = this.Enabled; } foreach (var metric in properties.Metrics) { metric.Enabled = this.Enabled; } } else { if (this.Categories != null) { foreach (string category in this.Categories) { LogSettings logSettings = properties.Logs.FirstOrDefault(x => string.Equals(x.Category, category, StringComparison.OrdinalIgnoreCase)); if (logSettings == null) { throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, "Log category '{0}' is not available for '{1}'", category, this.StorageAccountId)); } logSettings.Enabled = this.Enabled; } } if (this.Timegrains != null) { foreach (string timegrainString in this.Timegrains) { TimeSpan timegrain = XmlConvert.ToTimeSpan(timegrainString); MetricSettings metricSettings = properties.Metrics.FirstOrDefault(x => TimeSpan.Equals(x.TimeGrain, timegrain)); if (metricSettings == null) { throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, "Metric timegrain '{0}' is not available for '{1}'", timegrainString, this.StorageAccountId)); } metricSettings.Enabled = this.Enabled; } } } if (this.RetentionEnabled.HasValue) { var retentionPolicy = new RetentionPolicy { Enabled = this.RetentionEnabled.Value, Days = this.RetentionInDays.Value }; if (properties.Logs != null) { foreach (LogSettings logSettings in properties.Logs) { logSettings.RetentionPolicy = retentionPolicy; } } if (properties.Metrics != null) { foreach (MetricSettings metricSettings in properties.Metrics) { metricSettings.RetentionPolicy = retentionPolicy; } } } putParameters.Properties = properties; this.InsightsManagementClient.ServiceDiagnosticSettingsOperations.PutAsync(this.ResourceId, putParameters, CancellationToken.None).Wait(); PSServiceDiagnosticSettings psResult = new PSServiceDiagnosticSettings(putParameters.Properties); WriteObject(psResult); }
protected override void ProcessRecordInternal() { var putParameters = new ServiceDiagnosticSettingsPutParameters(); if (this.Categories == null && this.Timegrains == null && !this.Enabled) { // This is the only case where no call to get diagnostic settings is necessary. Since we are disabling everything, we just need to request stroage account false. putParameters.Properties = new ServiceDiagnosticSettings(); } else { ServiceDiagnosticSettingsGetResponse getResponse = this.InsightsManagementClient.ServiceDiagnosticSettingsOperations.GetAsync(this.ResourceId, CancellationToken.None).Result; ServiceDiagnosticSettings properties = getResponse.Properties; if (this.Enabled && string.IsNullOrWhiteSpace(this.StorageAccountId)) { throw new ArgumentException("StorageAccountId can't be null when enabling"); } if (!string.IsNullOrWhiteSpace(this.StorageAccountId)) { properties.StorageAccountId = this.StorageAccountId; } if (this.Categories == null) { foreach (var log in properties.Logs) { log.Enabled = this.Enabled; } } else { foreach (string category in this.Categories) { LogSettings logSettings = properties.Logs.FirstOrDefault(x => string.Equals(x.Category, category, StringComparison.OrdinalIgnoreCase)); if (logSettings == null) { throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, "Log category '{0}' is not available for '{1}'", category, this.StorageAccountId)); } logSettings.Enabled = this.Enabled; } } if (this.Timegrains == null) { foreach (var metric in properties.Metrics) { metric.Enabled = this.Enabled; } } else { foreach (string timegrainString in this.Timegrains) { TimeSpan timegrain = XmlConvert.ToTimeSpan(timegrainString); MetricSettings metricSettings = properties.Metrics.FirstOrDefault(x => TimeSpan.Equals(x.TimeGrain, timegrain)); if (metricSettings == null) { throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, "Metric timegrain '{0}' is not available for '{1}'", timegrainString, this.StorageAccountId)); } metricSettings.Enabled = this.Enabled; } } putParameters.Properties = properties; } this.InsightsManagementClient.ServiceDiagnosticSettingsOperations.PutAsync(this.ResourceId, putParameters, CancellationToken.None).Wait(); PSServiceDiagnosticSettings psResult = new PSServiceDiagnosticSettings(putParameters.Properties); WriteObject(psResult); }