From 05df9f91e9bdf39b190710ef5d80162d03dd52c5 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sat, 23 Jun 2018 11:16:26 +0100 Subject: Support managing the libvirt backend from the show page --- .../backends/terraform_libvirt/backend_methods.rb | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'app/models') diff --git a/app/models/backends/terraform_libvirt/backend_methods.rb b/app/models/backends/terraform_libvirt/backend_methods.rb index 7c3c47d..7595611 100644 --- a/app/models/backends/terraform_libvirt/backend_methods.rb +++ b/app/models/backends/terraform_libvirt/backend_methods.rb @@ -33,4 +33,39 @@ module Backends::TerraformLibvirt::BackendMethods ) end end + + def destroy_backend + TerraformWorkingDirectory.new( + terraform_state_id, + 'terraform/libvirt/backend' + ).within_working_directory do + RubyTerraform.destroy( + vars: { + uri: uri, + domain: domain + }, + force: true + ) + end + 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