@@ -39,28 +39,39 @@ func dataSourcePagerDutyServiceRead(d *schema.ResourceData, meta interface{}) er
3939
4040 o := & pagerduty.ListServicesOptions {
4141 Query : searchName ,
42+ Limit : 100 ,
4243 }
4344
4445 return resource .Retry (5 * time .Minute , func () * resource.RetryError {
45- resp , _ , err := client .Services .List (o )
46- if err != nil {
47- if isErrCode (err , 429 ) {
48- // Delaying retry by 30s as recommended by PagerDuty
49- // https://developer.pagerduty.com/docs/rest-api-v2/rate-limiting/#what-are-possible-workarounds-to-the-events-api-rate-limit
50- time .Sleep (30 * time .Second )
51- return resource .RetryableError (err )
52- }
46+ var found * pagerduty.Service
5347
54- return resource .NonRetryableError (err )
55- }
48+ for {
49+ resp , _ , err := client .Services .List (o )
50+ if err != nil {
51+ if isErrCode (err , 429 ) {
52+ // Delaying retry by 30s as recommended by PagerDuty
53+ // https://developer.pagerduty.com/docs/rest-api-v2/rate-limiting/#what-are-possible-workarounds-to-the-events-api-rate-limit
54+ time .Sleep (30 * time .Second )
55+ return resource .RetryableError (err )
56+ }
5657
57- var found * pagerduty.Service
58+ return resource .NonRetryableError (err )
59+ }
5860
59- for _ , service := range resp .Services {
60- if service .Name == searchName {
61- found = service
61+ for _ , service := range resp .Services {
62+ if service .Name == searchName {
63+ found = service
64+ break
65+ }
66+ }
67+
68+ if found != nil {
69+ break
70+ }
71+ if ! resp .More {
6272 break
6373 }
74+ o .Offset += 100
6475 }
6576
6677 if found == nil {
0 commit comments