aboutsummaryrefslogtreecommitdiff
path: root/app/models/backends/terraform_aws/backend_methods.rb
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2018-06-24 09:58:10 +0100
committerChristopher Baines <mail@cbaines.net>2018-06-24 09:58:10 +0100
commit2530d1abf4cbfd8ae0743b42c6ced5b44bd453ce (patch)
treef6b8260c0c278137f81f70d426c21f26110e480e /app/models/backends/terraform_aws/backend_methods.rb
parentf5024ad542f221e13882cc0c01985625e45f0f7c (diff)
downloadgovuk-mini-environment-admin-2530d1abf4cbfd8ae0743b42c6ced5b44bd453ce.tar
govuk-mini-environment-admin-2530d1abf4cbfd8ae0743b42c6ced5b44bd453ce.tar.gz
Add locking around all Terraform actions
To prevent them conflicting. Terraform itself has a locking mechanism, which isn't being used, but this should be sufficient.
Diffstat (limited to 'app/models/backends/terraform_aws/backend_methods.rb')
-rw-r--r--app/models/backends/terraform_aws/backend_methods.rb12
1 files changed, 8 insertions, 4 deletions
diff --git a/app/models/backends/terraform_aws/backend_methods.rb b/app/models/backends/terraform_aws/backend_methods.rb
index 52875e6..7489325 100644
--- a/app/models/backends/terraform_aws/backend_methods.rb
+++ b/app/models/backends/terraform_aws/backend_methods.rb
@@ -84,10 +84,14 @@ module Backends::TerraformAws::BackendMethods
end
def within_backend_terraform_working_directory(&block)
- TerraformWorkingDirectory.new(
- terraform_state_id,
- 'terraform/aws/backend'
- ).within_working_directory(&block)
+ with_advisory_lock(
+ "aws_backend_terraform_working_directory/#{id}"
+ ) do
+ TerraformWorkingDirectory.new(
+ terraform_state_id,
+ 'terraform/aws/backend'
+ ).within_working_directory(&block)
+ end
end
def available_data_snapshots