aboutsummaryrefslogtreecommitdiff
path: root/app/models/backends/terraform_aws.rb
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2018-03-26 21:14:18 +0100
committerChristopher Baines <mail@cbaines.net>2018-04-03 21:57:39 +0100
commit037054d45200fc03576fc86be6dff39235c3d9d0 (patch)
tree4d0e080fc3ee716dec3966ddc7cf153a859dca34 /app/models/backends/terraform_aws.rb
parent0867e8beef3f964cfd42d4e86c0ddf468bc980c5 (diff)
downloadgovuk-mini-environment-admin-037054d45200fc03576fc86be6dff39235c3d9d0.tar
govuk-mini-environment-admin-037054d45200fc03576fc86be6dff39235c3d9d0.tar.gz
Refactor the backends
Add a with_terraform helper, which simplifies both backends.
Diffstat (limited to 'app/models/backends/terraform_aws.rb')
-rw-r--r--app/models/backends/terraform_aws.rb27
1 files changed, 4 insertions, 23 deletions
diff --git a/app/models/backends/terraform_aws.rb b/app/models/backends/terraform_aws.rb
index 7f908e8..ec4f7ab 100644
--- a/app/models/backends/terraform_aws.rb
+++ b/app/models/backends/terraform_aws.rb
@@ -35,21 +35,7 @@ class Backends::TerraformAws < ApplicationRecord
def start(mini_environment)
logger.info "Setting up #{mini_environment.name}"
- source = File.expand_path("terraform/libvirt")
- FileUtils.mkdir_p working_directory(mini_environment)
-
- Dir.chdir(working_directory(mini_environment)) do
- if Dir.empty?(".")
- RubyTerraform.init(
- backend: true,
- from_module: source,
- backend_config: {
- address: terraform_backend_address(mini_environment)
- },
- plugin_dir: plugin_dir
- )
- end
-
+ with_terraform(mini_environment, 'terraform/aws') do
RubyTerraform.apply(
vars: terraform_variables(mini_environment),
auto_approve: true
@@ -57,15 +43,10 @@ class Backends::TerraformAws < ApplicationRecord
end
end
- def destroy
- Dir.chdir('terraform/aws') do
+ def destroy(mini_environment)
+ with_terraform(mini_environment, 'terraform/aws') do
RubyTerraform.destroy(
- vars: {
- aws_region: aws_region,
- slug: @mini_environment.name.parameterize,
- ssh_public_key: ssh_public_key,
- start_command: @mini_environment.start_command
- },
+ vars: terraform_variables(mini_environment),
force: true
)
end