ps/Modules/Alkami.DevOps.Installation/Public/Update-Borg.ps1

46 lines
1.6 KiB
PowerShell
Raw Normal View History

2023-05-30 22:51:22 -07:00
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)"
}
}