(r *http.Request, task database.Task)
| 869 | } |
| 870 | |
| 871 | func (api *API) fetchLiveTaskLogs(r *http.Request, task database.Task) (codersdk.TaskLogsResponse, error) { |
| 872 | var out codersdk.TaskLogsResponse |
| 873 | err := api.authAndDoWithTaskAppClient(r, task, func(ctx context.Context, client *http.Client, appURL *url.URL) error { |
| 874 | agentAPIClient, err := agentapisdk.NewClient(appURL.String(), agentapisdk.WithHTTPClient(client)) |
| 875 | if err != nil { |
| 876 | return httperror.NewResponseError(http.StatusBadGateway, codersdk.Response{ |
| 877 | Message: "Failed to create agentapi client.", |
| 878 | Detail: err.Error(), |
| 879 | }) |
| 880 | } |
| 881 | |
| 882 | messagesResp, err := agentAPIClient.GetMessages(ctx) |
| 883 | if err != nil { |
| 884 | return httperror.NewResponseError(http.StatusBadGateway, codersdk.Response{ |
| 885 | Message: "Failed to get messages from task app.", |
| 886 | Detail: err.Error(), |
| 887 | }) |
| 888 | } |
| 889 | |
| 890 | logs, err := convertAgentAPIMessagesToLogEntries(messagesResp.Messages) |
| 891 | if err != nil { |
| 892 | return httperror.NewResponseError(http.StatusBadGateway, codersdk.Response{ |
| 893 | Message: "Invalid task app response.", |
| 894 | Detail: err.Error(), |
| 895 | }) |
| 896 | } |
| 897 | |
| 898 | out = codersdk.TaskLogsResponse{ |
| 899 | Logs: logs, |
| 900 | } |
| 901 | return nil |
| 902 | }) |
| 903 | return out, err |
| 904 | } |
| 905 | |
| 906 | func (api *API) fetchSnapshotTaskLogs(ctx context.Context, taskID uuid.UUID) (codersdk.TaskLogsResponse, error) { |
| 907 | snapshot, err := api.Database.GetTaskSnapshot(ctx, taskID) |
no test coverage detected