Skip to content

Commit 467b0df

Browse files
authored
Merge branch 'main' into ashleyvansp/capacityPolicy
2 parents 3207d8b + 8fed24a commit 467b0df

File tree

5 files changed

+25
-27
lines changed

5 files changed

+25
-27
lines changed

KustoSchemaTools/Changes/DatabaseChanges.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using Kusto.Cloud.Platform.Utils;
22
using Kusto.Language;
33
using KustoSchemaTools.Model;
4+
using KustoSchemaTools.Parser;
45
using Microsoft.Extensions.Logging;
56
using System.Data;
67
using System.Text;
@@ -173,7 +174,7 @@ private static List<IChange> GenerateEntityGroupChanges(Database oldState, Datab
173174

174175

175176

176-
private static List<IChange> GenerateScriptCompareChanges<T>(Database oldState, Database newState,Func<Database,Dictionary<string,T>> entitySelector,string entityName, ILogger log, Func<T?,T,bool> validator = null) where T: IKustoBaseEntity
177+
private static List<IChange> GenerateScriptCompareChanges<T>(Database oldState, Database newState,Func<Database,Dictionary<string,T>> entitySelector,string entityName, ILogger log, Func<T?,T,bool>? validator = null) where T: IKustoBaseEntity
177178
{
178179
var tmp = new List<IChange>();
179180
var existing = entitySelector(oldState) ?? new Dictionary<string, T>();
@@ -228,15 +229,15 @@ .. GenerateFollowerCachingChanges(oldState, newState, db => db.MaterializedViews
228229
var kind = newState.Permissions.ModificationKind.ToString().ToLower();
229230
result.Add(new BasicChange("FollowerDatabase", "PermissionsModificationKind", $" Change Permission-Modification-Kind from {oldState.Permissions.ModificationKind} to {newState.Permissions.ModificationKind}", new List<DatabaseScriptContainer>
230231
{
231-
new DatabaseScriptContainer(new DatabaseScript($".alter follower database {newState.DatabaseName} principals-modification-kind = {kind}", 0), "FollowerChangePolicyModificationKind")
232+
new DatabaseScriptContainer(new DatabaseScript($".alter follower database {newState.DatabaseName.BracketIfIdentifier()} principals-modification-kind = {kind}", 0), "FollowerChangePolicyModificationKind")
232233
}));
233234
}
234235
if (oldState.Cache.ModificationKind != newState.Cache.ModificationKind)
235236
{
236237
var kind = newState.Cache.ModificationKind.ToString().ToLower();
237238
result.Add(new BasicChange("FollowerDatabase", "ChangeModificationKind", $"Change Caching-Modification-Kind from {oldState.Cache.ModificationKind} to {newState.Cache.ModificationKind}", new List<DatabaseScriptContainer>
238239
{
239-
new DatabaseScriptContainer(new DatabaseScript($".alter follower database {newState.DatabaseName} caching-policies-modification-kind = {kind}", 0), "FollowerChangePolicyModificationKind")
240+
new DatabaseScriptContainer(new DatabaseScript($".alter follower database {newState.DatabaseName.BracketIfIdentifier()} caching-policies-modification-kind = {kind}", 0), "FollowerChangePolicyModificationKind")
240241
}));
241242
}
242243

@@ -246,14 +247,14 @@ .. GenerateFollowerCachingChanges(oldState, newState, db => db.MaterializedViews
246247
{
247248
result.Add(new BasicChange("FollowerDatabase", "ChangeDefaultHotCache", $"From {oldState.Cache.DefaultHotCache} to {newState.Cache.DefaultHotCache}", new List<DatabaseScriptContainer>
248249
{
249-
new DatabaseScriptContainer(new DatabaseScript($".alter follower database {newState.DatabaseName} policy caching hot = {newState.Cache.DefaultHotCache}", 0), "FollowerChangeDefaultHotCache")
250+
new DatabaseScriptContainer(new DatabaseScript($".alter follower database {newState.DatabaseName.BracketIfIdentifier()} policy caching hot = {newState.Cache.DefaultHotCache}", 0), "FollowerChangeDefaultHotCache")
250251
}));
251252
}
252253
else
253254
{
254255
result.Add(new BasicChange("FollowerDatabase", "DeleteDefaultHotCache", $"Remove Default Hot Cache", new List<DatabaseScriptContainer>
255256
{
256-
new DatabaseScriptContainer(new DatabaseScript($".delete follower database {newState.DatabaseName} policy caching", 0), "FollowerDeleteDefaultHotCache")
257+
new DatabaseScriptContainer(new DatabaseScript($".delete follower database {newState.DatabaseName.BracketIfIdentifier()} policy caching", 0), "FollowerDeleteDefaultHotCache")
257258
}));
258259
}
259260
}
@@ -281,7 +282,7 @@ private static List<IChange> GenerateFollowerCachingChanges(FollowerDatabase old
281282
new
282283
{
283284
Name = itm,
284-
Script = new DatabaseScriptContainer(new DatabaseScript($".delete follower database {newState.DatabaseName} {kustoType} {itm} policy caching", 0), $"FollowerDelete{type}CachingPolicies")
285+
Script = new DatabaseScriptContainer(new DatabaseScript($".delete follower database {newState.DatabaseName.BracketIfIdentifier()} {kustoType} {itm} policy caching", 0), $"FollowerDelete{type}CachingPolicies")
285286
})
286287
.ToList();
287288
var changedPolicyScripts = newEntities
@@ -292,7 +293,7 @@ private static List<IChange> GenerateFollowerCachingChanges(FollowerDatabase old
292293
Name = itm.Key,
293294
From = oldEntities.ContainsKey(itm.Key) ? oldEntities[itm.Key] : "default",
294295
To = itm.Value,
295-
Script = new DatabaseScriptContainer(new DatabaseScript($".alter follower database {newState.DatabaseName} {kustoType} {itm.Key} policy caching hot = {itm.Value}", 0), $"FollowerChange{type}CachingPolicies")
296+
Script = new DatabaseScriptContainer(new DatabaseScript($".alter follower database {newState.DatabaseName.BracketIfIdentifier()} {kustoType} {itm.Key} policy caching hot = {itm.Value}", 0), $"FollowerChange{type}CachingPolicies")
296297
})
297298
.ToList();
298299

KustoSchemaTools/Changes/EntityGroupChange.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ public class EntityGroupChange : BaseChange<List<Entity>>
1919

2020
private void Init()
2121
{
22-
var toEntityStrings = To.Select(t => $"cluster('{t.Cluster}').database('{t.Database}')").ToList();
23-
var fromEntityStrings = From?.Select(f => $"cluster('{f.Cluster}').database('{f.Database}')").ToList() ?? new List<string>();
22+
var toEntityStrings = To.Select(t => $"cluster('{t.Cluster}').database('{t.Database.BracketIfIdentifier()}')").ToList();
23+
var fromEntityStrings = From?.Select(f => $"cluster('{f.Cluster}').database('{f.Database.BracketIfIdentifier()}')").ToList() ?? new List<string>();
2424

2525
var added = toEntityStrings.Except(fromEntityStrings);
2626
var removed = fromEntityStrings.Except(toEntityStrings);

KustoSchemaTools/Changes/PermissionChange.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,20 @@ private void Init()
2424
if (To.Count > 0)
2525
{
2626
var x = string.Join(",", To.Select(a => "\"" + a.Id + "\""));
27-
toScript = new DatabaseScript { Text = $".set database {Db} {Entity.ToLower()} ({x})", Order = 0 };
27+
toScript = new DatabaseScript { Text = $".set database {Db.BracketIfIdentifier()} {Entity.ToLower()} ({x})", Order = 0 };
2828
}
2929
else
3030
{
31-
toScript = new DatabaseScript { Text = $".set database {Db} {Entity.ToLower()} none", Order = 0 };
31+
toScript = new DatabaseScript { Text = $".set database {Db.BracketIfIdentifier()} {Entity.ToLower()} none", Order = 0 };
3232
}
33-
if (To.Count > 0)
33+
if (From.Count > 0)
3434
{
3535
var x = string.Join(",", From.Select(a => "\"" + a.Id + "\""));
36-
fromScript = new DatabaseScript { Text = $".set database {Db} {Entity.ToLower()} ({x})", Order = 0 };
36+
fromScript = new DatabaseScript { Text = $".set database {Db.BracketIfIdentifier()} {Entity.ToLower()} ({x})", Order = 0 };
3737
}
3838
else
3939
{
40-
fromScript = new DatabaseScript { Text = $".set database {Db} {Entity.ToLower()} none", Order = 0 };
40+
fromScript = new DatabaseScript { Text = $".set database {Db.BracketIfIdentifier()} {Entity.ToLower()} none", Order = 0 };
4141
}
4242

4343

KustoSchemaTools/KustoSchemaHandler.cs

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,23 +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-
4239
foreach (var cluster in clusters.Connections)
4340
{
44-
Log.LogInformation($"Generating diff markdown for {Path.Combine(path, databaseName)} => {cluster}/{escapedDbName}");
41+
Log.LogInformation($"Generating diff markdown for {Path.Combine(path, databaseName)} => {cluster}/{databaseName}");
4542

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

5047
var comments = changes.Select(itm => itm.Comment).Where(itm => itm != null).ToList();
5148

5249

5350
isValid &= changes.All(itm => itm.Scripts.All(itm => itm.IsValid != false)) && comments.All(itm => itm.FailsRollout == false);
5451

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

5754
foreach (var comment in comments)
5855
{
@@ -111,8 +108,7 @@ public async Task Import(string path, string databaseName, bool includeColumns)
111108
var clustersFile = File.ReadAllText(Path.Combine(path, "clusters.yml"));
112109
var clusters = Serialization.YamlPascalCaseDeserializer.Deserialize<Clusters>(clustersFile);
113110

114-
var escapedDbName = databaseName.BracketIfIdentifier();
115-
var dbHandler = KustoDatabaseHandlerFactory.Create(clusters.Connections[0].Url, escapedDbName);
111+
var dbHandler = KustoDatabaseHandlerFactory.Create(clusters.Connections[0].Url, databaseName);
116112

117113
var db = await dbHandler.LoadAsync();
118114
if (includeColumns == false)
@@ -133,7 +129,6 @@ public async Task<ConcurrentDictionary<string,Exception>> Apply(string path, str
133129
var clustersFile = File.ReadAllText(Path.Combine(path, "clusters.yml"));
134130
var clusters = Serialization.YamlPascalCaseDeserializer.Deserialize<Clusters>(clustersFile);
135131

136-
var escapedDbName = databaseName.BracketIfIdentifier();
137132
var yamlHandler = YamlDatabaseHandlerFactory.Create(path, databaseName);
138133
var yamlDb = await yamlHandler.LoadAsync();
139134

@@ -143,10 +138,10 @@ await Parallel.ForEachAsync(clusters.Connections, async (cluster, token) =>
143138
{
144139
try
145140
{
146-
Log.LogInformation($"Generating and applying script for {Path.Combine(path, databaseName)} => {cluster}/{escapedDbName}");
147-
var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, escapedDbName);
141+
Log.LogInformation($"Generating and applying script for {Path.Combine(path, databaseName)} => {cluster}/{databaseName}");
142+
var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, databaseName);
148143
await dbHandler.WriteAsync(yamlDb);
149-
results.TryAdd(cluster.Url, null);
144+
results.TryAdd(cluster.Url, null!);
150145
}
151146
catch (Exception ex)
152147
{

KustoSchemaTools/Model/Database.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using KustoSchemaTools.Changes;
2+
using KustoSchemaTools.Parser;
23
using System.Diagnostics.CodeAnalysis;
34

45
namespace KustoSchemaTools.Model
@@ -36,5 +37,6 @@ public class Database
3637

3738
public Dictionary<string, FollowerDatabase> Followers { get; set; } = new Dictionary<string, FollowerDatabase>();
3839

40+
public string EscapedName => Name.BracketIfIdentifier();
3941
}
4042
}

0 commit comments

Comments
 (0)