-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix: approve_plan_automatically attribute fails for sub_environment #954
Changes from all commits
6604c6f
8cf54b9
152b03f
25ddb1a
5c3d871
b1d22bb
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -415,7 +415,8 @@ func setEnvironmentSchema(ctx context.Context, d *schema.ResourceData, environme | |
d.Set("output", string(environment.LatestDeploymentLog.Output)) | ||
} | ||
|
||
if environment.RequiresApproval != nil { | ||
// Don't update this value for workflow environments - this value should always be 'false'. | ||
if _, isWorkflow := d.GetOk("sub_environment_configuration"); !isWorkflow && environment.RequiresApproval != nil { | ||
d.Set("approve_plan_automatically", !*environment.RequiresApproval) | ||
} | ||
|
||
|
@@ -976,9 +977,20 @@ func getCreatePayload(d *schema.ResourceData, apiClient client.ApiClientInterfac | |
payload.AutoDeployOnPathChangesOnly = boolPtr(val.(bool)) | ||
} | ||
|
||
_, isWorkflow := d.GetOk("sub_environment_configuration") | ||
|
||
//lint:ignore SA1019 reason: https://github.com/hashicorp/terraform-plugin-sdk/issues/817 | ||
if val, exists := d.GetOkExists("approve_plan_automatically"); exists { | ||
payload.RequiresApproval = boolPtr(!val.(bool)) | ||
|
||
if isWorkflow && *payload.RequiresApproval { | ||
return client.EnvironmentCreate{}, diag.Errorf("approve_plan_automatically cannot be 'false' for workflows") | ||
} | ||
} | ||
|
||
// For 'Workflows', the 'root' environment should never require an approval. | ||
if isWorkflow { | ||
payload.RequiresApproval = boolPtr(false) | ||
} | ||
|
||
//lint:ignore SA1019 reason: https://github.com/hashicorp/terraform-plugin-sdk/issues/817 | ||
|
@@ -1179,6 +1191,11 @@ func getDeployPayload(d *schema.ResourceData, apiClient client.ApiClientInterfac | |
payload.BlueprintRevision = revision.(string) | ||
} | ||
|
||
// For 'Workflows', the 'root' environment should never require a user approval. | ||
if _, ok := d.GetOk("sub_environment_configuration"); ok { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this shouldn't be needed... There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. it seems that the backend will error if this is 'undefined'. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this could be overridden by a project policy, this is a good extra step anyways. |
||
payload.UserRequiresApproval = boolPtr(false) | ||
} | ||
|
||
if isRedeploy { | ||
if revision, ok := d.GetOk("without_template_settings.0.revision"); ok { | ||
payload.BlueprintRevision = revision.(string) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't modify the schema for workflow environment...
generally this would not be required... however due to the change in line 1195 (which I believe is a backend issue) - I had to add this here.
(see my comment in line 1195).