From 7bc196dabd3186793880c6d833392e8d8da3d191 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sat, 23 Jun 2018 11:40:52 +0100 Subject: Add support for managing Terraform AWS backends from the show page --- app/models/backends/terraform_aws.rb | 3 +++ app/models/backends/terraform_aws/backend_methods.rb | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) (limited to 'app/models') diff --git a/app/models/backends/terraform_aws.rb b/app/models/backends/terraform_aws.rb index 4db7c51..d0655ee 100644 --- a/app/models/backends/terraform_aws.rb +++ b/app/models/backends/terraform_aws.rb @@ -39,6 +39,9 @@ require 'ruby_terraform' class Backends::TerraformAws < ApplicationRecord + include MiniEnvironmentMethods + include BackendMethods + has_many :mini_environments, as: :backend self.table_name = 'terraform_aws_backends' diff --git a/app/models/backends/terraform_aws/backend_methods.rb b/app/models/backends/terraform_aws/backend_methods.rb index 726494c..8c867d9 100644 --- a/app/models/backends/terraform_aws/backend_methods.rb +++ b/app/models/backends/terraform_aws/backend_methods.rb @@ -70,4 +70,24 @@ module Backends::TerraformAws::BackendMethods def available_data_snapshots GovukGuix::DataSnapshot.where(backend: self) end + + def backend_terraform_states + TerraformState.where( + state_id: terraform_state_id + ) + end + + def status + latest_terraform_state = backend_terraform_states.order(:id).last + + running = ( + latest_terraform_state && + (latest_terraform_state.output_value('backend_up') == 'true') + ) + + { + running: running, + updated_at: latest_terraform_state.try(:created_at) + } + end end -- cgit v1.2.3