diff options
author | Christopher Baines <mail@cbaines.net> | 2018-06-23 21:13:26 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2018-06-23 21:16:39 +0100 |
commit | dd4bad071db5e7c8423df07afb375d84a0abb8f6 (patch) | |
tree | 918fbb7cc46e4b78db72d3b251c995d3f4bb6c78 | |
parent | e78d219f520afd8eb38b28178bbf5148f803fd19 (diff) | |
download | govuk-mini-environment-admin-dd4bad071db5e7c8423df07afb375d84a0abb8f6.tar govuk-mini-environment-admin-dd4bad071db5e7c8423df07afb375d84a0abb8f6.tar.gz |
Add a history view for terraform states
And link to this from the mini environment page.
-rw-r--r-- | app/controllers/terraform_http_backend_controller.rb | 19 | ||||
-rw-r--r-- | app/views/backends/terraform_aws/show.html.erb | 7 | ||||
-rw-r--r-- | config/routes.rb | 5 |
3 files changed, 31 insertions, 0 deletions
diff --git a/app/controllers/terraform_http_backend_controller.rb b/app/controllers/terraform_http_backend_controller.rb index 4d11961..4587f8a 100644 --- a/app/controllers/terraform_http_backend_controller.rb +++ b/app/controllers/terraform_http_backend_controller.rb @@ -46,6 +46,25 @@ class TerraformHttpBackendController < ApplicationController end end + def show_history + @state = TerraformState.where( + state_id: state_id + ).order(:id).last + + respond_to do |format| + format.html do + render :show + end + format.json do + if @state.nil? + render json: '{}', status: 404 + else + render json: @state.data, status: 200 + end + end + end + end + def show_by_index @state = TerraformState.where( state_id: state_id diff --git a/app/views/backends/terraform_aws/show.html.erb b/app/views/backends/terraform_aws/show.html.erb index f468567..98034f5 100644 --- a/app/views/backends/terraform_aws/show.html.erb +++ b/app/views/backends/terraform_aws/show.html.erb @@ -87,6 +87,13 @@ License along with the GOV.UK Mini Environment Admin. If not, see Backend down </div> <% end %> + + <br> + <a href="<%= terraform_http_backend_show_history_path( + @backend.terraform_state_id + ) %>"> + View detailed Terraform state information + </a> </div> </div> diff --git a/config/routes.rb b/config/routes.rb index 55aeab5..ce7b624 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -47,6 +47,11 @@ Rails.application.routes.draw do ) scope :terraform_http_backend do get( + '*state_id/history', + to: 'terraform_http_backend#show_history', + as: 'terraform_http_backend_show_history' + ) + get( '*state_id/history/*index', to: 'terraform_http_backend#show_by_index', as: 'terraform_http_backend_show_by_index' |