Skip to content

Commit 30c49fd

Browse files
authored
Merge pull request #454 from atsevan/ListPipelineSchedules_with_pagination
add pagination for ListPipelineSchedules
2 parents f821d59 + f17ed96 commit 30c49fd

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

gitlab/resource_gitlab_pipeline_schedule.go

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -83,21 +83,34 @@ func resourceGitlabPipelineScheduleRead(d *schema.ResourceData, meta interface{}
8383

8484
log.Printf("[DEBUG] read gitlab PipelineSchedule %s/%d", project, pipelineScheduleID)
8585

86-
pipelineSchedules, _, err := client.PipelineSchedules.ListPipelineSchedules(project, nil)
87-
if err != nil {
88-
return err
86+
opt := &gitlab.ListPipelineSchedulesOptions{
87+
Page: 1,
88+
PerPage: 20,
8989
}
90+
9091
found := false
91-
for _, pipelineSchedule := range pipelineSchedules {
92-
if pipelineSchedule.ID == pipelineScheduleID {
93-
d.Set("description", pipelineSchedule.Description)
94-
d.Set("ref", pipelineSchedule.Ref)
95-
d.Set("cron", pipelineSchedule.Cron)
96-
d.Set("cron_timezone", pipelineSchedule.CronTimezone)
97-
d.Set("active", pipelineSchedule.Active)
98-
found = true
92+
for {
93+
pipelineSchedules, resp, err := client.PipelineSchedules.ListPipelineSchedules(project, opt)
94+
if err != nil {
95+
return err
96+
}
97+
for _, pipelineSchedule := range pipelineSchedules {
98+
if pipelineSchedule.ID == pipelineScheduleID {
99+
d.Set("description", pipelineSchedule.Description)
100+
d.Set("ref", pipelineSchedule.Ref)
101+
d.Set("cron", pipelineSchedule.Cron)
102+
d.Set("cron_timezone", pipelineSchedule.CronTimezone)
103+
d.Set("active", pipelineSchedule.Active)
104+
found = true
105+
break
106+
}
107+
}
108+
109+
if found || resp.CurrentPage >= resp.TotalPages {
99110
break
100111
}
112+
113+
opt.Page = resp.NextPage
101114
}
102115
if !found {
103116
return errors.New(fmt.Sprintf("PipelineSchedule %d no longer exists in gitlab", pipelineScheduleID))

0 commit comments

Comments
 (0)