Skip to content

Commit 3e3e026

Browse files
authored
1 parent d4d44be commit 3e3e026

File tree

4 files changed

+44
-40
lines changed

4 files changed

+44
-40
lines changed

durablefunctionsmonitor.dotnetbackend/Common/DetailedOrchestrationStatus.cs

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -83,33 +83,35 @@ internal static async Task<DetailedOrchestrationStatus> CreateFrom(DurableOrches
8383

8484
internal static async Task<string> GetParentInstanceIdDirectlyFromTable(IDurableClient durableClient, string connEnvVariableName, string hubName, string instanceId)
8585
{
86-
// Checking if instanceId looks like a suborchestration
86+
var tableClient = await TableClient.GetTableClient(connEnvVariableName);
87+
IEnumerable<TableEntity> tableResult;
88+
89+
// Checking if instanceId looks like a suborchestration (old format)
8790
var match = SubOrchestrationIdRegex.Match(instanceId);
88-
if (!match.Success)
91+
if (match.Success)
8992
{
90-
return null;
91-
}
92-
93-
string parentExecutionId = match.Groups[1].Value;
93+
string parentExecutionId = match.Groups[1].Value;
9494

95-
var tableClient = await TableClient.GetTableClient(connEnvVariableName);
96-
string tableName = $"{durableClient.TaskHubName}Instances";
95+
var executionIdQuery = new TableQuery<TableEntity>().Where
96+
(
97+
TableQuery.GenerateFilterCondition("ExecutionId", QueryComparisons.Equal, parentExecutionId)
98+
);
9799

98-
var executionIdQuery = new TableQuery<TableEntity>().Where
99-
(
100-
TableQuery.GenerateFilterCondition("ExecutionId", QueryComparisons.Equal, parentExecutionId)
101-
);
102-
103-
var tableResult = await tableClient.GetAllAsync<TableEntity>(tableName, executionIdQuery);
100+
tableResult = await tableClient.GetAllAsync($"{durableClient.TaskHubName}Instances", executionIdQuery);
101+
}
102+
else
103+
{
104+
// Trying history table instead (new format)
104105

105-
var parentEntity = tableResult.SingleOrDefault();
106+
var executionIdQuery = new TableQuery<TableEntity>().Where
107+
(
108+
TableQuery.GenerateFilterCondition("InstanceId", QueryComparisons.Equal, instanceId)
109+
);
106110

107-
if (parentEntity == null)
108-
{
109-
return null;
111+
tableResult = await tableClient.GetAllAsync($"{durableClient.TaskHubName}History", executionIdQuery);
110112
}
111113

112-
return parentEntity.PartitionKey;
114+
return tableResult.FirstOrDefault()?.PartitionKey;
113115
}
114116

115117
private static readonly Regex SubOrchestrationIdRegex = new Regex(@"(.+):\d+$", RegexOptions.IgnoreCase | RegexOptions.Compiled);

durablefunctionsmonitor.dotnetbackend/Functions/ServeStatics.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ ILogger log
4141

4242
string root = Path.Join(context.FunctionAppDirectory, "DfmStatics");
4343

44-
var contentType = FileMap.FirstOrDefault((kv => path.StartsWith(kv[0])));
44+
var contentType = FileMap.FirstOrDefault(kv => path.StartsWith(kv[0]));
4545
if (contentType != null)
4646
{
4747
string fullPath = Path.Join(root, path);

durablefunctionsmonitor.dotnetisolated.core/Common/DetailedOrchestrationStatus.cs

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -83,33 +83,35 @@ internal static async Task<DetailedOrchestrationStatus> CreateFrom(
8383

8484
internal static async Task<string> GetParentInstanceIdDirectlyFromTable(DurableTaskClient durableClient, string connEnvVariableName, string hubName, string instanceId)
8585
{
86-
// Checking if instanceId looks like a suborchestration
86+
var tableClient = await TableClient.GetTableClient(connEnvVariableName);
87+
IEnumerable<TableEntity> tableResult;
88+
89+
// Checking if instanceId looks like a suborchestration (old format)
8790
var match = SubOrchestrationIdRegex.Match(instanceId);
88-
if (!match.Success)
91+
if (match.Success)
8992
{
90-
return null;
91-
}
93+
string parentExecutionId = match.Groups[1].Value;
9294

93-
string parentExecutionId = match.Groups[1].Value;
94-
95-
var tableClient = await TableClient.GetTableClient(connEnvVariableName);
96-
string tableName = $"{durableClient.Name}Instances";
95+
var executionIdQuery = new TableQuery<TableEntity>().Where
96+
(
97+
TableQuery.GenerateFilterCondition("ExecutionId", QueryComparisons.Equal, parentExecutionId)
98+
);
9799

98-
var executionIdQuery = new TableQuery<TableEntity>().Where
99-
(
100-
TableQuery.GenerateFilterCondition("ExecutionId", QueryComparisons.Equal, parentExecutionId)
101-
);
102-
103-
var tableResult = await tableClient.GetAllAsync(tableName, executionIdQuery);
100+
tableResult = await tableClient.GetAllAsync($"{durableClient.Name}Instances", executionIdQuery);
101+
}
102+
else
103+
{
104+
// Trying history table instead (new format)
104105

105-
var parentEntity = tableResult.SingleOrDefault();
106+
var executionIdQuery = new TableQuery<TableEntity>().Where
107+
(
108+
TableQuery.GenerateFilterCondition("InstanceId", QueryComparisons.Equal, instanceId)
109+
);
106110

107-
if (parentEntity == null)
108-
{
109-
return null;
111+
tableResult = await tableClient.GetAllAsync($"{durableClient.Name}History", executionIdQuery);
110112
}
111113

112-
return parentEntity.PartitionKey;
114+
return tableResult.FirstOrDefault()?.PartitionKey;
113115
}
114116

115117
private static readonly Regex SubOrchestrationIdRegex = new Regex(@"(.+):\d+$", RegexOptions.IgnoreCase | RegexOptions.Compiled);

durablefunctionsmonitor.dotnetisolated.core/Functions/ServeStatics.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ string p3
3535

3636
string root = Path.Join(Environment.CurrentDirectory, "DfmStatics");
3737

38-
var contentType = FileMap.FirstOrDefault((kv => path.StartsWith(kv[0])));
38+
var contentType = FileMap.FirstOrDefault(kv => path.StartsWith(kv[0]));
3939
if (contentType != null)
4040
{
4141
string fullPath = Path.Join(root, path);

0 commit comments

Comments
 (0)