Skip to content

Commit ab441e1

Browse files
author
Sridhar, NIVETHA (ext) (FT D AA IN SGI EA EBT BE)
committed
resolved conflicts
2 parents e5443b9 + 679373f commit ab441e1

File tree

73 files changed

+2996
-718
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+2996
-718
lines changed

src/ArtifactoryUploader/ArtifactoryUploader.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ public static class ArtfactoryUploader
3131

3232
public static async Task<HttpResponseMessage> UploadPackageToRepo(ComponentsToArtifactory component, int timeout, DisplayPackagesInfo displayPackagesInfo)
3333
{
34-
Logger.Debug("Starting UploadPackageToArtifactory method");
34+
35+
Logger.Debug("UploadPackageToRepo(): Starting the upload package to Artifactory.");
3536
string operationType = GetOperationType(component);
3637
string dryRunSuffix = component.DryRun ? " dry-run" : "";
3738
HttpResponseMessage responsemessage = new HttpResponseMessage();
@@ -45,7 +46,9 @@ public static async Task<HttpResponseMessage> UploadPackageToRepo(ComponentsToAr
4546
}
4647

4748
// Perform Copy or Move operation
49+
4850
responsemessage = await GetRepoOperationResponse(component);
51+
await LogHandlingHelper.HttpResponseHandling("Upload Package To Repo", $"MethodName:UploadPackageToRepo()", responsemessage, "");
4952

5053
// Check status code and handle errors
5154
if (responsemessage.StatusCode != HttpStatusCode.OK)
@@ -58,15 +61,17 @@ public static async Task<HttpResponseMessage> UploadPackageToRepo(ComponentsToAr
5861
}
5962
catch (HttpRequestException ex)
6063
{
64+
LogHandlingHelper.ExceptionErrorHandling("UploadPackageToRepo", $"MethodName:UploadPackageToRepo(), ComponentName: {component.Name}", ex, "An HTTP request error occurred while uploading the package to Artifactory.");
6165
return HandleUploadException(ex, responsemessage);
6266
}
6367
catch (InvalidOperationException ex)
6468
{
69+
LogHandlingHelper.ExceptionErrorHandling("UploadPackageToRepo", $"MethodName:UploadPackageToRepo(), ComponentName: {component.Name}", ex, "An invalid operation occurred while uploading the package to Artifactory.");
6570
return HandleUploadException(ex, responsemessage);
6671
}
6772
finally
6873
{
69-
Logger.Debug("Ending UploadPackageToArtifactory method");
74+
Logger.DebugFormat("UploadPackageToRepo(): Ending the upload process for component: {0}.", component.Name);
7075
}
7176

7277
return responsemessage;
@@ -154,11 +159,11 @@ public static string GettPathForArtifactoryUpload()
154159
}
155160
catch (IOException ex)
156161
{
157-
Logger.Error($"GettPathForArtifactoryUpload() ", ex);
162+
LogHandlingHelper.ExceptionErrorHandling("GettPathForArtifactoryUpload", $"Failed to create directory ", ex, "IOException occurred while creating the directory.");
158163
}
159164
catch (UnauthorizedAccessException ex)
160165
{
161-
Logger.Error($"GettPathForArtifactoryUpload() ", ex);
166+
LogHandlingHelper.ExceptionErrorHandling("GettPathForArtifactoryUpload", $"Unauthorized access while creating directory", ex, "UnauthorizedAccessException occurred while creating the directory.");
162167
}
163168

164169
return localPathforartifactory;

src/ArtifactoryUploader/ArtifactoryValidator.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,13 @@ public async Task<int> ValidateArtifactoryCredentials()
2626
try
2727
{
2828
responseMessage = await _JfrogAqlApiCommunication.CheckConnection();
29+
await LogHandlingHelper.HttpResponseHandling("JFrog Connection Validation", $"Methodname-ValidateArtifactoryCredentials()", responseMessage, "");
2930
responseMessage.EnsureSuccessStatusCode();
3031
return 0;
3132
}
3233
catch (HttpRequestException ex)
3334
{
35+
LogHandlingHelper.ExceptionErrorHandling("Get sw360 Project details for validating", $"MethodName-GetProjectById()", ex, "");
3436
ExceptionHandling.HttpException(ex, responseMessage, "Artifactory");
3537
return -1;
3638
}

src/ArtifactoryUploader/PackageUploadHelper.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,15 @@ public static class PackageUploadHelper
4141
private static bool SetWarningCode;
4242
public static Bom GetComponentListFromComparisonBOM(string comparisonBomFilePath, IEnvironmentHelper environmentHelper)
4343
{
44-
Logger.Debug("Starting GetComponentListFromComparisonBOM() method");
44+
Logger.Debug("GetComponentListFromComparisonBOM(): Reading bom file for components.");
4545
Bom componentsToBoms = null;
4646
try
4747
{
4848
if (File.Exists(comparisonBomFilePath))
4949
{
5050
string json = File.ReadAllText(comparisonBomFilePath);
5151
componentsToBoms = CycloneDX.Json.Serializer.Deserialize(json);
52+
LogHandlingHelper.ListOfBomFileComponents(comparisonBomFilePath, componentsToBoms.Components ?? new List<Component>());
5253
}
5354
else
5455
{
@@ -58,9 +59,11 @@ public static Bom GetComponentListFromComparisonBOM(string comparisonBomFilePath
5859
}
5960
catch (JsonReaderException ex)
6061
{
62+
LogHandlingHelper.ExceptionErrorHandling("GetComponentListFromComparisonBOM", $"Failed to deserialize the comparison BOM file at path: {comparisonBomFilePath}", ex, "JsonReaderException occurred while deserializing the comparison BOM.");
6163
Logger.Error($"Exception occurred in reading the comparison BOM: {ex.Message}");
6264
environmentHelper.CallEnvironmentExit(-1);
6365
}
66+
Logger.Debug("GetComponentListFromComparisonBOM(): Completed the reading and identifying components from bom file.");
6467
return componentsToBoms;
6568
}
6669

@@ -240,7 +243,7 @@ private static void AddToChocoList(ComponentsToArtifactory component, DisplayPac
240243
// Properly wrap UploadingThePackages as a method
241244
public static async Task UploadingThePackages(List<ComponentsToArtifactory> componentsToUpload, int timeout, DisplayPackagesInfo displayPackagesInfo)
242245
{
243-
Logger.Debug("Starting UploadingThePackages() method");
246+
Logger.Debug("UploadingThePackages(): Starting the package upload process.");
244247
foreach (var item in componentsToUpload)
245248
{
246249
await PackageUploadToArtifactory(PackageUploader.uploaderKpiData, item, timeout, displayPackagesInfo);
@@ -253,7 +256,7 @@ public static async Task UploadingThePackages(List<ComponentsToArtifactory> comp
253256
Logger.Debug("Setting ExitCode to 2");
254257
}
255258

256-
Logger.Debug("Ending UploadingThePackages() method");
259+
Logger.Debug("UploadingThePackages(): Package upload process completed.");
257260
Program.UploaderStopWatch?.Stop();
258261
}
259262

@@ -269,19 +272,22 @@ private static async Task PackageUploadToArtifactory(UploaderKpiData uploaderKpi
269272
{
270273
if (!(item.SrcRepoName.Contains("Not Found in JFrog")))
271274
{
275+
Logger.DebugFormat("PackageUploadToArtifactory():{0} and {1} contains Source repository:{2} and Destination Repository:{3} ,So now started upload package process .", item.Name, item.Version, item.SrcRepoName, item.DestRepoName);
272276
await SourceRepoFoundToUploadArtifactory(packageType, uploaderKpiData, item, timeout, displayPackagesInfo);
273277
}
274278
else
275279
{
276280
uploaderKpiData.PackagesNotExistingInRemoteCache++;
277281
item.DestRepoName = null;
278282
await JfrogNotFoundPackagesAsync(item, displayPackagesInfo);
283+
Logger.DebugFormat("PackageUploadToArtifactory(): {0} and {1} is not found in any jfrog repository.", item.Name, item.Version);
279284
}
280285
}
281286
else
282287
{
283288
IncrementCountersBasedOnPackageType(uploaderKpiData, packageType, true);
284289
await SucessfullPackagesAsync(item, displayPackagesInfo);
290+
Logger.DebugFormat("PackageUploadToArtifactory(): {0} and {1} is identified in source: {2} and destination: {3} repositories",item.Name, item.Version, item.SrcRepoName, item.DestRepoName);
285291
item.DestRepoName = null;
286292
}
287293
}

src/ArtifactoryUploader/PackageUploader.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@ public static class PackageUploader
3232

3333
public static async Task UploadPackageToArtifactory(CommonAppSettings appSettings)
3434
{
35+
Logger.Debug($"UploadPackageToArtifactory():Upload package to artifactory process has started");
3536
//Reading the CycloneBOM data
3637
var bomFilePath = Path.Combine(appSettings.Directory.OutputFolder, appSettings.SW360.ProjectName + "_" + FileConstant.BomFileName);
38+
Logger.DebugFormat("UploadPackageToArtifactory(): Identified bom file with path: {0}", bomFilePath);
3739
Bom m_ComponentsInBOM = PackageUploadHelper.GetComponentListFromComparisonBOM(bomFilePath, environmentHelper);
3840

3941
LoggerHelper.DisplayAllSettings(m_ComponentsInBOM.Components, appSettings);
@@ -72,7 +74,7 @@ public static async Task UploadPackageToArtifactory(CommonAppSettings appSetting
7274
(int)Program.UploaderStopWatch.Elapsed.TotalSeconds;
7375
PackageUploadHelper.WriteCreatorKpiDataToConsole(uploaderKpiData);
7476

75-
Logger.Debug($"UploadPackageToArtifactory():End");
77+
Logger.Debug($"UploadPackageToArtifactory():Upload package to artifactory process has completed");
7678

7779
// set the error code
7880
if (uploaderKpiData.PackagesNotUploadedDueToError > 0 || uploaderKpiData.PackagesNotExistingInRemoteCache > 0)

src/ArtifactoryUploader/Program.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,17 @@ static async Task Main(string[] args)
4949
// do not change the order of getting ca tool information
5050
CatoolInfo caToolInformation = GetCatoolVersionFromProjectfile();
5151
Log4Net.CatoolCurrentDirectory = System.IO.Directory.GetParent(caToolInformation.CatoolRunningLocation).FullName;
52-
CommonHelper.DefaultLogFolderInitialisation(FileConstant.ArtifactoryUploaderLog, m_Verbose);
53-
CommonAppSettings appSettings = settingsManager.ReadConfiguration<CommonAppSettings>(args, FileConstant.appSettingFileName);
52+
string logFileNameWithTimestamp = $"{FileConstant.ArtifactoryUploaderLog}_{DateTime.Now:yyyyMMdd_HHmmss}.log";
53+
CommonHelper.DefaultLogFolderInitialization(logFileNameWithTimestamp, m_Verbose);
54+
Logger.Debug($"====================<<<<< Artifactory Uploader >>>>>====================");
55+
CommonAppSettings appSettings = settingsManager.ReadConfiguration<CommonAppSettings>(args, FileConstant.appSettingFileName, environmentHelper);
56+
Log4Net.AppendVerboseValue(appSettings);
5457
Console.OutputEncoding = System.Text.Encoding.UTF8;
55-
string _ = CommonHelper.LogFolderInitialisation(appSettings, FileConstant.ArtifactoryUploaderLog, m_Verbose);
58+
string _ = CommonHelper.LogFolderInitialization(appSettings, logFileNameWithTimestamp, m_Verbose);
5659

5760
settingsManager.CheckRequiredArgsToRun(appSettings, Dataconstant.Uploader);
5861
string bomFilePath = GetBomFilePath(appSettings);
62+
Logger.DebugFormat("Main(): Identified bom file with path: {0}", bomFilePath);
5963
LoggerHelper.SpectreConsoleInitialMessage("Artifactory Uploader");
6064
ListofPerametersForCli listofPerameters = new ListofPerametersForCli();
6165
LoggerHelper.LogInputParameters(caToolInformation, appSettings, listofPerameters, exeType: Dataconstant.Uploader, bomFilePath: bomFilePath);

src/ArtifactoryUploader/UploadToArtifactory.cs

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,12 @@ public async static Task<List<ComponentsToArtifactory>> GetComponentsToBeUploade
3434
CommonAppSettings appSettings,
3535
DisplayPackagesInfo displayPackagesInfo)
3636
{
37-
Logger.Debug("Starting GetComponentsToBeUploadedToArtifactory() method");
37+
Logger.Debug("GetComponentsToBeUploadedToArtifactory():Starting to get component data for upload to artifactory");
3838
List<ComponentsToArtifactory> componentsToBeUploaded = new List<ComponentsToArtifactory>();
3939

4040
foreach (var item in comparisonBomData)
4141
{
42+
Logger.DebugFormat("GetComponentsToBeUploadedToArtifactory(): Identifying data for this component name-{0}, version-{1}", item.Name, item.Version);
4243
var packageType = GetPackageType(item);
4344

4445
if (packageType != PackageType.Unknown)
@@ -76,6 +77,7 @@ public async static Task<List<ComponentsToArtifactory>> GetComponentsToBeUploade
7677
components.JfrogPackageName = GetJfrogPackageName(components);
7778
components.JfrogRepoPath = GetJfrogRepPath(components);
7879
componentsToBeUploaded.Add(components);
80+
Logger.DebugFormat("GetComponentsToBeUploadedToArtifactory(): Component identified as unknown package type, name-{0}, version-{1}", item.Name, item.Version);
7981
}
8082
else
8183
{
@@ -84,10 +86,34 @@ public async static Task<List<ComponentsToArtifactory>> GetComponentsToBeUploade
8486
await AddUnknownPackagesAsync(item, displayPackagesInfo);
8587
}
8688
}
87-
Logger.Debug("Ending GetComponentsToBeUploadedToArtifactory() method");
89+
ValidComponentsIdentifiedToBeUpload(componentsToBeUploaded);
90+
Logger.Debug("GetComponentsToBeUploadedToArtifactory():Completed to getting component data for upload to artifactory");
8891
return componentsToBeUploaded;
8992
}
93+
private static void ValidComponentsIdentifiedToBeUpload(List<ComponentsToArtifactory> componentsToBeUploaded)
94+
{
95+
if (componentsToBeUploaded == null || componentsToBeUploaded.Count == 0)
96+
{
97+
Logger.Debug("No components to be uploaded to Artifactory.");
98+
return;
99+
}
90100

101+
var logBuilder = new System.Text.StringBuilder();
102+
logBuilder.AppendLine($"\n================================================================================================================");
103+
logBuilder.AppendLine(" Components to be Uploaded to Artifactory");
104+
logBuilder.AppendLine("================================================================================================================");
105+
logBuilder.AppendLine($"| {"Name",-50} | {"Version",-15} | {"ComponentType",-15} | {"PackageType",-20} | {"SrcRepoName",-20} | {"DestRepoName",-20} |");
106+
logBuilder.AppendLine("----------------------------------------------------------------------------------------------------------------");
107+
108+
foreach (var component in componentsToBeUploaded)
109+
{
110+
logBuilder.AppendLine($"| {component.Name,-50} | {component.Version,-15} | {component.ComponentType,-15} | {component.PackageType,-20} | {component.SrcRepoName,-20} | {component.DestRepoName,-20} |");
111+
}
112+
113+
logBuilder.AppendLine("================================================================================================================");
114+
115+
Logger.Debug(logBuilder.ToString());
116+
}
91117
private static string GetComponentType(Component item)
92118
{
93119
var projectTypeProp = item.Properties
@@ -591,20 +617,23 @@ string GetPropertyValue(string propertyName) =>
591617
.Find(p => p.Name == propertyName)?
592618
.Value?
593619
.ToUpperInvariant();
594-
620+
Logger.DebugFormat("GetPackageType(): Determining package type for Component - Name: {0}, Version: {1}", item.Name, item.Version);
595621
if (GetPropertyValue(Dataconstant.Cdx_ClearingState) == "APPROVED")
596622
{
623+
Logger.Debug($"GetPackageType(): Package type determined as Clearing state is APPROVED");
597624
return PackageType.ClearedThirdParty;
598625
}
599626
else if (GetPropertyValue(Dataconstant.Cdx_IsInternal) == "TRUE")
600627
{
628+
Logger.Debug($"GetPackageType(): Package type determined as Internal");
601629
return PackageType.Internal;
602630
}
603631
else if (GetPropertyValue(Dataconstant.Cdx_IsDevelopment) == "TRUE")
604632
{
633+
Logger.Debug($"GetPackageType(): Package type determined as Development");
605634
return PackageType.Development;
606635
}
607-
636+
Logger.Debug($"GetPackageType(): Package type determined as Unknown");
608637
return PackageType.Unknown;
609638
}
610639

src/LCT.APICommunications/AttachmentHelper.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public class AttachmentHelper
3333

3434
private const string fileMimeType = "application /x-compressed";
3535
private const string fileFormKey = "file";
36-
36+
private const string AttachmentErrorMessage = "Not able to attachment";
3737
public AttachmentHelper(string sw360TokenType, string sw360Token, string releaseApi)
3838
{
3939
sw360AuthToken = sw360Token;
@@ -86,19 +86,23 @@ public string AttachComponentSourceToSW360(AttachReport attachReport, Comparison
8686
byte[] endBytes = System.Text.Encoding.UTF8.GetBytes($"--{boundary}--");
8787
requestStream.Write(endBytes, 0, endBytes.Length);
8888
requestStream.Close();
89+
LogHandlingHelper.LogHttpWebRequest("Attach Component Source", $"Uploading component source for ReleaseId: {attachReport.ReleaseId}", request);
8990
using WebResponse response = request.GetResponse();
9091
HttpWebResponse httpResponse = (HttpWebResponse)response;
9192
HandleAcceptedStatus(httpResponse, comparisonBomData);
9293
using StreamReader reader = new StreamReader(response.GetResponseStream());
9394
reader.ReadToEnd();
95+
LogHandlingHelper.LogHttpWebResponse("Attach Component Source", $"Response for attaching component source for ReleaseId: {attachReport.ReleaseId}", httpResponse);
9496
}
9597
}
9698
catch (UriFormatException ex)
9799
{
100+
LogHandlingHelper.ExceptionErrorHandling(AttachmentErrorMessage, $"AttachComponentSourceToSW360():Failed to attach component source for ReleaseId: {attachReport.ReleaseId}", ex, $"Invalid URI format: {url.AbsoluteUri}");
98101
Logger.Error($" └── AttachComponentSourceToSW360:", ex);
99102
}
100103
catch (SecurityException ex)
101104
{
105+
LogHandlingHelper.ExceptionErrorHandling(AttachmentErrorMessage, $"AttachComponentSourceToSW360():Failed to attach component source for ReleaseId: {attachReport.ReleaseId}", ex, "A security exception occurred. Ensure the application has the required permissions.");
102106
Logger.Error($" └── AttachComponentSourceToSW360:", ex);
103107
}
104108
catch (WebException webex)
@@ -110,15 +114,15 @@ public string AttachComponentSourceToSW360(AttachReport attachReport, Comparison
110114
{
111115
StreamReader reader = new StreamReader(respStream);
112116
string text = reader.ReadToEnd();
113-
Logger.Debug($"Web exception: {text}", webex);
117+
LogHandlingHelper.ExceptionErrorHandling(AttachmentErrorMessage, $"Failed to attach component source for ReleaseId: {attachReport.ReleaseId}", webex, $"Web exception occurred. Details: {text}");
114118
Logger.Warn($" └── Web exception: {text}", webex);
115119
}
116120
}
117121
}
118122
catch (IOException ex)
119123
{
120124
Logger.Error($" └── AttachComponentSourceToSW360:Failed attach source for release = {attachReport.ReleaseId}");
121-
Logger.Debug($"AttachComponentSourceToSW360:", ex);
125+
LogHandlingHelper.ExceptionErrorHandling(AttachmentErrorMessage, $"AttachComponentSourceToSW360():Failed to attach component source for ReleaseId: {attachReport.ReleaseId}", ex, "An I/O error occurred while processing the attachment.");
122126
}
123127
return releaseAttachementApi;
124128
}

0 commit comments

Comments
 (0)