Skip to content

Commit ee8ea4f

Browse files
committed
update per comment
1 parent ca4eb6a commit ee8ea4f

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

internal/services/dataprotection/custompollers/data_protection_backup_instance_poller.go

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package custompollers
66
import (
77
"context"
88
"fmt"
9+
"slices"
910
"time"
1011

1112
"github.com/hashicorp/go-azure-helpers/lang/pointer"
@@ -16,16 +17,18 @@ import (
1617
var _ pollers.PollerType = &dataProtectionBackupInstancePoller{}
1718

1819
type dataProtectionBackupInstancePoller struct {
19-
client *backupinstanceresources.BackupInstanceResourcesClient
20-
id backupinstanceresources.BackupInstanceId
21-
targetState backupinstanceresources.CurrentProtectionState
20+
client *backupinstanceresources.BackupInstanceResourcesClient
21+
id backupinstanceresources.BackupInstanceId
22+
pendingStates []backupinstanceresources.CurrentProtectionState
23+
targetState backupinstanceresources.CurrentProtectionState
2224
}
2325

24-
func NewDataProtectionBackupInstancePoller(client *backupinstanceresources.BackupInstanceResourcesClient, id backupinstanceresources.BackupInstanceId, targetState backupinstanceresources.CurrentProtectionState) *dataProtectionBackupInstancePoller {
26+
func NewDataProtectionBackupInstancePoller(client *backupinstanceresources.BackupInstanceResourcesClient, id backupinstanceresources.BackupInstanceId, targetState backupinstanceresources.CurrentProtectionState, pendingStates []backupinstanceresources.CurrentProtectionState) *dataProtectionBackupInstancePoller {
2527
return &dataProtectionBackupInstancePoller{
26-
client: client,
27-
id: id,
28-
targetState: targetState,
28+
client: client,
29+
id: id,
30+
pendingStates: pendingStates,
31+
targetState: targetState,
2932
}
3033
}
3134

@@ -51,8 +54,12 @@ func (p dataProtectionBackupInstancePoller) Poll(ctx context.Context) (*pollers.
5154
}, nil
5255
}
5356

54-
return &pollers.PollResult{
55-
PollInterval: 1 * time.Minute,
56-
Status: pollers.PollingStatusInProgress,
57-
}, nil
57+
if slices.Contains(p.pendingStates, currentState) {
58+
return &pollers.PollResult{
59+
PollInterval: 1 * time.Minute,
60+
Status: pollers.PollingStatusInProgress,
61+
}, nil
62+
}
63+
64+
return nil, fmt.Errorf("waiting for %s to reach state `%s` but got unexpected state `%s`", p.id, string(p.targetState), string(currentState))
5865
}

internal/services/dataprotection/data_protection_backup_instance_data_lake_storage_resource.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,9 @@ func (r DataProtectionBackupInstanceDataLakeStorageResource) Create() sdk.Resour
166166
return fmt.Errorf("creating %s: %+v", id, err)
167167
}
168168

169-
pollerType := custompollers.NewDataProtectionBackupInstancePoller(client, id, backupinstanceresources.CurrentProtectionStateProtectionConfigured)
169+
pollerType := custompollers.NewDataProtectionBackupInstancePoller(client, id, backupinstanceresources.CurrentProtectionStateProtectionConfigured, []backupinstanceresources.CurrentProtectionState{
170+
backupinstanceresources.CurrentProtectionStateConfiguringProtection,
171+
})
170172
poller := pollers.NewPoller(pollerType, 1*time.Minute, pollers.DefaultNumberOfDroppedConnectionsToAllow)
171173
if err := poller.PollUntilDone(ctx); err != nil {
172174
return fmt.Errorf("waiting for %s to become available: %+v", id, err)
@@ -296,7 +298,9 @@ func (r DataProtectionBackupInstanceDataLakeStorageResource) Update() sdk.Resour
296298
return fmt.Errorf("updating %s: %+v", id, err)
297299
}
298300

299-
pollerType := custompollers.NewDataProtectionBackupInstancePoller(client, *id, backupinstanceresources.CurrentProtectionStateProtectionConfigured)
301+
pollerType := custompollers.NewDataProtectionBackupInstancePoller(client, *id, backupinstanceresources.CurrentProtectionStateProtectionConfigured, []backupinstanceresources.CurrentProtectionState{
302+
backupinstanceresources.CurrentProtectionStateUpdatingProtection,
303+
})
300304
poller := pollers.NewPoller(pollerType, 1*time.Minute, pollers.DefaultNumberOfDroppedConnectionsToAllow)
301305
if err := poller.PollUntilDone(ctx); err != nil {
302306
return fmt.Errorf("waiting for %s to become available: %+v", id, err)

0 commit comments

Comments
 (0)