Skip to content
Snippets Groups Projects

Hotfix/790 org deploy

Merged Marcel Nellesen requested to merge Hotfix/790-orgDeploy into Sprint/2020-11
2 files
+ 76
30
Compare changes
  • Side-by-side
  • Inline

Files

+ 53
29
@@ -14,26 +14,10 @@ namespace Coscine.OrganizationDeployer
{
public static void Main(string[] args)
{
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = @"powershell.exe",
Arguments = $@"& '{ Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "getOrganizations.ps1") }'",
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true
};
Process process = new Process
{
StartInfo = startInfo
};
process.Start();
string output = process.StandardOutput.ReadToEnd();
Console.WriteLine(output);
string errors = process.StandardError.ReadToEnd();
Console.WriteLine(errors);
ExecuteCommand(
"powershell.exe",
$@"& '{ Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "getOrganizations.ps1") }'"
);
var configuration = new ConsulConfiguration();
@@ -45,28 +29,68 @@ namespace Coscine.OrganizationDeployer
VirtuosoManager virtuosoManager = new VirtuosoManager($"Server={virtuosoHost};Uid={virtuosoUser};pwd={virtuosoPassword}");
var _util = new Util(virtuosoServer);
foreach (var file in GetFiles("organizations").Where((file) => file.Contains(".ttl")))
var folder = "/voc";
var virtuosoISQLLocation = configuration.GetString(
"coscine/local/virtuoso/isql",
"C:/Programs/Virtuoso/bin/isql.exe"
);
var queries = new List<string>();
foreach (var file in GetFiles(folder).Where((file) => file.Contains(".ttl")))
{
var fileInfo = new FileInfo(file);
var graph = new Graph();
graph.LoadFromFile(file);
var graphName = graph.BaseUri.ToString();
if (_util.HasGraph(graphName))
{
Console.WriteLine($"Clearing {graphName}");
_util.ClearGraph(graphName);
}
else
{
Console.WriteLine($"Creating {graphName}");
_util.CreateNamedGraph(graphName);
}
Console.WriteLine($"Adding to {graphName}");
virtuosoManager.SaveGraph(graph);
queries.Add($"ld_dir('{fileInfo.DirectoryName.Substring(2).Replace("\\", "/")}', '{fileInfo.Name}', '{graphName}');");
}
queries.Add($"rdf_loader_run ();");
queries.Add($"DELETE from DB.DBA.load_list where 1=1;");
foreach (var query in queries)
{
ExecuteCommand(
"powershell.exe",
$"\"\\\"{query}\\\" | {virtuosoISQLLocation}\""
);
}
Console.WriteLine("Done");
}
private static void ExecuteCommand(string fileName, string arguments)
{
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = fileName,
Arguments = arguments,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true,
};
using (var process = new Process
{
StartInfo = startInfo
})
{
process.Start();
string output = process.StandardOutput.ReadToEnd();
Console.WriteLine(output);
string errors = process.StandardError.ReadToEnd();
Console.WriteLine(errors);
}
}
private static IEnumerable<string> GetFiles(string path)
{
Queue<string> queue = new Queue<string>();
Loading