func listDeployment(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) {
conn, err := connect(ctx, d)
if err != nil {
plugin.Logger(ctx).Error("vercel_deployment.listDeployment", "connection_error", err)
return nil, err
}
req := deployment.ListDeploymentsRequest{Limit: 10} // how many results per api gulp
postgresLimit := d.QueryContext.GetLimit() // the SQL limit
req.Until = time.Now().UnixMilli()
if d.Quals["created_at"] != nil {
for _, q := range d.Quals["created_at"].Quals {
postgresTimestamp := q.Value.GetTimestampValue().Seconds * 1000
q.Value.Value = &proto.QualValue_TimestampValue{TimestampValue: ×tamppb.Timestamp{Seconds: postgresTimestamp}}
switch q.Operator {
case ">":
req.Since = postgresTimestamp
case ">=":
req.Since = postgresTimestamp
case "=":
req.Since = postgresTimestamp
case "<":
req.Until = postgresTimestamp
case "<=":
req.Until = postgresTimestamp
}
}
}
total := 0
for {
res, err := conn.Deployment.List(req)
plugin.Logger(ctx).Debug("vercel_deployment.listDeployment outer loop", "prev", res.Pagination.Prev, "next", res.Pagination.Next, "postgresLimit", postgresLimit)
if err != nil {
plugin.Logger(ctx).Error("vercel_domain.listDeployment", "query_error", err)
return nil, err
}
for _, i := range res.Deployments {
d.StreamListItem(ctx, i)
total += 1
plugin.Logger(ctx).Debug("vercel_deployment.listDeployment inner loop", "total", total)
if int64(total) == postgresLimit {
plugin.Logger(ctx).Debug("vercel_deployment.listDeployment inner loop at postgresLimit, setting res.Pagination.Next to zero")
res.Pagination.Next = 0
}
}
if res.Pagination.Next == 0 {
plugin.Logger(ctx).Debug("vercel_deployment.listDeployment outer loop, res.Pagination.Next is zero, breaking out")
break
}
plugin.Logger(ctx).Debug("vercel_deployment.listDeployment outer loop, setting req.Until to res.Pagination.Next and continuing")
req.Until = res.Pagination.Next
}
return nil, nil
}
select * from vercel_deployment limit 23
vercel.connect: config="{f12KpUJeoZ67LHiP0dmdXi2F turbot}"
vercel_deployment.listDeployment outer loop: prev=1669086565685 next=1669048997844 postgresLimit=23
vercel_deployment.listDeployment inner loop: total=1
vercel_deployment.listDeployment inner loop: total=2
vercel_deployment.listDeployment inner loop: total=3
vercel_deployment.listDeployment inner loop: total=4
vercel_deployment.listDeployment inner loop: total=5
vercel_deployment.listDeployment inner loop: total=6
vercel_deployment.listDeployment inner loop: total=7
vercel_deployment.listDeployment inner loop: total=8
vercel_deployment.listDeployment inner loop: total=9
vercel_deployment.listDeployment inner loop: total=10
vercel_deployment.listDeployment outer loop, setting req.Until to res.Pagination.Next and continuing
vercel_deployment.listDeployment outer loop: prev=1669044783703 next=1669019699058 postgresLimit=23
vercel_deployment.listDeployment inner loop: total=11
vercel_deployment.listDeployment inner loop: total=12
vercel_deployment.listDeployment inner loop: total=13
vercel_deployment.listDeployment inner loop: total=14
vercel_deployment.listDeployment inner loop: total=15
vercel_deployment.listDeployment inner loop: total=16
vercel_deployment.listDeployment inner loop: total=17
vercel_deployment.listDeployment inner loop: total=18
vercel_deployment.listDeployment inner loop: total=19
vercel_deployment.listDeployment inner loop: total=20
vercel_deployment.listDeployment outer loop, setting req.Until to res.Pagination.Next and continuing
vercel_deployment.listDeployment outer loop: prev=1669012502845 next=1668789242175 postgresLimit=23
vercel_deployment.listDeployment inner loop: total=21
vercel_deployment.listDeployment inner loop: total=22
vercel_deployment.listDeployment inner loop: total=23
vercel_deployment.listDeployment inner loop at postgresLimit, setting res.Pagination.Next to zero
Plugin Execute complete (1669089358311)
vercel_deployment.listDeployment inner loop: total=24
vercel_deployment.listDeployment inner loop: total=25
vercel_deployment.listDeployment inner loop: total=26
vercel_deployment.listDeployment inner loop: total=27
vercel_deployment.listDeployment inner loop: total=28
vercel_deployment.listDeployment inner loop: total=29
vercel_deployment.listDeployment inner loop: total=30
vercel_deployment.listDeployment outer loop, res.Pagination.Next is zero, breaking out
func listDeployment(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (interface{}, error) {
conn, err := connect(ctx, d)
if err != nil {
plugin.Logger(ctx).Error("vercel_deployment.listDeployment", "connection_error", err)
return nil, err
}
req := deployment.ListDeploymentsRequest{Limit: 10} // how many results per api gulp
//postgresLimit := d.QueryContext.GetLimit() // the SQL limit
req.Until = time.Now().UnixMilli()
if d.Quals["created_at"] != nil {
for _, q := range d.Quals["created_at"].Quals {
postgresTimestamp := q.Value.GetTimestampValue().Seconds * 1000
q.Value.Value = &proto.QualValue_TimestampValue{TimestampValue: ×tamppb.Timestamp{Seconds: postgresTimestamp}}
switch q.Operator {
case ">":
req.Since = postgresTimestamp
case ">=":
req.Since = postgresTimestamp
case "=":
req.Since = postgresTimestamp
case "<":
req.Until = postgresTimestamp
case "<=":
req.Until = postgresTimestamp
}
}
}
count := 0
for {
res, err := conn.Deployment.List(req)
plugin.Logger(ctx).Debug("vercel_project.listProject outer loop", "pagination", res.Pagination)
if err != nil {
plugin.Logger(ctx).Error("vercel_domain.listDeployment", "query_error", err)
return nil, err
}
for _, i := range res.Deployments {
d.StreamListItem(ctx, i)
count++
plugin.Logger(ctx).Debug("vercel_list_deployment inner loop", "count", count)
}
if res.Pagination.Next == 0 {
plugin.Logger(ctx).Debug("vercel_project.listProject outer loop res.Pagination.Next is zero, breaking out")
break
}
plugin.Logger(ctx).Debug("vercel_project.listProject outer loop setting req.Until to res.Pagination.Next and continuing")
req.Until = res.Pagination.Next
}
return nil, nil
}
select * from vercel_deployment limit 23
vercel_project.listProject outer loop: pagination="{10 1669048997844 1669086565685}"
vercel_list_deployment inner loop: count=1
vercel_list_deployment inner loop: count=2
vercel_list_deployment inner loop: count=3
vercel_list_deployment inner loop: count=4
vercel_list_deployment inner loop: count=5
vercel_list_deployment inner loop: count=6
vercel_list_deployment inner loop: count=7
vercel_list_deployment inner loop: count=8
vercel_list_deployment inner loop: count=9
vercel_list_deployment inner loop: count=10
vercel_project.listProject outer loop setting req.Until to res.Pagination.Next and continuing
vercel_project.listProject outer loop: pagination="{10 1669019699058 1669044783703}"
vercel_list_deployment inner loop: count=11
vercel_list_deployment inner loop: count=12
vercel_list_deployment inner loop: count=13
vercel_list_deployment inner loop: count=14
vercel_list_deployment inner loop: count=15
vercel_list_deployment inner loop: count=16
vercel_list_deployment inner loop: count=17
vercel_list_deployment inner loop: count=18
vercel_list_deployment inner loop: count=19
vercel_list_deployment inner loop: count=20
vercel_project.listProject outer loop setting req.Until to res.Pagination.Next and continuing
vercel_project.listProject outer loop: pagination="{10 1668789242175 1669012502845}"
vercel_list_deployment inner loop: count=21
vercel_list_deployment inner loop: count=22
vercel_list_deployment inner loop: count=23
Plugin Execute complete (1669088751882)
vercel_list_deployment inner loop: count=24
vercel_list_deployment inner loop: count=25
vercel_list_deployment inner loop: count=26
vercel_list_deployment inner loop: count=27
vercel_list_deployment inner loop: count=28
vercel_list_deployment inner loop: count=29
vercel_list_deployment inner loop: count=30
vercel_project.listProject outer loop setting req.Until to res.Pagination.Next and continuing
...
vercel_project.listProject outer loop setting req.Until to res.Pagination.Next and continuing
vercel_project.listProject outer loop: pagination="{10 1617955905229 1617977412320}"
vercel_list_deployment inner loop: count=12471
vercel_list_deployment inner loop: count=12472
vercel_list_deployment inner loop: count=12473
vercel_list_deployment inner loop: count=12474
vercel_list_deployment inner loop: count=12475
vercel_list_deployment inner loop: count=12476
vercel_list_deployment inner loop: count=12477
vercel_list_deployment inner loop: count=12478
vercel_list_deployment inner loop: count=12479
vercel_list_deployment inner loop: count=12480
vercel_project.listProject outer loop setting req.Until to res.Pagination.Next and continuing
It ends here without ever reporting "res.Pagination.Next is zero, breaking out" -- because it never is zero. I don't understand why it stops at all.