async void DoWorkAsync(object state) { var tesReportGeneratorFactory = new TestReportGeneratorFactory(this.storage); List <ITestReportMetadata> reportMetadataList = await Settings.Current.GetReportMetadataListAsync(this.logger); ITestResultReport[] testResultReports = await TestReportUtil.GenerateTestResultReportsAsync(Settings.Current.TrackingId, reportMetadataList, tesReportGeneratorFactory, this.logger); if (testResultReports.Length == 0) { this.logger.LogInformation("No test result report is generated."); return; } var testSummary = new TestSummary(testResultReports); string reportsContent = JsonConvert.SerializeObject(testSummary, Formatting.Indented); this.logger.LogInformation($"Test result report{Environment.NewLine}{reportsContent}"); await AzureLogAnalytics.Instance.PostAsync( Settings.Current.LogAnalyticsWorkspaceId, Settings.Current.LogAnalyticsSharedKey, reportsContent, Settings.Current.LogAnalyticsLogType); this.logger.LogInformation("Successfully send reports to LogAnalytics"); }
public async Task <ContentResult> GetReportsAsync() { var testReportGeneratorFactory = new TestReportGeneratorFactory(this.storage); ITestResultReport[] testResultReports = await TestReportHelper.GenerateTestResultReportsAsync(Settings.Current.TrackingId, Settings.Current.GetReportMetadataList(), testReportGeneratorFactory, Logger); if (testResultReports.Length == 0) { return(new ContentResult { Content = "No test report generated" }); } return(new ContentResult { Content = this.AddManualRunReportingHeading(JsonConvert.SerializeObject(testResultReports, Formatting.Indented)) // explicit serialization needed due to the wrapping list }); }
async void DoWorkAsync(object state) { var testReportGeneratorFactory = new TestReportGeneratorFactory(this.storage, Settings.Current.NetworkControllerType, Settings.Current.LongHaulSpecificSettings); List <ITestReportMetadata> reportMetadataList = await Settings.Current.GetReportMetadataListAsync(this.logger); ITestResultReport[] testResultReports = await TestReportUtil.GenerateTestResultReportsAsync(Settings.Current.TrackingId, reportMetadataList, testReportGeneratorFactory, this.logger); if (testResultReports.Length == 0) { this.logger.LogInformation("No test result report is generated."); return; } string blobContainerUri = string.Empty; if (this.serviceSpecificSettings.LogUploadEnabled) { try { Uri blobContainerWriteUriForLog = await TestReportUtil.GetOrCreateBlobContainerSasUriForLogAsync(this.serviceSpecificSettings.StorageAccountConnectionString); blobContainerUri = $"{blobContainerWriteUriForLog.Scheme}{Uri.SchemeDelimiter}{blobContainerWriteUriForLog.Authority}{blobContainerWriteUriForLog.AbsolutePath}"; await TestReportUtil.UploadLogsAsync(Settings.Current.IoTHubConnectionString, blobContainerWriteUriForLog, this.logUploadDuration, this.logger); } catch (Exception ex) { this.logger.LogError(ex, "Exception happened when uploading logs"); } } var testSummary = new TestSummary(Settings.Current.TestInfo, testResultReports, blobContainerUri); string reportsContent = JsonConvert.SerializeObject(testSummary, Formatting.Indented); this.logger.LogInformation($"Test summary{Environment.NewLine}{reportsContent}"); await AzureLogAnalytics.Instance.PostAsync( this.serviceSpecificSettings.LogAnalyticsWorkspaceId, this.serviceSpecificSettings.LogAnalyticsSharedKey, reportsContent, this.serviceSpecificSettings.LogAnalyticsLogType); this.logger.LogInformation("Successfully send reports to LogAnalytics"); }
public async Task <ContentResult> GetReportsAsync() { var testReportGeneratorFactory = new TestReportGeneratorFactory(this.storage, Settings.Current.NetworkControllerType); List <ITestReportMetadata> reportMetadataList = await Settings.Current.GetReportMetadataListAsync(Logger); ITestResultReport[] testResultReports = await TestReportUtil.GenerateTestResultReportsAsync(Settings.Current.TrackingId, reportMetadataList, testReportGeneratorFactory, Logger); if (testResultReports.Length == 0) { return(new ContentResult { Content = "No test report generated" }); } return(new ContentResult { Content = JsonConvert.SerializeObject(testResultReports, Formatting.Indented) // explicit serialization needed due to the wrapping list }); }