MCPcopy Index your code
hub / github.com/coder/coder / getScaletestWorkspaces

Function getScaletestWorkspaces

cli/exp_scaletest.go:2216–2266  ·  view source on GitHub ↗
(ctx context.Context, client *codersdk.Client, owner, template string)

Source from the content-addressed store, hash-verified

2214}
2215
2216func getScaletestWorkspaces(ctx context.Context, client *codersdk.Client, owner, template string) ([]codersdk.Workspace, int, error) {
2217 var (
2218 pageNumber = 0
2219 limit = 100
2220 workspaces []codersdk.Workspace
2221 skipped int
2222 )
2223
2224 me, err := client.User(ctx, codersdk.Me)
2225 if err != nil {
2226 return nil, 0, xerrors.Errorf("check logged-in user")
2227 }
2228
2229 dv, err := client.DeploymentConfig(ctx)
2230 if err != nil {
2231 return nil, 0, xerrors.Errorf("fetch deployment config: %w", err)
2232 }
2233 noOwnerAccess := dv.Values != nil && dv.Values.DisableOwnerWorkspaceExec.Value()
2234
2235 for {
2236 page, err := client.Workspaces(ctx, codersdk.WorkspaceFilter{
2237 Name: "scaletest-",
2238 Template: template,
2239 Owner: owner,
2240 Offset: pageNumber * limit,
2241 Limit: limit,
2242 })
2243 if err != nil {
2244 return nil, 0, xerrors.Errorf("fetch scaletest workspaces page %d: %w", pageNumber, err)
2245 }
2246
2247 pageNumber++
2248 if len(page.Workspaces) == 0 {
2249 break
2250 }
2251
2252 pageWorkspaces := make([]codersdk.Workspace, 0, len(page.Workspaces))
2253 for _, w := range page.Workspaces {
2254 if !loadtestutil.IsScaleTestWorkspace(w.Name, w.OwnerName) {
2255 continue
2256 }
2257 if noOwnerAccess && w.OwnerID != me.ID {
2258 skipped++
2259 continue
2260 }
2261 pageWorkspaces = append(pageWorkspaces, w)
2262 }
2263 workspaces = append(workspaces, pageWorkspaces...)
2264 }
2265 return workspaces, skipped, nil
2266}
2267
2268func getScaletestUsers(ctx context.Context, client *codersdk.Client) ([]codersdk.User, error) {
2269 var (

Callers 2

getTargetedWorkspacesMethod · 0.85
scaletestCleanupMethod · 0.85

Calls 6

IsScaleTestWorkspaceFunction · 0.92
DeploymentConfigMethod · 0.80
WorkspacesMethod · 0.80
UserMethod · 0.65
ErrorfMethod · 0.45
ValueMethod · 0.45

Tested by

no test coverage detected