Improve automatic NTFS ensure diagnostics
This commit is contained in:
@@ -425,6 +425,10 @@ namespace LiamWorkflowActivities
|
|||||||
if (!allowFolderEnsure && !allowSharePathEnsure && !allowTraverseEnsure)
|
if (!allowFolderEnsure && !allowSharePathEnsure && !allowTraverseEnsure)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
LogEntry(
|
||||||
|
$"Automatic NTFS ensure configured. PermissionGroups={allowFolderEnsure}, PermissionGroupsForShares={allowSharePathEnsure}, TraverseGroups={allowTraverseEnsure}, DataAreas={dataAreas.Count}, WhatIf={simulateOnly}",
|
||||||
|
LogLevels.Debug);
|
||||||
|
|
||||||
if (allowFolderEnsure || allowSharePathEnsure)
|
if (allowFolderEnsure || allowSharePathEnsure)
|
||||||
{
|
{
|
||||||
foreach (var ntfsArea in dataAreas
|
foreach (var ntfsArea in dataAreas
|
||||||
@@ -437,21 +441,31 @@ namespace LiamWorkflowActivities
|
|||||||
if (string.IsNullOrWhiteSpace(folderPath))
|
if (string.IsNullOrWhiteSpace(folderPath))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!Directory.Exists(folderPath))
|
var ensureTraverseInPermissionPhase = !allowTraverseEnsure && (ntfsArea is cLiamNtfsFolder || ntfsArea is cLiamNtfsShare);
|
||||||
|
LogEntry(
|
||||||
|
$"Automatic NTFS permission group ensure starting for '{folderPath}'. AllowSharePathEnsure={allowSharePathEnsure}, EnsureTraverseInPermissionPhase={ensureTraverseInPermissionPhase}, WhatIf={simulateOnly}",
|
||||||
|
LogLevels.Debug);
|
||||||
|
|
||||||
|
ResultToken ensureResult;
|
||||||
|
try
|
||||||
{
|
{
|
||||||
LogEntry($"Skipping automatic NTFS permission group ensure for '{folderPath}' because the directory does not exist.", LogLevels.Warning);
|
ensureResult = await ntfsProvider.EnsureMissingPermissionGroupsAsync(
|
||||||
|
folderPath,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
allowSharePathEnsure,
|
||||||
|
ensureTraverseInPermissionPhase,
|
||||||
|
simulateOnly);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LogException(ex);
|
||||||
|
LogEntry($"Automatic NTFS permission group ensure failed for '{folderPath}' with exception: {ex.Message}", LogLevels.Error);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var ensureResult = await ntfsProvider.EnsureMissingPermissionGroupsAsync(
|
|
||||||
folderPath,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
allowSharePathEnsure,
|
|
||||||
!allowTraverseEnsure && (ntfsArea is cLiamNtfsFolder || ntfsArea is cLiamNtfsShare),
|
|
||||||
simulateOnly);
|
|
||||||
if (ensureResult == null)
|
if (ensureResult == null)
|
||||||
{
|
{
|
||||||
var providerMessage = ntfsProvider.GetLastErrorMessage() ?? "Provider returned no result.";
|
var providerMessage = ntfsProvider.GetLastErrorMessage() ?? "Provider returned no result.";
|
||||||
@@ -477,7 +491,9 @@ namespace LiamWorkflowActivities
|
|||||||
}
|
}
|
||||||
|
|
||||||
LogAutomaticNtfsEnsureDebug(folderPath, ensureResult, "permission group ensure");
|
LogAutomaticNtfsEnsureDebug(folderPath, ensureResult, "permission group ensure");
|
||||||
|
LogEntry($"Automatic NTFS permission group resolve starting for '{folderPath}'.", LogLevels.Debug);
|
||||||
await ntfsArea.ResolvePermissionGroupsAsync(folderPath);
|
await ntfsArea.ResolvePermissionGroupsAsync(folderPath);
|
||||||
|
LogEntry($"Automatic NTFS permission group resolve finished for '{folderPath}'.", LogLevels.Debug);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -491,16 +507,25 @@ namespace LiamWorkflowActivities
|
|||||||
if (string.IsNullOrWhiteSpace(folderPath))
|
if (string.IsNullOrWhiteSpace(folderPath))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!Directory.Exists(folderPath))
|
LogEntry(
|
||||||
|
$"Automatic NTFS traverse group ensure starting for '{folderPath}'. WhatIf={simulateOnly}",
|
||||||
|
LogLevels.Debug);
|
||||||
|
|
||||||
|
ResultToken ensureResult;
|
||||||
|
try
|
||||||
{
|
{
|
||||||
LogEntry($"Skipping automatic NTFS traverse group ensure for '{folderPath}' because the directory does not exist.", LogLevels.Warning);
|
ensureResult = await ntfsProvider.EnsureTraverseGroupsAsync(
|
||||||
|
folderPath,
|
||||||
|
null,
|
||||||
|
simulateOnly);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LogException(ex);
|
||||||
|
LogEntry($"Automatic NTFS traverse group ensure failed for '{folderPath}' with exception: {ex.Message}", LogLevels.Error);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
var ensureResult = await ntfsProvider.EnsureTraverseGroupsAsync(
|
|
||||||
folderPath,
|
|
||||||
null,
|
|
||||||
simulateOnly);
|
|
||||||
if (ensureResult == null)
|
if (ensureResult == null)
|
||||||
{
|
{
|
||||||
var providerMessage = ntfsProvider.GetLastErrorMessage() ?? "Provider returned no result.";
|
var providerMessage = ntfsProvider.GetLastErrorMessage() ?? "Provider returned no result.";
|
||||||
|
|||||||
Reference in New Issue
Block a user