[MM-49989] Pass a context.Context to Client4 methods (#22922)

* Migrate all method in model/client4.go to accept a context.Context

* Fix th.*Client

* Fix remaining issues

* Empty commit to triger CI

* Fix test

* Add cancellation test

* Test that returned error is context.Canceled

* Fix bad merge

* Update mmctl code

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Ben Schumacher
2023-06-06 23:29:29 +02:00
коммит произвёл GitHub
родитель 7116e9267a
Коммит 6c82605df0
140 изменённых файлов: 7516 добавлений и 7333 удалений

Просмотреть файл

@@ -4,6 +4,7 @@
package commands
import (
"context"
"errors"
"fmt"
"io"
@@ -132,7 +133,7 @@ func importListIncompleteCmdF(c client.Client, command *cobra.Command, args []st
userID = model.UploadNoUserID
}
uploads, _, err := c.GetUploadsForUser(userID)
uploads, _, err := c.GetUploadsForUser(context.TODO(), userID)
if err != nil {
return fmt.Errorf("failed to get uploads: %w", err)
}
@@ -155,7 +156,7 @@ func importListIncompleteCmdF(c client.Client, command *cobra.Command, args []st
}
func importListAvailableCmdF(c client.Client, command *cobra.Command, args []string) error {
imports, _, err := c.ListImports()
imports, _, err := c.ListImports(context.TODO())
if err != nil {
return fmt.Errorf("failed to list imports: %w", err)
}
@@ -194,7 +195,7 @@ func importUploadCmdF(c client.Client, command *cobra.Command, args []string) er
return errors.New("upload session ID is missing or invalid")
}
us, _, err = c.GetUpload(uploadID)
us, _, err = c.GetUpload(context.TODO(), uploadID)
if err != nil {
return fmt.Errorf("failed to get upload session: %w", err)
}
@@ -213,7 +214,7 @@ func importUploadCmdF(c client.Client, command *cobra.Command, args []string) er
userID = model.UploadNoUserID
}
us, _, err = c.CreateUpload(&model.UploadSession{
us, _, err = c.CreateUpload(context.TODO(), &model.UploadSession{
Filename: info.Name(),
FileSize: info.Size(),
Type: model.UploadTypeImport,
@@ -226,7 +227,7 @@ func importUploadCmdF(c client.Client, command *cobra.Command, args []string) er
printer.PrintT("Upload session successfully created, ID: {{.Id}} ", us)
}
finfo, _, err := c.UploadData(us.Id, file)
finfo, _, err := c.UploadData(context.TODO(), us.Id, file)
if err != nil {
return fmt.Errorf("failed to upload data: %w", err)
}
@@ -239,7 +240,7 @@ func importUploadCmdF(c client.Client, command *cobra.Command, args []string) er
func importProcessCmdF(c client.Client, command *cobra.Command, args []string) error {
importFile := args[0]
job, _, err := c.CreateJob(&model.Job{
job, _, err := c.CreateJob(context.TODO(), &model.Job{
Type: model.JobTypeImportProcess,
Data: map[string]string{
"import_file": importFile,
@@ -273,7 +274,7 @@ func printJob(job *model.Job) {
}
func importJobShowCmdF(c client.Client, command *cobra.Command, args []string) error {
job, _, err := c.GetJob(args[0])
job, _, err := c.GetJob(context.TODO(), args[0])
if err != nil {
return fmt.Errorf("failed to get import job: %w", err)
}
@@ -302,7 +303,7 @@ func jobListCmdF(c client.Client, command *cobra.Command, jobType string) error
}
for {
jobs, _, err := c.GetJobsByType(jobType, page, perPage)
jobs, _, err := c.GetJobsByType(context.TODO(), jobType, page, perPage)
if err != nil {
return fmt.Errorf("failed to get jobs: %w", err)
}
@@ -356,7 +357,9 @@ func importValidateCmdF(command *cobra.Command, args []string) error {
)
err := withClient(func(c client.Client, cmd *cobra.Command, args []string) error {
users, err := getPages(c.GetUsers, 250)
users, err := getPages(func(page, numPerPage int, etag string) ([]*model.User, *model.Response, error) {
return c.GetUsers(context.TODO(), page, numPerPage, etag)
}, 250)
if err != nil {
return err
}
@@ -369,7 +372,7 @@ func importValidateCmdF(command *cobra.Command, args []string) error {
}
teams, err := getPages(func(page, numPerPage int, etag string) ([]*model.Team, *model.Response, error) {
return c.GetAllTeams(etag, page, numPerPage)
return c.GetAllTeams(context.TODO(), etag, page, numPerPage)
}, 250)
if err != nil {
return err
@@ -380,14 +383,14 @@ func importValidateCmdF(command *cobra.Command, args []string) error {
serverTeams[team.Name] = team
publicChannels, err := getPages(func(page, numPerPage int, etag string) ([]*model.Channel, *model.Response, error) {
return c.GetPublicChannelsForTeam(team.Id, page, numPerPage, etag)
return c.GetPublicChannelsForTeam(context.TODO(), team.Id, page, numPerPage, etag)
}, 250)
if err != nil {
return err
}
privateChannels, err := getPages(func(page, numPerPage int, etag string) ([]*model.Channel, *model.Response, error) {
return c.GetPrivateChannelsForTeam(team.Id, page, numPerPage, etag)
return c.GetPrivateChannelsForTeam(context.TODO(), team.Id, page, numPerPage, etag)
}, 250)
if err != nil {
return err