@@ -585,6 +585,31 @@ if (Check-Scope -Scope $scope -RequiredScope 'Runbooks') {
585
585
- Location $runbook.Location
586
586
$importingRunbooks.Add ($runbook ) | Out-Null
587
587
}
588
+
589
+ # --remove all runbooks that have different RuntimeEnvironment:
590
+ # 1. Get a list of currently installed runtimes:
591
+ $installedRunbooks = Get-AutoObject - objectType Runbooks
592
+
593
+ # 2.Comparing with importingRunbooks list and in case different RuntimeEnvironment then add to list for remove:
594
+ $runbooksToRemoveDueDifferentEnvironment = @ ()
595
+ foreach ($installedRunbook in $installedRunbooks ) {
596
+
597
+ $runbookToCheck = $importingRunbooks | Where-Object { $_.Name -in $installedRunbook.Name }
598
+ if ($null -ne $runbookToCheck ) {
599
+ if ($runbookToCheck.RuntimeEnvironment -ne $installedRunbook.RuntimeEnvironment ) {
600
+ $runbooksToRemoveDueDifferentEnvironment.Add ($runbookToCheck )
601
+ }
602
+ }
603
+ }
604
+
605
+ foreach ($runbook in $runbooksToRemoveDueDifferentEnvironment )
606
+ {
607
+ " Removing $ ( $runbook.Name ) for runtime $ ( $runtimeEnvironment.Name ) that is different to importing version."
608
+ # TODO Remove-AutoObject -Name $runbook.Name -objectType Runbooks | Out-Null
609
+ }
610
+
611
+ # --
612
+
588
613
# wait for runbook import completion
589
614
if ($importingRunbooks.Count -gt 0 ) {
590
615
' Waiting for import of runbooks'
@@ -596,8 +621,10 @@ if (Check-Scope -Scope $scope -RequiredScope 'Runbooks') {
596
621
Write-Error " Some runbooks failed to import"
597
622
}
598
623
}
624
+
599
625
if ($fullSync ) {
600
626
$allRunbooks = Get-AutoObject - objectType Runbooks
627
+ # if runbook from definition is not on server then delete:
601
628
$runbooksToRemove = $allRunbooks | Where-Object { $_.Name -notin $definitions.Name }
602
629
foreach ($runbook in $runbooksToRemove )
603
630
{
0 commit comments