diff options
Diffstat (limited to 'app/models/backends/terraform_libvirt/backend_methods.rb')
-rw-r--r-- | app/models/backends/terraform_libvirt/backend_methods.rb | 35 |
1 files changed, 35 insertions, 0 deletions
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 |