diff --git a/src/GraphDeployer/Program.cs b/src/GraphDeployer/Program.cs index 3bb86cd6c39f958c70a7ef556e1a928ce2c9c2eb..fe1ef0a4bf148f100e5428ee6441f1d60c18ed08 100644 --- a/src/GraphDeployer/Program.cs +++ b/src/GraphDeployer/Program.cs @@ -1,11 +1,8 @@ using Coscine.Configuration; using Coscine.GraphDeployer.Logging; using Coscine.Metadata; -using GitLabApiClient; -using GitLabApiClient.Models.Projects.Responses; using LibGit2Sharp; using Microsoft.Extensions.Logging; -using Newtonsoft.Json; using NLog.Config; using NLog.Extensions.Logging; using System.Diagnostics; @@ -28,10 +25,9 @@ public class Program ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition("assembly-name", typeof(AssemblyNameLayoutRenderer)); ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition("assembly-version", typeof(AssemblyVersionLayoutRenderer)); _logger = LoggerFactory.Create(builder => builder.AddNLog()).CreateLogger<Program>(); - - Token = Configuration.GetStringAndWait("coscine/global/gitlabtoken"); try { + Token = Configuration.GetStringAndWait("coscine/global/gitlabtoken"); Run(); } catch (Exception ex) @@ -103,10 +99,13 @@ public class Program if (_rdfStoreConnector.HasGraph(graphName)) { - _logger.LogDebug("Clearing Graph {graphName}", graphName); _rdfStoreConnector.ClearGraph(graphName); _logger.LogInformation("Cleared Graph {graphName}", graphName); } + else + { + _logger.LogInformation("No Graph {graphName}", graphName); + } queries.Add($"ld_dir('{fileInfo.DirectoryName[2..].Replace("\\", "/")}', '{fileInfo.Name}', '{graphName}');"); } @@ -115,11 +114,11 @@ public class Program foreach (var query in queries) { - _logger.LogDebug("Executing queries {@queries}", queries); ExecuteCommand( "powershell.exe", $"\"\\\"{query}\\\" | {virtuosoISQLLocation}\"" ); + _logger.LogInformation("Query executed {@query}", query); } } @@ -127,7 +126,7 @@ public class Program EmptyWorkingFolder(); } - Console.WriteLine("Done"); + _logger.LogInformation("Done"); } private static void ExecuteCommand(string fileName, string arguments) @@ -148,10 +147,12 @@ public class Program process.Start(); string output = process.StandardOutput.ReadToEnd(); - Console.WriteLine(output); + if (!string.IsNullOrWhiteSpace(output)) + _logger.LogDebug("Executed queries {filename} {arguments} >>> {output}", fileName, arguments, output); string errors = process.StandardError.ReadToEnd(); - Console.WriteLine(errors); + if (!string.IsNullOrWhiteSpace(errors)) + _logger.LogError("Errors during execution of command {filename} {arguments} >>> {errors}", fileName, arguments, errors); } public static void CloneGraphRepo(GraphRepo graphRepo, out bool success) @@ -177,17 +178,25 @@ public class Program public static void EmptyWorkingFolder() { var directory = new DirectoryInfo(WorkingFolder); - _logger.LogInformation("Deleting {fileCount} files and {directoryCount} directories from {workingFolder}.", directory.EnumerateFiles().Count(), directory.EnumerateDirectories().Count(), WorkingFolder); - foreach (FileInfo file in directory.EnumerateFiles()) + var filesToDelete = directory.EnumerateFiles("*.*", SearchOption.AllDirectories); + var dirsToDelete = directory.EnumerateDirectories(); + _logger.LogInformation("Deleting {fileCount} files and {directoryCount} directories from {workingFolder}.", filesToDelete.Count(), dirsToDelete.Count(), WorkingFolder); + foreach (var file in filesToDelete) { + file.Attributes = FileAttributes.Normal; file.Delete(); } - foreach (DirectoryInfo dir in directory.EnumerateDirectories()) + foreach (var dir in dirsToDelete) { dir.Delete(true); } } + private static FileAttributes RemoveAttribute(FileAttributes attributes, FileAttributes attributesToRemove) + { + return attributes & ~attributesToRemove; + } + private static void LogInnerException(Exception ex) { if (ex.InnerException is not null)