From b7683ab8dcdeca10ff52d626a285edcf7c1db719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Mon, 1 Jul 2024 16:12:52 +0200 Subject: Remove context from struct, add ctx as first args to many functions --- container_iterator.go | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) (limited to 'container_iterator.go') diff --git a/container_iterator.go b/container_iterator.go index ef0a77c..9ff9be9 100644 --- a/container_iterator.go +++ b/container_iterator.go @@ -19,6 +19,7 @@ package schwift import ( + "context" "fmt" "time" ) @@ -86,8 +87,8 @@ func (i *ContainerIterator) getBase() *iteratorBase { // // This method offers maximal flexibility, but most users will prefer the // simpler interfaces offered by Collect() and Foreach(). -func (i *ContainerIterator) NextPage(limit int) ([]*Container, error) { - names, err := i.getBase().nextPage(limit) +func (i *ContainerIterator) NextPage(ctx context.Context, limit int) ([]*Container, error) { + names, err := i.getBase().nextPage(ctx, limit) if err != nil { return nil, err } @@ -100,7 +101,7 @@ func (i *ContainerIterator) NextPage(limit int) ([]*Container, error) { } // NextPageDetailed is like NextPage, but includes basic metadata. -func (i *ContainerIterator) NextPageDetailed(limit int) ([]ContainerInfo, error) { +func (i *ContainerIterator) NextPageDetailed(ctx context.Context, limit int) ([]ContainerInfo, error) { b := i.getBase() var document []struct { @@ -109,7 +110,7 @@ func (i *ContainerIterator) NextPageDetailed(limit int) ([]ContainerInfo, error) LastModifiedStr string `json:"last_modified"` Name string `json:"name"` } - err := b.nextPageDetailed(limit, &document) + err := b.nextPageDetailed(ctx, limit, &document) if err != nil { return nil, err } @@ -137,9 +138,9 @@ func (i *ContainerIterator) NextPageDetailed(limit int) ([]ContainerInfo, error) // Foreach lists the container names matching this iterator and calls the // callback once for every container. Iteration is aborted when a GET request fails, // or when the callback returns a non-nil error. -func (i *ContainerIterator) Foreach(callback func(*Container) error) error { +func (i *ContainerIterator) Foreach(ctx context.Context, callback func(*Container) error) error { for { - containers, err := i.NextPage(-1) + containers, err := i.NextPage(ctx, -1) if err != nil { return err } @@ -156,9 +157,9 @@ func (i *ContainerIterator) Foreach(callback func(*Container) error) error { } // ForeachDetailed is like Foreach, but includes basic metadata. -func (i *ContainerIterator) ForeachDetailed(callback func(ContainerInfo) error) error { +func (i *ContainerIterator) ForeachDetailed(ctx context.Context, callback func(ContainerInfo) error) error { for { - infos, err := i.NextPageDetailed(-1) + infos, err := i.NextPageDetailed(ctx, -1) if err != nil { return err } @@ -177,10 +178,10 @@ func (i *ContainerIterator) ForeachDetailed(callback func(ContainerInfo) error) // Collect lists all container names matching this iterator. For large sets of // containers that cannot be retrieved at once, Collect handles paging behind // the scenes. The return value is always the complete set of containers. -func (i *ContainerIterator) Collect() ([]*Container, error) { +func (i *ContainerIterator) Collect(ctx context.Context) ([]*Container, error) { var result []*Container for { - containers, err := i.NextPage(-1) + containers, err := i.NextPage(ctx, -1) if err != nil { return nil, err } @@ -192,10 +193,10 @@ func (i *ContainerIterator) Collect() ([]*Container, error) { } // CollectDetailed is like Collect, but includes basic metadata. -func (i *ContainerIterator) CollectDetailed() ([]ContainerInfo, error) { +func (i *ContainerIterator) CollectDetailed(ctx context.Context) ([]ContainerInfo, error) { var result []ContainerInfo for { - infos, err := i.NextPageDetailed(-1) + infos, err := i.NextPageDetailed(ctx, -1) if err != nil { return nil, err } -- cgit v1.2.3