Skip to content

Commit 1baef30

Browse files
author
Thomas Mahlberg
committed
Escape database names with -and multiline parameters
1 parent 19bab0e commit 1baef30

File tree

4 files changed

+17
-12
lines changed

4 files changed

+17
-12
lines changed

KustoSchemaTools/KustoSchemaHandler.cs

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,20 @@ public KustoSchemaHandler(ILogger<KustoSchemaHandler<T>> schemaHandlerLogger, Ya
3636
var yamlHandler = YamlDatabaseHandlerFactory.Create(path, databaseName);
3737
var yamlDb = await yamlHandler.LoadAsync();
3838

39+
var escapedDbName = databaseName.BracketIfIdentifier();
40+
41+
3942
foreach (var cluster in clusters.Connections)
4043
{
41-
Log.LogInformation($"Generating diff markdown for {Path.Combine(path, databaseName)} => {cluster}/{databaseName}");
44+
Log.LogInformation($"Generating diff markdown for {Path.Combine(path, databaseName)} => {cluster}/{escapedDbName}");
4245

43-
var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, databaseName);
46+
var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, escapedDbName);
4447
var kustoDb = await dbHandler.LoadAsync();
45-
var changes = DatabaseChanges.GenerateChanges(kustoDb, yamlDb, databaseName, Log);
48+
var changes = DatabaseChanges.GenerateChanges(kustoDb, yamlDb, escapedDbName, Log);
4649

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

49-
sb.AppendLine($"# {cluster.Name}/{databaseName} ({cluster.Url})");
52+
sb.AppendLine($"# {cluster.Name}/{escapedDbName} ({cluster.Url})");
5053

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

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

7780

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

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

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

101-
var dbHandler = KustoDatabaseHandlerFactory.Create(clusters.Connections[0].Url, databaseName);
104+
var escapedDbName = databaseName.BracketIfIdentifier();
105+
var dbHandler = KustoDatabaseHandlerFactory.Create(clusters.Connections[0].Url, escapedDbName);
102106

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

126+
var escapedDbName = databaseName.BracketIfIdentifier();
122127
var yamlHandler = YamlDatabaseHandlerFactory.Create(path, databaseName);
123128
var yamlDb = await yamlHandler.LoadAsync();
124129

@@ -128,8 +133,8 @@ await Parallel.ForEachAsync(clusters.Connections, async (cluster, token) =>
128133
{
129134
try
130135
{
131-
Log.LogInformation($"Generating and applying script for {Path.Combine(path, databaseName)} => {cluster}/{databaseName}");
132-
var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, databaseName);
136+
Log.LogInformation($"Generating and applying script for {Path.Combine(path, databaseName)} => {cluster}/{escapedDbName}");
137+
var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, escapedDbName);
133138
await dbHandler.WriteAsync(yamlDb);
134139
results.TryAdd(cluster.Url, null);
135140
}

KustoSchemaTools/Model/Function.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public List<DatabaseScriptContainer> CreateScripts(string name, bool isNew)
2222
{
2323
var properties = GetType().GetProperties()
2424
.Where(p => p.GetValue(this) != null && p.Name != "Body" && p.Name != "Parameters")
25-
.Select(p => $"{p.Name}=\"{p.GetValue(this)}\"");
25+
.Select(p => $"{p.Name}=```{p.GetValue(this)}```");
2626
var propertiesString = string.Join(", ", properties);
2727

2828
var parameters = Parameters;

KustoSchemaTools/Model/MaterializedView.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public List<DatabaseScriptContainer> CreateScripts(string name, bool isNew)
4242
.Where(p => p.GetValue(this) != null && excludedProperies.Contains(p.Name) == false)
4343
.Select(p => new {Name = p.Name, Value = p.GetValue(this) })
4444
.Where(p => !string.IsNullOrWhiteSpace(p.Value?.ToString()))
45-
.Select(p => $"{p.Name}=\"{p.Value}\""));
45+
.Select(p => $"{p.Name}=```{p.Value}```"));
4646

4747

4848
if (asyncSetup)

KustoSchemaTools/Model/Table.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public List<DatabaseScriptContainer> CreateScripts(string name, bool isNew)
3030
{
3131
var properties = string.Join(", ", GetType().GetProperties()
3232
.Where(p => p.GetValue(this) != null && (p.Name == "Folder" || p.Name == "DocString"))
33-
.Select(p => $"{p.Name}=\"{p.GetValue(this)}\""));
33+
.Select(p => $"{p.Name}=```{p.GetValue(this)}```"));
3434

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

0 commit comments

Comments
 (0)