Skip to content

Commit d252781

Browse files
authored
Merge pull request #129 from github/feature/follower_fix
skip cluster-scoped follower commands
2 parents 5b94c6d + 2b75969 commit d252781

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

KustoSchemaTools/Changes/DatabaseChanges.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,12 @@ private static List<IChange> GenerateScriptCompareChanges<T>(Database oldState,
217217

218218
public static List<IChange> GenerateFollowerChanges(FollowerDatabase oldState, FollowerDatabase newState, ILogger log)
219219
{
220+
if (!SupportsFollowerClusterCommands())
221+
{
222+
log.LogDebug("Skipping follower database changes because cluster-scoped follower commands cannot be executed in the current rollout context.");
223+
return [];
224+
}
225+
220226
List<IChange> result =
221227
[
222228
.. GenerateFollowerCachingChanges(oldState, newState, db => db.Tables, "Table", "table"),
@@ -341,6 +347,24 @@ private static List<IChange> GenerateFollowerCachingChanges(FollowerDatabase old
341347
return result;
342348
}
343349

350+
private static bool SupportsFollowerClusterCommands()
351+
{
352+
var disableFlag = Environment.GetEnvironmentVariable("DISABLE_FOLLOWER_COMMANDS");
353+
354+
if (disableFlag == null)
355+
{
356+
return true;
357+
}
358+
359+
var isDisabled = bool.TryParse(disableFlag, out var parsed)
360+
? parsed
361+
: string.Equals(disableFlag, "1", StringComparison.OrdinalIgnoreCase)
362+
|| string.Equals(disableFlag, "yes", StringComparison.OrdinalIgnoreCase)
363+
|| string.Equals(disableFlag, "true", StringComparison.OrdinalIgnoreCase);
364+
365+
return !isDisabled;
366+
}
367+
344368
private static void LogChangeResult(ILogger log, string entityKey, int scriptCount, bool alreadyExists)
345369
{
346370
var level = scriptCount > 0 ? LogLevel.Information : LogLevel.Debug;

0 commit comments

Comments
 (0)