()
| 604 | } |
| 605 | |
| 606 | func (r *RootCmd) scaletestCleanup() *serpent.Command { |
| 607 | var template string |
| 608 | cleanupStrategy := newScaletestCleanupStrategy() |
| 609 | cmd := &serpent.Command{ |
| 610 | Use: "cleanup", |
| 611 | Short: "Cleanup scaletest workspaces, then cleanup scaletest users.", |
| 612 | Long: "The strategy flags will apply to each stage of the cleanup process.", |
| 613 | Handler: func(inv *serpent.Invocation) error { |
| 614 | client, err := r.InitClient(inv) |
| 615 | if err != nil { |
| 616 | return err |
| 617 | } |
| 618 | |
| 619 | ctx := inv.Context() |
| 620 | |
| 621 | me, err := RequireAdmin(ctx, client) |
| 622 | if err != nil { |
| 623 | return err |
| 624 | } |
| 625 | |
| 626 | client.HTTPClient = &http.Client{ |
| 627 | Transport: &codersdk.HeaderTransport{ |
| 628 | Transport: http.DefaultTransport, |
| 629 | Header: map[string][]string{ |
| 630 | codersdk.BypassRatelimitHeader: {"true"}, |
| 631 | }, |
| 632 | }, |
| 633 | } |
| 634 | |
| 635 | if template != "" { |
| 636 | _, err := parseTemplate(ctx, client, me.OrganizationIDs, template) |
| 637 | if err != nil { |
| 638 | return xerrors.Errorf("parse template: %w", err) |
| 639 | } |
| 640 | } |
| 641 | |
| 642 | cliui.Infof(inv.Stdout, "Pausing prebuilds reconciler...") |
| 643 | setPrebuild := func(val bool) error { |
| 644 | return client.PutPrebuildsSettings(ctx, codersdk.PrebuildsSettings{ReconciliationPaused: val}) |
| 645 | } |
| 646 | if err = setPrebuild(true); err != nil { |
| 647 | return xerrors.Errorf("pause prebuilds reconciler: %w", err) |
| 648 | } |
| 649 | defer func() { |
| 650 | cliui.Infof(inv.Stdout, "Resuming prebuilds reconciler...") |
| 651 | if resumeErr := setPrebuild(false); resumeErr != nil { |
| 652 | cliui.Errorf(inv.Stderr, "Failed to resume prebuilds reconciler: %+v\n", resumeErr) |
| 653 | } |
| 654 | }() |
| 655 | |
| 656 | cliui.Infof(inv.Stdout, "Fetching scaletest prebuild workspaces...") |
| 657 | prebuildWorkspaces, err := getScaletestPrebuildWorkspaces(ctx, client, template) |
| 658 | if err != nil { |
| 659 | return err |
| 660 | } |
| 661 | |
| 662 | cliui.Errorf(inv.Stderr, "Found %d scaletest prebuild workspaces\n", len(prebuildWorkspaces)) |
| 663 | if len(prebuildWorkspaces) != 0 { |
no test coverage detected