Skip to content

Commit

Permalink
fix pin active role assignment timeout
Browse files Browse the repository at this point in the history
  • Loading branch information
wuxu92 committed Aug 14, 2023
1 parent 87cd096 commit bb2b52b
Showing 1 changed file with 13 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -201,13 +201,18 @@ func (r PimActiveRoleAssignmentResource) Create() sdk.ResourceFunc {
return fmt.Errorf("generating uuid: %+v", err)
}

deadline, ok := ctx.Deadline()
if !ok {
return fmt.Errorf("internal error: context has no deadline")
}

requestId := roleassignmentschedulerequests.NewScopedRoleAssignmentScheduleRequestID(config.Scope, uuid)
stateConf := &pluginsdk.StateChangeConf{
Pending: []string{"Missing"},
Target: []string{"Created"},
Refresh: createActiveRoleAssignment(ctx, clientRequest, requestId, &payload),
MinTimeout: 30 * time.Second,
Timeout: 5 * time.Minute,
Timeout: time.Until(deadline),
}
if _, err = stateConf.WaitForStateContext(ctx); err != nil {
return fmt.Errorf("waiting for %s to be created: %+v", id, err)
Expand All @@ -219,7 +224,7 @@ func (r PimActiveRoleAssignmentResource) Create() sdk.ResourceFunc {
Target: []string{"Found"},
Refresh: waitForActiveRoleAssignment(ctx, clientInstances, config.Scope, config.PrincipalId, config.RoleDefinitionId, "Found"),
MinTimeout: 30 * time.Second,
Timeout: 5 * time.Minute,
Timeout: time.Until(deadline),
}

if _, err = stateConf.WaitForStateContext(ctx); err != nil {
Expand Down Expand Up @@ -341,13 +346,17 @@ func (PimActiveRoleAssignmentResource) Delete() sdk.ResourceFunc {
}
deleteId := roleassignmentschedulerequests.NewScopedRoleAssignmentScheduleRequestID(id.Scope, uuid)

deadline, ok := ctx.Deadline()
if !ok {
return fmt.Errorf("internal error: context has no deadline")
}
// wait for resource to deleted
stateConf := &pluginsdk.StateChangeConf{
Pending: []string{"Exist"},
Target: []string{"Deleted"},
Refresh: deleteActiveRoleAssignment(ctx, clientRequest, deleteId, &payload),
MinTimeout: 1 * time.Minute,
Timeout: 5 * time.Minute,
Timeout: time.Until(deadline),
}

if _, err = stateConf.WaitForStateContext(ctx); err != nil {
Expand All @@ -360,7 +369,7 @@ func (PimActiveRoleAssignmentResource) Delete() sdk.ResourceFunc {
Target: []string{"Missing"},
Refresh: waitForActiveRoleAssignment(ctx, clientInstances, id.Scope, id.PrincipalId, id.RoleDefinitionId, "Missing"),
MinTimeout: 30 * time.Second,
Timeout: 5 * time.Minute,
Timeout: time.Until(deadline),
}

if _, err = stateConf.WaitForStateContext(ctx); err != nil {
Expand Down

0 comments on commit bb2b52b

Please sign in to comment.