Skip to content

Commit

Permalink
handled paginated results in datasources
Browse files Browse the repository at this point in the history
  • Loading branch information
akshay-sripriya committed Oct 22, 2024
1 parent 77f3d5a commit c662157
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 3 deletions.
9 changes: 9 additions & 0 deletions powerscale/helper/network_pool_helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,15 @@ func GetNetworkPools(ctx context.Context, client *client.Client, state models.Ne
}

networkPools, _, err := networkPoolParams.Execute()

for *networkPools.Resume != "" {
respAdd, _, errAdd := client.PscaleOpenAPIClient.NetworkApi.GetNetworkv12NetworkPools(context.Background()).Resume(*networkPools.Resume).Execute()
if errAdd != nil {
return networkPools, errAdd
}
networkPools.Resume = respAdd.Resume
networkPools.Pools = append(networkPools.Pools, respAdd.Pools...)
}
return networkPools, err
}

Expand Down
10 changes: 10 additions & 0 deletions powerscale/helper/network_rule_helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,16 @@ func ListNetworkRules(ctx context.Context, client *client.Client, filter *models
if err != nil {
return nil, err
}

for *ruleList.Resume != "" {
respAdd, _, errAdd := client.PscaleOpenAPIClient.NetworkApi.GetNetworkv3NetworkRules(context.Background()).Resume(*ruleList.Resume).Execute()
if errAdd != nil {
return nil, errAdd
}
ruleList.Resume = respAdd.Resume
ruleList.Rules = append(ruleList.Rules, respAdd.Rules...)
}

rules := ruleList.GetRules()

// filter rules by filter.Names
Expand Down
10 changes: 10 additions & 0 deletions powerscale/helper/ntp_server_helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ import (
func GetNtpServers(ctx context.Context, client *client.Client) (*powerscale.V3NtpServers, error) {
ntpServerParams := client.PscaleOpenAPIClient.ProtocolsApi.ListProtocolsv3NtpServers(ctx)
ntpServers, _, err := ntpServerParams.Execute()

for *ntpServers.Resume != "" {
respAdd, _, errAdd := client.PscaleOpenAPIClient.ProtocolsApi.ListProtocolsv3NtpServers(context.Background()).Resume(*ntpServers.Resume).Execute()
if errAdd != nil {
return ntpServers, errAdd
}
ntpServers.Resume = respAdd.Resume
ntpServers.Servers = append(ntpServers.Servers, respAdd.Servers...)
}

return ntpServers, err
}

Expand Down
15 changes: 13 additions & 2 deletions powerscale/helper/role_helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,12 @@ import (
"context"
powerscale "dell/powerscale-go-client"
"errors"
"terraform-provider-powerscale/client"
"terraform-provider-powerscale/powerscale/models"

"github.com/hashicorp/terraform-plugin-framework/attr"
"github.com/hashicorp/terraform-plugin-framework/types"
"github.com/hashicorp/terraform-plugin-framework/types/basetypes"
"terraform-provider-powerscale/client"
"terraform-provider-powerscale/powerscale/models"
)

// GetRoles Get a list of Roles.
Expand All @@ -37,6 +38,16 @@ func GetRoles(ctx context.Context, client *client.Client, state models.RoleDataS
}

roles, _, err := roleParams.Execute()

for *roles.Resume != "" {
respAdd, _, errAdd := client.PscaleOpenAPIClient.AuthApi.ListAuthv14AuthRoles(context.Background()).Resume(*roles.Resume).Execute()
if errAdd != nil {
return roles, errAdd
}
roles.Resume = respAdd.Resume
roles.Roles = append(roles.Roles, respAdd.Roles...)
}

return roles, err
}

Expand Down
8 changes: 8 additions & 0 deletions powerscale/helper/snapshot_helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@ import (
// GetAllSnapshots returns the full list of snapshots.
func GetAllSnapshots(ctx context.Context, client *client.Client) ([]powerscale.V1SnapshotSnapshotExtended, error) {
result, _, err := client.PscaleOpenAPIClient.SnapshotApi.ListSnapshotv1SnapshotSnapshots(ctx).Execute()
for *result.Resume != "" {
respAdd, _, errAdd := client.PscaleOpenAPIClient.SnapshotApi.ListSnapshotv1SnapshotSnapshots(context.Background()).Resume(*result.Resume).Execute()
if errAdd != nil {
return result.Snapshots, errAdd
}
result.Resume = respAdd.Resume
result.Snapshots = append(result.Snapshots, respAdd.Snapshots...)
}
return result.GetSnapshots(), err
}

Expand Down
11 changes: 10 additions & 1 deletion powerscale/helper/snapshot_schedule_helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,16 @@ func ListSnapshotSchedules(ctx context.Context, client *client.Client, ssFilter
if err != nil {
return nil, err
}
return snapshotSchedules.Schedules, nil
totalSs := snapshotSchedules.Schedules
for snapshotSchedules.Resume != nil {
resumeSs := client.PscaleOpenAPIClient.SnapshotApi.ListSnapshotv1SnapshotSchedules(ctx).Resume(*snapshotSchedules.Resume)
snapshotSchedules, _, err = resumeSs.Execute()
if err != nil {
return totalSs, err
}
totalSs = append(totalSs, snapshotSchedules.Schedules...)
}
return totalSs, nil
}

// ParseTimeStringToSeconds takes a string time value(in a specific format) and converts it to seconds.
Expand Down

0 comments on commit c662157

Please sign in to comment.