72 lines
2.4 KiB
PowerShell
72 lines
2.4 KiB
PowerShell
|
function Update-PlatformElementInventory {
|
||
|
<#
|
||
|
.SYNOPSIS
|
||
|
Adds or Removes the Element name/versions in BoRG to reflect changes.
|
||
|
#>
|
||
|
[CmdletBinding()]
|
||
|
Param (
|
||
|
[Parameter(Mandatory = $false)]
|
||
|
[AllowNull()]
|
||
|
[object[]]$ElementsToAdd,
|
||
|
|
||
|
[Parameter(Mandatory = $false)]
|
||
|
[AllowNull()]
|
||
|
[object[]]$ElementsToRemove,
|
||
|
|
||
|
[Parameter(Mandatory = $true)]
|
||
|
[string]$EnvironmentTypeName,
|
||
|
|
||
|
[Parameter(Mandatory = $true)]
|
||
|
[string]$PlatformVersionName,
|
||
|
|
||
|
[Parameter(Mandatory = $true)]
|
||
|
[string]$ElementTierName,
|
||
|
|
||
|
[Parameter(Mandatory = $true)]
|
||
|
[string]$BorgUri,
|
||
|
|
||
|
[Parameter(Mandatory = $true)]
|
||
|
[string]$ApiKey
|
||
|
)
|
||
|
|
||
|
#Remove from BoRG
|
||
|
$deletePlatformElementInventory = New-Object System.Collections.ArrayList
|
||
|
|
||
|
foreach ($element in $ElementsToRemove) {
|
||
|
$delete = New-PlatformElementDetailPSObject `
|
||
|
-EnvironmentTypeName $EnvironmentTypeName `
|
||
|
-ElementName $element.Name
|
||
|
|
||
|
$deletePlatformElementInventory.Add($delete) | Out-Null
|
||
|
}
|
||
|
|
||
|
if ($deletePlatformElementInventory.Count -gt 0) {
|
||
|
Write-Host "Deleting [$($deletePlatformElementInventory.Count)] PlatformElementDetail items from BoRG"
|
||
|
(Remove-PlatformElementDetails -PlatformElementDetailArray $deletePlatformElementInventory.ToArray() -BorgUri $BorgUri -ApiKey $ApiKey) | Out-Null
|
||
|
} else {
|
||
|
Write-Host "No PlatformElementDetail items deleted in BoRG"
|
||
|
}
|
||
|
|
||
|
#Add/Update BoRG
|
||
|
$addPlatformElementInventory = New-Object System.Collections.ArrayList
|
||
|
|
||
|
foreach ($element in $ElementsToAdd) {
|
||
|
$detail = New-PlatformElementDetailPSObject `
|
||
|
-EnvironmentTypeName $EnvironmentTypeName `
|
||
|
-PlatformVersionName $PlatformVersionName `
|
||
|
-ElementTierName $ElementTierName `
|
||
|
-ElementName $element.Name `
|
||
|
-ElementVersionName $element.Version
|
||
|
|
||
|
$addPlatformElementInventory.Add($detail) | Out-Null
|
||
|
}
|
||
|
|
||
|
if ($addPlatformElementInventory.Count -gt 0) {
|
||
|
Write-Host "Adding/Updating [$($addPlatformElementInventory.Count)] PlatformElementDetail items in BoRG"
|
||
|
(New-PlatformElementDetails -PlatformElementDetailArray $addPlatformElementInventory.ToArray() -BorgUri $BorgUri -ApiKey $ApiKey) | Out-Null
|
||
|
} else {
|
||
|
Write-Host "No PlatformElementDetail items added to BoRG"
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|