Files
influx-cli/clients/bucket/list.go
Sam Arnold 9747d05ae1 refactor: expose generated code and client business logic to share with Kapacitor (#103)
* refactor: take clients out of internal

* refactor: move stdio to pkg

* Move internal/api to api

* refactor: final changes for Kapacitor to access shared functionality

* chore: regenerate mocks

* fix: bad automated refactor

* chore: extra formatting not caught by make fmt
2021-05-25 10:05:01 -04:00

50 lines
980 B
Go

package bucket
import (
"context"
"fmt"
"github.com/influxdata/influx-cli/v2/clients"
)
type BucketsListParams struct {
OrgID string
OrgName string
Name string
ID string
}
func (c Client) List(ctx context.Context, params *BucketsListParams) error {
if params.OrgID == "" && params.OrgName == "" && c.ActiveConfig.Org == "" {
return clients.ErrMustSpecifyOrg
}
req := c.GetBuckets(ctx)
if params.OrgID != "" {
req = req.OrgID(params.OrgID)
}
if params.OrgName != "" {
req = req.Org(params.OrgName)
}
if params.OrgID == "" && params.OrgName == "" {
req = req.Org(c.ActiveConfig.Org)
}
if params.Name != "" {
req = req.Name(params.Name)
}
if params.ID != "" {
req = req.Id(params.ID)
}
buckets, err := req.Execute()
if err != nil {
return fmt.Errorf("failed to list buckets: %w", err)
}
printOpts := bucketPrintOptions{}
if buckets.Buckets != nil {
printOpts.buckets = *buckets.Buckets
}
return c.printBuckets(printOpts)
}