diff options
author | Christopher Baines <mail@cbaines.net> | 2018-06-24 09:58:10 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2018-06-24 09:58:10 +0100 |
commit | 2530d1abf4cbfd8ae0743b42c6ced5b44bd453ce (patch) | |
tree | f6b8260c0c278137f81f70d426c21f26110e480e /app/models/backends/terraform_libvirt/mini_environment_methods.rb | |
parent | f5024ad542f221e13882cc0c01985625e45f0f7c (diff) | |
download | govuk-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_libvirt/mini_environment_methods.rb')
-rw-r--r-- | app/models/backends/terraform_libvirt/mini_environment_methods.rb | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/app/models/backends/terraform_libvirt/mini_environment_methods.rb b/app/models/backends/terraform_libvirt/mini_environment_methods.rb index 4ed8835..64781df 100644 --- a/app/models/backends/terraform_libvirt/mini_environment_methods.rb +++ b/app/models/backends/terraform_libvirt/mini_environment_methods.rb @@ -78,10 +78,14 @@ module Backends::TerraformLibvirt::MiniEnvironmentMethods end def within_terraform_working_directory(mini_environment, &block) - TerraformWorkingDirectory.new( - mini_environment_state_id(mini_environment), - 'terraform/libvirt/mini_environment' - ).within_working_directory(&block) + with_advisory_lock( + "libvirt_mini_environment_terraform_working_directory/#{mini_environment.id}" + ) do + TerraformWorkingDirectory.new( + mini_environment_state_id(mini_environment), + 'terraform/libvirt/mini_environment' + ).within_working_directory(&block) + end end def mini_environment_state_id(mini_environment) |