mirror of
https://github.com/coder/coder.git
synced 2025-07-13 21:36:50 +00:00
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:
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user