(ctx plugin.ExecutionContext, logger log.Logger, url string)
| 47 | } |
| 48 | |
| 49 | func (c UploadCommand) upload(ctx plugin.ExecutionContext, logger log.Logger, url string) error { |
| 50 | uploadBar := visualization.NewProgressBar(logger) |
| 51 | defer uploadBar.Remove() |
| 52 | context, cancel := context.WithCancelCause(context.Background()) |
| 53 | request := c.createUploadRequest(ctx, url, uploadBar, cancel) |
| 54 | client := network.NewHttpClient(logger, c.httpClientSettings(ctx)) |
| 55 | response, err := client.SendWithContext(request, context) |
| 56 | if err != nil { |
| 57 | return err |
| 58 | } |
| 59 | defer func() { _ = response.Body.Close() }() |
| 60 | body, err := io.ReadAll(response.Body) |
| 61 | if err != nil { |
| 62 | return fmt.Errorf("Error reading response: %w", err) |
| 63 | } |
| 64 | if response.StatusCode != http.StatusCreated { |
| 65 | return fmt.Errorf("Orchestrator returned status code '%v' and body '%v'", response.StatusCode, string(body)) |
| 66 | } |
| 67 | return nil |
| 68 | } |
| 69 | |
| 70 | func (c UploadCommand) createUploadRequest(ctx plugin.ExecutionContext, url string, uploadBar *visualization.ProgressBar, cancel context.CancelCauseFunc) *network.HttpRequest { |
| 71 | file := ctx.Input |
no test coverage detected