diff options
Diffstat (limited to 'app/models')
4 files changed, 32 insertions, 16 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 diff --git a/app/models/backends/terraform_aws/mini_environment_methods.rb b/app/models/backends/terraform_aws/mini_environment_methods.rb index 6049829..1885af7 100644 --- a/app/models/backends/terraform_aws/mini_environment_methods.rb +++ b/app/models/backends/terraform_aws/mini_environment_methods.rb @@ -89,10 +89,14 @@ module Backends::TerraformAws::MiniEnvironmentMethods end def within_terraform_working_directory(mini_environment, &block) - TerraformWorkingDirectory.new( - mini_environment_state_id(mini_environment), - 'terraform/aws/mini_environment' - ).within_working_directory(&block) + with_advisory_lock( + "aws_mini_environment_terraform_working_directory/#{mini_environment.id}" + ) do + TerraformWorkingDirectory.new( + mini_environment_state_id(mini_environment), + 'terraform/aws/mini_environment' + ).within_working_directory(&block) + end end def mini_environment_state_id(mini_environment) diff --git a/app/models/backends/terraform_libvirt/backend_methods.rb b/app/models/backends/terraform_libvirt/backend_methods.rb index 00ac432..06b89e4 100644 --- a/app/models/backends/terraform_libvirt/backend_methods.rb +++ b/app/models/backends/terraform_libvirt/backend_methods.rb @@ -55,10 +55,14 @@ module Backends::TerraformLibvirt::BackendMethods end def within_backend_terraform_working_directory(&block) - TerraformWorkingDirectory.new( - terraform_state_id, - 'terraform/libvirt/backend' - ).within_working_directory(&block) + with_advisory_lock( + "libvirt_backend_terraform_working_directory/#{id}" + ) do + TerraformWorkingDirectory.new( + terraform_state_id, + 'terraform/libvirt/backend' + ).within_working_directory(&block) + end end def backend_terraform_states 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) |