( workspaceBuilds []database.WorkspaceBuild, workspaces []database.Workspace, jobs []database.GetProvisionerJobsByIDsWithQueuePositionRow, workspaceResources []database.WorkspaceResource, resourceMetadata []database.WorkspaceResourceMetadatum, resourceAgents []database.WorkspaceAgent, agentApps []database.WorkspaceApp, agentAppStatuses []database.WorkspaceAppStatus, agentScripts []database.GetWorkspaceAgentScriptsByAgentIDsRow, agentLogSources []database.WorkspaceAgentLogSource, templateVersions []database.TemplateVersion, provisionerDaemons []database.GetEligibleProvisionerDaemonsByProvisionerJobIDsRow, )
| 1121 | } |
| 1122 | |
| 1123 | func (api *API) convertWorkspaceBuilds( |
| 1124 | workspaceBuilds []database.WorkspaceBuild, |
| 1125 | workspaces []database.Workspace, |
| 1126 | jobs []database.GetProvisionerJobsByIDsWithQueuePositionRow, |
| 1127 | workspaceResources []database.WorkspaceResource, |
| 1128 | resourceMetadata []database.WorkspaceResourceMetadatum, |
| 1129 | resourceAgents []database.WorkspaceAgent, |
| 1130 | agentApps []database.WorkspaceApp, |
| 1131 | agentAppStatuses []database.WorkspaceAppStatus, |
| 1132 | agentScripts []database.GetWorkspaceAgentScriptsByAgentIDsRow, |
| 1133 | agentLogSources []database.WorkspaceAgentLogSource, |
| 1134 | templateVersions []database.TemplateVersion, |
| 1135 | provisionerDaemons []database.GetEligibleProvisionerDaemonsByProvisionerJobIDsRow, |
| 1136 | ) ([]codersdk.WorkspaceBuild, error) { |
| 1137 | workspaceByID := map[uuid.UUID]database.Workspace{} |
| 1138 | for _, workspace := range workspaces { |
| 1139 | workspaceByID[workspace.ID] = workspace |
| 1140 | } |
| 1141 | jobByID := map[uuid.UUID]database.GetProvisionerJobsByIDsWithQueuePositionRow{} |
| 1142 | for _, job := range jobs { |
| 1143 | jobByID[job.ProvisionerJob.ID] = job |
| 1144 | } |
| 1145 | templateVersionByID := map[uuid.UUID]database.TemplateVersion{} |
| 1146 | for _, templateVersion := range templateVersions { |
| 1147 | templateVersionByID[templateVersion.ID] = templateVersion |
| 1148 | } |
| 1149 | |
| 1150 | // Should never be nil for API consistency |
| 1151 | apiBuilds := []codersdk.WorkspaceBuild{} |
| 1152 | for _, build := range workspaceBuilds { |
| 1153 | job, exists := jobByID[build.JobID] |
| 1154 | if !exists { |
| 1155 | return nil, xerrors.New("build job not found") |
| 1156 | } |
| 1157 | workspace, exists := workspaceByID[build.WorkspaceID] |
| 1158 | if !exists { |
| 1159 | return nil, xerrors.New("workspace not found") |
| 1160 | } |
| 1161 | templateVersion, exists := templateVersionByID[build.TemplateVersionID] |
| 1162 | if !exists { |
| 1163 | return nil, xerrors.New("template version not found") |
| 1164 | } |
| 1165 | |
| 1166 | apiBuild, err := api.convertWorkspaceBuild( |
| 1167 | build, |
| 1168 | workspace, |
| 1169 | job, |
| 1170 | workspaceResources, |
| 1171 | resourceMetadata, |
| 1172 | resourceAgents, |
| 1173 | agentApps, |
| 1174 | agentAppStatuses, |
| 1175 | agentScripts, |
| 1176 | agentLogSources, |
| 1177 | templateVersion, |
| 1178 | provisionerDaemons, |
| 1179 | ) |
| 1180 | if err != nil { |
no test coverage detected