Skip to content

Commit 5035c74

Browse files
borondyJefajers
andauthored
Added retry capability for pulling PIM resources (#900)
* Added retry capability * Update --------- Co-authored-by: Jesper Fajers <jesper@fajers.se>
1 parent c47f29e commit 5035c74

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

src/internal/functions/Get-AzOpsRoleEligibilityScheduleRequest.ps1

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,29 @@
2626

2727
# Process RoleEligibilitySchedule which is used to construct AzOpsRoleEligibilityScheduleRequest
2828
Write-AzOpsMessage -LogLevel Debug -LogString 'Get-AzOpsRoleEligibilityScheduleRequest.Processing' -LogStringValues $ScopeObject.Scope -Target $ScopeObject
29-
$roleEligibilitySchedules = Get-AzRoleEligibilitySchedule -Scope $ScopeObject.Scope -WarningAction SilentlyContinue | Where-Object {$_.Scope -eq $ScopeObject.Scope}
29+
try {
30+
$parameters = @{
31+
Scope = $ScopeObject.Scope
32+
}
33+
$roleEligibilitySchedules = Invoke-AzOpsScriptBlock -ArgumentList $parameters -ScriptBlock {
34+
Get-AzRoleEligibilitySchedule @parameters -WarningAction SilentlyContinue -ErrorAction Stop | Where-Object { $_.Scope -eq $parameters.Scope }
35+
} -RetryCount 3 -RetryWait 5 -RetryType Exponential -ErrorAction Stop
36+
}
37+
catch {
38+
Write-AzOpsMessage -LogLevel Warning -LogString 'Get-AzOpsRoleEligibilityScheduleRequest.Processing.Failed' -LogStringValues $_
39+
return
40+
}
3041
if ($roleEligibilitySchedules) {
3142
foreach ($roleEligibilitySchedule in $roleEligibilitySchedules) {
3243
# Process roleEligibilitySchedule together with RoleEligibilityScheduleRequest
44+
$parameters = @{
45+
Scope = $ScopeObject.Scope
46+
Name = $roleEligibilitySchedule.Name
47+
}
3348
$roleEligibilityScheduleRequest = $null
34-
$roleEligibilityScheduleRequest = Get-AzRoleEligibilityScheduleRequest -Scope $ScopeObject.Scope -Name $roleEligibilitySchedule.Name -ErrorAction SilentlyContinue
49+
$roleEligibilityScheduleRequest = Invoke-AzOpsScriptBlock -ArgumentList $parameters -ScriptBlock {
50+
Get-AzRoleEligibilityScheduleRequest @parameters -ErrorAction SilentlyContinue
51+
} -RetryCount 3 -RetryWait 5 -RetryType Exponential -ErrorAction SilentlyContinue
3552
if ($roleEligibilityScheduleRequest) {
3653
Write-AzOpsMessage -LogLevel Debug -LogString 'Get-AzOpsRoleEligibilityScheduleRequest.Assignment' -LogStringValues $roleEligibilitySchedule.Name -Target $ScopeObject
3754
# Construct AzOpsRoleEligibilityScheduleRequest by combining information from roleEligibilitySchedule and roleEligibilityScheduleRequest

src/localized/en-us/Strings.psd1

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@
132132
'Get-AzOpsRoleDefinition.Definition' = 'Processing object {0}' # $roleDefinition.id
133133

134134
'Get-AzOpsRoleEligibilityScheduleRequest.Processing' = 'Retrieving Privileged Identity Management RoleEligibilitySchedule at [{0}]' # $ScopeObject.Scope
135+
'Get-AzOpsRoleEligibilityScheduleRequest.Processing.Failed' = 'Failed retrieving Privileged Identity Management RoleEligibilitySchedule [{0}]' # $_
135136
'Get-AzOpsRoleEligibilityScheduleRequest.Processing.NotFound' = 'No RoleEligibilityScheduleRequest found at [{0}] for RoleEligibilitySchedule [{1}], creating template based on RoleEligibilitySchedule' # $ScopeObject.Scope, $roleEligibilitySchedule.Name
136137
'Get-AzOpsRoleEligibilityScheduleRequest.Assignment' = 'Found Privileged Identity Management RoleEligibilityScheduleRequest assignment [{0}]' # $roleEligibilitySchedule.Name
137138

0 commit comments

Comments
 (0)