Skip to content

Commit

Permalink
scan stat record stabilization
Browse files Browse the repository at this point in the history
  • Loading branch information
nleach999 committed Jul 18, 2023
1 parent c16affd commit e88e9ec
Showing 1 changed file with 47 additions and 18 deletions.
65 changes: 47 additions & 18 deletions Libs/CxRestClient/SAST/CxScanStatistics.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using CxAnalytix.Exceptions;
using CxAnalytix.Extensions;
using CxRestClient.Utility;
using log4net;
using Newtonsoft.Json;
Expand All @@ -7,6 +8,7 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Net;
using System.Net.Http;
using System.Text;
Expand Down Expand Up @@ -270,24 +272,51 @@ internal FullScanStatistics()

public static FullScanStatistics GetScanFullStatistics(CxSASTRestContext ctx, CancellationToken token, String scanId)
{
var statistics = GetScanStatistics(ctx, token, scanId);

var pf = GetScanParsedFiles(ctx, token, scanId);
var fq = GetScanFailedQueries(ctx, token, scanId);
var fgq = GetScanFailedGeneralQueries(ctx, token, scanId);
var sgq = GetScanSuccessfulGeneralQueries(ctx, token, scanId);

if (statistics.Result == null)
return null;

return new FullScanStatistics()
{
Statistics = statistics.Result,
ParsedFiles = pf.Result,
FailedQueries = fq.Result,
FailedGeneralQueries = fgq.Result,
SuccessGeneralQueries = sgq.Result
};
CancellationTokenSource localToken = new();

List<Task> runningTasks = new();

using (token.Register(() => localToken.Cancel()))
try
{
var statistics = GetScanStatistics(ctx, localToken.Token, scanId);
runningTasks.Add(statistics);

var pf = GetScanParsedFiles(ctx, localToken.Token, scanId);
runningTasks.Add(pf);

var fq = GetScanFailedQueries(ctx, localToken.Token, scanId);
runningTasks.Add(fq);

var fgq = GetScanFailedGeneralQueries(ctx, localToken.Token, scanId);
runningTasks.Add(fgq);

var sgq = GetScanSuccessfulGeneralQueries(ctx, localToken.Token, scanId);
runningTasks.Add(sgq);


if (statistics.Result != null)
return new FullScanStatistics()
{
Statistics = statistics.Result,
ParsedFiles = pf.Result,
FailedQueries = fq.Result,
FailedGeneralQueries = fgq.Result,
SuccessGeneralQueries = sgq.Result
};
}
catch (Exception)
{
localToken.Cancel();
throw;
}
finally
{
runningTasks.SafeWaitAllToEnd();
runningTasks.DisposeTasks();
}

return null;
}

}
Expand Down

0 comments on commit e88e9ec

Please sign in to comment.