Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 14 additions & 9 deletions KustoSchemaTools/KustoSchemaHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,17 +36,20 @@ public KustoSchemaHandler(ILogger<KustoSchemaHandler<T>> schemaHandlerLogger, Ya
var yamlHandler = YamlDatabaseHandlerFactory.Create(path, databaseName);
var yamlDb = await yamlHandler.LoadAsync();

var escapedDbName = databaseName.BracketIfIdentifier();


foreach (var cluster in clusters.Connections)
{
Log.LogInformation($"Generating diff markdown for {Path.Combine(path, databaseName)} => {cluster}/{databaseName}");
Log.LogInformation($"Generating diff markdown for {Path.Combine(path, databaseName)} => {cluster}/{escapedDbName}");

var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, databaseName);
var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, escapedDbName);
var kustoDb = await dbHandler.LoadAsync();
var changes = DatabaseChanges.GenerateChanges(kustoDb, yamlDb, databaseName, Log);
var changes = DatabaseChanges.GenerateChanges(kustoDb, yamlDb, escapedDbName, Log);

isValid &= changes.All(itm => itm.Scripts.All(itm => itm.IsValid != false));

sb.AppendLine($"# {cluster.Name}/{databaseName} ({cluster.Url})");
sb.AppendLine($"# {cluster.Name}/{escapedDbName} ({cluster.Url})");

if(changes.Count == 0)
{
Expand All @@ -72,7 +75,7 @@ public KustoSchemaHandler(ILogger<KustoSchemaHandler<T>> schemaHandlerLogger, Ya
foreach(var follower in yamlDb.Followers)
{

Log.LogInformation($"Generating diff markdown for {Path.Combine(path, databaseName)} => {follower.Key}/{databaseName}");
Log.LogInformation($"Generating diff markdown for {Path.Combine(path, databaseName)} => {follower.Key}/{follower.Value.DatabaseName}");


var followerClient = new KustoClient(follower.Key);
Expand All @@ -82,7 +85,7 @@ public KustoSchemaHandler(ILogger<KustoSchemaHandler<T>> schemaHandlerLogger, Ya

var changes = DatabaseChanges.GenerateFollowerChanges(oldModel, newModel, Log);

sb.AppendLine($"# Changes for follower database {follower.Key}/{databaseName}");
sb.AppendLine($"# Changes for follower database {follower.Key}/{follower.Value.DatabaseName}");
sb.AppendLine();
foreach (var change in changes)
{
Expand All @@ -98,7 +101,8 @@ public async Task Import(string path, string databaseName, bool includeColumns)
var clustersFile = File.ReadAllText(Path.Combine(path, "clusters.yml"));
var clusters = Serialization.YamlPascalCaseDeserializer.Deserialize<Clusters>(clustersFile);

var dbHandler = KustoDatabaseHandlerFactory.Create(clusters.Connections[0].Url, databaseName);
var escapedDbName = databaseName.BracketIfIdentifier();
var dbHandler = KustoDatabaseHandlerFactory.Create(clusters.Connections[0].Url, escapedDbName);

var db = await dbHandler.LoadAsync();
if (includeColumns == false)
Expand All @@ -119,6 +123,7 @@ public async Task<ConcurrentDictionary<string,Exception>> Apply(string path, str
var clustersFile = File.ReadAllText(Path.Combine(path, "clusters.yml"));
var clusters = Serialization.YamlPascalCaseDeserializer.Deserialize<Clusters>(clustersFile);

var escapedDbName = databaseName.BracketIfIdentifier();
var yamlHandler = YamlDatabaseHandlerFactory.Create(path, databaseName);
var yamlDb = await yamlHandler.LoadAsync();

Expand All @@ -128,8 +133,8 @@ await Parallel.ForEachAsync(clusters.Connections, async (cluster, token) =>
{
try
{
Log.LogInformation($"Generating and applying script for {Path.Combine(path, databaseName)} => {cluster}/{databaseName}");
var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, databaseName);
Log.LogInformation($"Generating and applying script for {Path.Combine(path, databaseName)} => {cluster}/{escapedDbName}");
var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, escapedDbName);
await dbHandler.WriteAsync(yamlDb);
results.TryAdd(cluster.Url, null);
}
Expand Down
2 changes: 1 addition & 1 deletion KustoSchemaTools/Model/Function.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public List<DatabaseScriptContainer> CreateScripts(string name, bool isNew)
{
var properties = GetType().GetProperties()
.Where(p => p.GetValue(this) != null && p.Name != "Body" && p.Name != "Parameters")
.Select(p => $"{p.Name}=\"{p.GetValue(this)}\"");
.Select(p => $"{p.Name}=```{p.GetValue(this)}```");
var propertiesString = string.Join(", ", properties);

var parameters = Parameters;
Expand Down
2 changes: 1 addition & 1 deletion KustoSchemaTools/Model/MaterializedView.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public List<DatabaseScriptContainer> CreateScripts(string name, bool isNew)
.Where(p => p.GetValue(this) != null && excludedProperies.Contains(p.Name) == false)
.Select(p => new {Name = p.Name, Value = p.GetValue(this) })
.Where(p => !string.IsNullOrWhiteSpace(p.Value?.ToString()))
.Select(p => $"{p.Name}=\"{p.Value}\""));
.Select(p => $"{p.Name}=```{p.Value}```"));


if (asyncSetup)
Expand Down
2 changes: 1 addition & 1 deletion KustoSchemaTools/Model/Table.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public List<DatabaseScriptContainer> CreateScripts(string name, bool isNew)
{
var properties = string.Join(", ", GetType().GetProperties()
.Where(p => p.GetValue(this) != null && (p.Name == "Folder" || p.Name == "DocString"))
.Select(p => $"{p.Name}=\"{p.GetValue(this)}\""));
.Select(p => $"{p.Name}=```{p.GetValue(this)}```"));

scripts.Add(new DatabaseScriptContainer("CreateMergeTable", 30, $".create-merge table {name} ({string.Join(", ", Columns.Select(c => $"{c.Key.BracketIfIdentifier()}:{c.Value}"))})"));
}
Expand Down