46 lines
1.6 KiB
PowerShell
46 lines
1.6 KiB
PowerShell
|
function Update-Borg{
|
||
|
<#
|
||
|
.SYNOPSIS
|
||
|
Update Borg with information about packages being installed. Utilized by Classify-Packages.
|
||
|
|
||
|
.PARAMETER BorgApiKey
|
||
|
API key for borg
|
||
|
.PARAMETER BorgUri
|
||
|
URI of the Borg API
|
||
|
.PARAMETER PackageMetadata
|
||
|
Object containing package information to be sent to Borg.
|
||
|
|
||
|
#>
|
||
|
[CmdletBinding()]
|
||
|
param(
|
||
|
[string]$BorgApiKey,
|
||
|
[string]$BorgUri,
|
||
|
[PSObject]$PackageMetadata
|
||
|
)
|
||
|
$borgElementsToAdd = Select-UniqueServerPackages @($PackageMetadata.WebPackagesToInstall, $PackageMetadata.AppPackagesToInstall, $PackageMetadata.MicPackagesToInstall)
|
||
|
$borgElementsToRemove = Select-UniqueServerPackages @($PackageMetadata.WebPackagesToUninstall, $PackageMetadata.AppPackagesToUninstall, $PackageMetadata.MicPackagesToUninstall)
|
||
|
|
||
|
try {
|
||
|
if (![string]::IsNullOrWhiteSpace($BorgUri)) {
|
||
|
Write-Host "Updating BoRG [$BorgUri] Inventory"
|
||
|
|
||
|
$splatParams = @{
|
||
|
ElementsToAdd = $borgElementsToAdd
|
||
|
ElementsToRemove = $borgElementsToRemove
|
||
|
EnvironmentTypeName = $PackageMetadata.EnvironmentLabel
|
||
|
PlatformVersionName = "Unspecified"
|
||
|
ElementTierName = "Unknown"
|
||
|
BorgUri = $BorgUri
|
||
|
ApiKey = $BorgApiKey
|
||
|
}
|
||
|
|
||
|
Update-PlatformElementInventory @splatParams
|
||
|
|
||
|
Write-Host "BoRG successfully updated."
|
||
|
} else {
|
||
|
Write-Error "BorgUri is not configured! Check deployment params in TC."
|
||
|
}
|
||
|
} catch {
|
||
|
Write-Error "An exception occurred while updating BoRG. Error: $($_.Exception.Message)"
|
||
|
}
|
||
|
}
|