fix: Use cliui.WorkspaceBuild to prevent cancel of builds jobs (#1255)

Build jobs cannot gracefully terminate because Terraform generally
cannot gracefully terminate.
This commit is contained in:
Kyle Carberry
2022-05-02 10:20:47 -05:00
committed by GitHub
parent 75343288ff
commit a79aa6418a
3 changed files with 3 additions and 41 deletions

View File

@ -361,18 +361,7 @@ func server() *cobra.Command {
return xerrors.Errorf("delete workspace: %w", err) return xerrors.Errorf("delete workspace: %w", err)
} }
err = cliui.ProvisionerJob(cmd.Context(), cmd.OutOrStdout(), cliui.ProvisionerJobOptions{ err = cliui.WorkspaceBuild(cmd.Context(), cmd.OutOrStdout(), client, build.ID, before)
Fetch: func() (codersdk.ProvisionerJob, error) {
build, err := client.WorkspaceBuild(cmd.Context(), build.ID)
return build.Job, err
},
Cancel: func() error {
return client.CancelWorkspaceBuild(cmd.Context(), build.ID)
},
Logs: func() (<-chan codersdk.ProvisionerJobLog, error) {
return client.WorkspaceBuildLogsAfter(cmd.Context(), build.ID, before)
},
})
if err != nil { if err != nil {
return xerrors.Errorf("delete workspace %s: %w", workspace.Name, err) return xerrors.Errorf("delete workspace %s: %w", workspace.Name, err)
} }

View File

@ -35,19 +35,7 @@ func workspaceStart() *cobra.Command {
if err != nil { if err != nil {
return err return err
} }
err = cliui.ProvisionerJob(cmd.Context(), cmd.OutOrStdout(), cliui.ProvisionerJobOptions{ return cliui.WorkspaceBuild(cmd.Context(), cmd.OutOrStdout(), client, build.ID, before)
Fetch: func() (codersdk.ProvisionerJob, error) {
build, err := client.WorkspaceBuild(cmd.Context(), build.ID)
return build.Job, err
},
Cancel: func() error {
return client.CancelWorkspaceBuild(cmd.Context(), build.ID)
},
Logs: func() (<-chan codersdk.ProvisionerJobLog, error) {
return client.WorkspaceBuildLogsAfter(cmd.Context(), build.ID, before)
},
})
return err
}, },
} }
} }

View File

@ -35,22 +35,7 @@ func workspaceStop() *cobra.Command {
if err != nil { if err != nil {
return err return err
} }
err = cliui.ProvisionerJob(cmd.Context(), cmd.OutOrStdout(), cliui.ProvisionerJobOptions{ return cliui.WorkspaceBuild(cmd.Context(), cmd.OutOrStdout(), client, build.ID, before)
Fetch: func() (codersdk.ProvisionerJob, error) {
build, err := client.WorkspaceBuild(cmd.Context(), build.ID)
return build.Job, err
},
Cancel: func() error {
return client.CancelWorkspaceBuild(cmd.Context(), build.ID)
},
Logs: func() (<-chan codersdk.ProvisionerJobLog, error) {
return client.WorkspaceBuildLogsAfter(cmd.Context(), build.ID, before)
},
})
if err != nil {
return err
}
return nil
}, },
} }
} }