Fall back to reading latest run without task_stages
Older versions of TFE will not allow "task_stages" as an include parameter. In this case, fall back to reading the Run without additional options.
This commit is contained in:
parent
391b9c497c
commit
aa0dda81b4
|
@ -324,12 +324,21 @@ in order to capture the filesystem context the remote workspace expects:
|
||||||
}
|
}
|
||||||
|
|
||||||
// Retrieve the run to get its current status.
|
// Retrieve the run to get its current status.
|
||||||
r, err = b.client.Runs.ReadWithOptions(stopCtx, r.ID, &tfe.RunReadOptions{
|
runID := r.ID
|
||||||
|
r, err = b.client.Runs.ReadWithOptions(stopCtx, runID, &tfe.RunReadOptions{
|
||||||
Include: "task_stages",
|
Include: "task_stages",
|
||||||
})
|
})
|
||||||
|
if err != nil {
|
||||||
|
// This error would be expected for older versions of TFE that do not allow
|
||||||
|
// fetching task_stages.
|
||||||
|
if strings.HasSuffix(err.Error(), "Invalid include parameter") {
|
||||||
|
r, err = b.client.Runs.Read(stopCtx, runID)
|
||||||
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return r, generalError("Failed to retrieve run", err)
|
return r, generalError("Failed to retrieve run", err)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// If the run is canceled or errored, we still continue to the
|
// If the run is canceled or errored, we still continue to the
|
||||||
// cost-estimation and policy check phases to ensure we render any
|
// cost-estimation and policy check phases to ensure we render any
|
||||||
|
@ -355,7 +364,7 @@ in order to capture the filesystem context the remote workspace expects:
|
||||||
|
|
||||||
// Await pre-apply run tasks
|
// Await pre-apply run tasks
|
||||||
if len(r.TaskStages) > 0 {
|
if len(r.TaskStages) > 0 {
|
||||||
context := &IntegrationContext{
|
integration := &IntegrationContext{
|
||||||
B: b,
|
B: b,
|
||||||
StopContext: stopCtx,
|
StopContext: stopCtx,
|
||||||
CancelContext: cancelCtx,
|
CancelContext: cancelCtx,
|
||||||
|
@ -364,7 +373,7 @@ in order to capture the filesystem context the remote workspace expects:
|
||||||
}
|
}
|
||||||
|
|
||||||
if stageID := getTaskStageIDByName(r.TaskStages, "pre_apply"); stageID != nil {
|
if stageID := getTaskStageIDByName(r.TaskStages, "pre_apply"); stageID != nil {
|
||||||
err = b.runTasks(context, context.BeginOutput("Run Tasks (pre-apply)"), *stageID)
|
err = b.runTasks(integration, integration.BeginOutput("Run Tasks (pre-apply)"), *stageID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return r, err
|
return r, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue