Skip to content

Commit

Permalink
Issue #138 - Implement WriteError
Browse files Browse the repository at this point in the history
* Add-DSClientWinFsBackupSetItem: Implement WriteError during Operating System Detection
  • Loading branch information
McGlovin1337 committed Nov 2, 2021
1 parent cad24e2 commit f430523
Showing 1 changed file with 45 additions and 36 deletions.
81 changes: 45 additions & 36 deletions PSAsigraDSClient/AddDSClientWinFsBackupSetItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,42 +51,51 @@ protected override void DSClientProcessRecord()
{
// Check DS-Client is Windows
if (DSClientSessionInfo.OperatingSystem != "Windows")
throw new Exception("Windows FileSystem Backup Sets can only be created on a Windows DS-Client");

// Get the requested Backup Set from DS-Client
WriteVerbose($"Performing Action: Retrieve Backup Set with BackupSetId: {BackupSetId}");
BackupSet backupSet = DSClientSession.backup_set(BackupSetId);
string computer = backupSet.getComputerName();

// Create a Data Source Browser
DataSourceBrowser dataSourceBrowser = backupSet.dataBrowser();

// Create a List of Items
List<BackupSetItem> backupSetItems = new List<BackupSetItem>();

// Process any Exclusion Items
if (ExcludeItem != null)
backupSetItems.AddRange(ProcessExclusionItems(DSClientSessionInfo.OperatingSystem, dataSourceBrowser, computer, ExcludeItem, ExcludeSubDirs));

if (RegexExcludePattern != null)
backupSetItems.AddRange(ProcessRegexExclusionItems(dataSourceBrowser, computer, RegexExclusionPath, RegexMatchDirectory, RegexCaseInsensitive, RegexExcludePattern));

// Process any Inclusion Items
if (IncludeItem != null)
backupSetItems.AddRange(ProcessWin32FSInclusionItems(dataSourceBrowser, computer, IncludeItem, MaxGenerations, ExcludeAltDataStreams, ExcludePermissions, ExcludeSubDirs));

// Get the existing specified items and store in the list
backupSetItems.AddRange(backupSet.items());

// Strip any duplicates from the list, duplicates cause an error and wipes all the items from the Backup Set
backupSetItems = backupSetItems.Distinct(new BackupSetItemComparer()).ToList();

// Add all the items to the Backup Set
WriteVerbose("Performing Action: Add Items to Backup Set");
backupSet.setItems(backupSetItems.ToArray());

dataSourceBrowser.Dispose();
backupSet.Dispose();
{
ErrorRecord errorRecord = new ErrorRecord(
new PlatformNotSupportedException("Windows FileSystem Backup Sets can only be created on a Windows DS-Client"),
"PlatformNotSupportedException",
ErrorCategory.InvalidOperation,
null);
WriteError(errorRecord);
}
else
{
// Get the requested Backup Set from DS-Client
WriteVerbose($"Performing Action: Retrieve Backup Set with BackupSetId: {BackupSetId}");
BackupSet backupSet = DSClientSession.backup_set(BackupSetId);
string computer = backupSet.getComputerName();

// Create a Data Source Browser
DataSourceBrowser dataSourceBrowser = backupSet.dataBrowser();

// Create a List of Items
List<BackupSetItem> backupSetItems = new List<BackupSetItem>();

// Process any Exclusion Items
if (ExcludeItem != null)
backupSetItems.AddRange(ProcessExclusionItems(DSClientSessionInfo.OperatingSystem, dataSourceBrowser, computer, ExcludeItem, ExcludeSubDirs));

if (RegexExcludePattern != null)
backupSetItems.AddRange(ProcessRegexExclusionItems(dataSourceBrowser, computer, RegexExclusionPath, RegexMatchDirectory, RegexCaseInsensitive, RegexExcludePattern));

// Process any Inclusion Items
if (IncludeItem != null)
backupSetItems.AddRange(ProcessWin32FSInclusionItems(dataSourceBrowser, computer, IncludeItem, MaxGenerations, ExcludeAltDataStreams, ExcludePermissions, ExcludeSubDirs));

// Get the existing specified items and store in the list
backupSetItems.AddRange(backupSet.items());

// Strip any duplicates from the list, duplicates cause an error and wipes all the items from the Backup Set
backupSetItems = backupSetItems.Distinct(new BackupSetItemComparer()).ToList();

// Add all the items to the Backup Set
WriteVerbose("Performing Action: Add Items to Backup Set");
backupSet.setItems(backupSetItems.ToArray());

dataSourceBrowser.Dispose();
backupSet.Dispose();
}
}
}
}

0 comments on commit f430523

Please sign in to comment.