diff options
author | Christopher Baines <mail@cbaines.net> | 2018-06-21 23:08:17 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2018-06-21 23:08:17 +0100 |
commit | 44726781e3c6d6279a5f66a66328633ed4d0ab23 (patch) | |
tree | 5494f947223f472af8c301aa2222863b6beaad18 /app/models | |
parent | d20ab544d75cf504abefae7a2611958bf07103f4 (diff) | |
download | govuk-mini-environment-admin-44726781e3c6d6279a5f66a66328633ed4d0ab23.tar govuk-mini-environment-admin-44726781e3c6d6279a5f66a66328633ed4d0ab23.tar.gz |
Add some basic status support for mini environments
This should enable making the show page better, as it can actually
start displaying the status, and appropriate actions.
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/mini_environment.rb | 1 | ||||
-rw-r--r-- | app/models/mini_environment/status.rb | 35 |
2 files changed, 36 insertions, 0 deletions
diff --git a/app/models/mini_environment.rb b/app/models/mini_environment.rb index d3f8ec3..11742d7 100644 --- a/app/models/mini_environment.rb +++ b/app/models/mini_environment.rb @@ -36,6 +36,7 @@ # class MiniEnvironment < ApplicationRecord + include Status belongs_to :govuk_guix_revision, class_name: 'GovukGuix::Revision' belongs_to :backend, polymorphic: true diff --git a/app/models/mini_environment/status.rb b/app/models/mini_environment/status.rb new file mode 100644 index 0000000..b8988ad --- /dev/null +++ b/app/models/mini_environment/status.rb @@ -0,0 +1,35 @@ +# GOV.UK Mini Environment Admin +# Copyright © 2018 Christopher Baines <mail@cbaines.net> +# +# This file is part of the GOV.UK Mini Environment Admin. +# +# The GOV.UK Mini Environment Admin is free software: you can +# redistribute it and/or modify it under the terms of the GNU Affero +# General Public License as published by the Free Software Foundation, +# either version 3 of the License, or (at your option) any later +# version. +# +# The GOV.UK Mini Environment Admin is distributed in the hope that it +# will be useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public +# License along with the GOV.UK Mini Environment Admin. If not, see +# <http://www.gnu.org/licenses/>. + +module MiniEnvironment::Status + def status + latest_terraform_state = terraform_states.order(:id).last + + running = ( + latest_terraform_state && + (latest_terraform_state.output_value('mini_environment_up') == 'true') + ) + + { + running: running, + updated_at: latest_terraform_state.try(:created_at) + } + end +end |