Skip to content

Commit f699eef

Browse files
authored
Merge pull request #120 from github/bugfix/follower
Return default follower object if not found
2 parents 6823a19 + 8d67376 commit f699eef

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

KustoSchemaTools/Parser/KustoLoader/FollowerLoader.cs

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,15 @@ public class FollowerLoader
2828
public static FollowerDatabase LoadFollower(string databaseName, KustoClient client)
2929
{
3030
var follower = new FollowerDatabase { DatabaseName = databaseName };
31-
var metdaData = client.Client.ExecuteQuery(string.Format(FollowerMetadataQuery,databaseName)).As<FollowerMetadata>().First();
31+
// Execute the query and handle the case where no rows are returned (e.g., database is not a follower)
32+
var queryResult = client.Client.ExecuteQuery(string.Format(FollowerMetadataQuery, databaseName));
33+
var metdaData = queryResult.As<FollowerMetadata>().FirstOrDefault();
34+
35+
if (metdaData == null)
36+
{
37+
// No follower metadata found; return a default follower object (no changes will be generated)
38+
return follower;
39+
}
3240

3341
switch (metdaData.AuthorizedPrincipalsModificationKind)
3442
{
@@ -71,17 +79,17 @@ public static FollowerDatabase LoadFollower(string databaseName, KustoClient cli
7179

7280
public class FollowerMetadata
7381
{
74-
public string DatabaseName { get; set; }
75-
public string LeaderClusterMetadataPath { get; set; }
76-
public string CachingPolicyOverride { get; set; }
77-
public string AuthorizedPrincipalsOverride { get; set; }
78-
public string AuthorizedPrincipalsModificationKind { get; set; }
82+
public string? DatabaseName { get; set; }
83+
public string? LeaderClusterMetadataPath { get; set; }
84+
public string? CachingPolicyOverride { get; set; }
85+
public string? AuthorizedPrincipalsOverride { get; set; }
86+
public string? AuthorizedPrincipalsModificationKind { get; set; }
7987
public bool IsAutoPrefetchEnabled { get; set; }
80-
public string TableMetadataOverrides { get; set; }
81-
public string CachingPoliciesModificationKind { get; set; }
82-
public string ChildEntities { get; set; }
83-
public string OriginalDatabaseName { get; set; }
84-
public Dictionary<string,TimeSpan> CachingPolicies { get; set; }
88+
public string? TableMetadataOverrides { get; set; }
89+
public string? CachingPoliciesModificationKind { get; set; }
90+
public string? ChildEntities { get; set; }
91+
public string? OriginalDatabaseName { get; set; }
92+
public Dictionary<string,TimeSpan>? CachingPolicies { get; set; }
8593

8694
}
8795
}

0 commit comments

Comments
 (0)