diff options
author | Christopher Baines <mail@cbaines.net> | 2018-04-07 15:27:38 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2018-04-12 08:30:56 +0100 |
commit | 2e97d9f957eff4ba66f1c4c65ff0b5156471cf6c (patch) | |
tree | 7b55cfce7488fc59d75374e49850829f0931fb76 | |
parent | 13bf88b2e8e6cec0d2207fe7b92f7446eea49354 (diff) | |
download | govuk-mini-environment-admin-2e97d9f957eff4ba66f1c4c65ff0b5156471cf6c.tar govuk-mini-environment-admin-2e97d9f957eff4ba66f1c4c65ff0b5156471cf6c.tar.gz |
Change mini_environment_id to state_id on TerraformState
To allow supporting tracking related TerraformStates for backends as
well.
-rw-r--r-- | app/controllers/terraform_http_backend_controller.rb | 10 | ||||
-rw-r--r-- | app/models/terraform_state.rb | 10 | ||||
-rw-r--r-- | config/routes.rb | 13 | ||||
-rw-r--r-- | db/migrate/20180406123612_add_state_id_to_terraform_state.rb | 10 | ||||
-rw-r--r-- | db/migrate/20180406124443_remove_mini_environment_id_from_terraform_state.rb | 5 |
5 files changed, 35 insertions, 13 deletions
diff --git a/app/controllers/terraform_http_backend_controller.rb b/app/controllers/terraform_http_backend_controller.rb index ceff807..e4d8c54 100644 --- a/app/controllers/terraform_http_backend_controller.rb +++ b/app/controllers/terraform_http_backend_controller.rb @@ -23,7 +23,7 @@ class TerraformHttpBackendController < ApplicationController def create TerraformState.create( - mini_environment_id: mini_environment_id, + state_id: state_id, data: params ) @@ -32,7 +32,7 @@ class TerraformHttpBackendController < ApplicationController def show state = TerraformState.where( - mini_environment_id: mini_environment_id + state_id: state_id ).last if state.nil? @@ -44,13 +44,13 @@ class TerraformHttpBackendController < ApplicationController def destroy TerraformState - .where(mini_environment_id: mini_environment_id) + .where(state_id: state_id) .delete_all render json: '{ "success": true }', status: 200 end - def mini_environment_id - params[:mini_environment_id] + def state_id + params[:state_id] end end diff --git a/app/models/terraform_state.rb b/app/models/terraform_state.rb index fb2863f..2ea7c91 100644 --- a/app/models/terraform_state.rb +++ b/app/models/terraform_state.rb @@ -22,11 +22,11 @@ # # Table name: terraform_states # -# id :integer not null, primary key -# data :json -# created_at :datetime not null -# updated_at :datetime not null -# mini_environment_id :integer +# id :integer not null, primary key +# data :json +# created_at :datetime not null +# updated_at :datetime not null +# state_id :string default(""), not null # class TerraformState < ApplicationRecord diff --git a/config/routes.rb b/config/routes.rb index e706194..cb7a20c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -32,9 +32,16 @@ Rails.application.routes.draw do end end - resources :terraform_http_backend, - controller: :terraform_http_backend, - except: %i(new edit update) + scope :terraform_http_backend do + get( + '*state_id', + to: 'terraform_http_backend#show', + format: false, + as: 'terraform_http_backend' + ) + post '*state_id', to: 'terraform_http_backend#create', format: false + delete '*state_id', to: 'terraform_http_backend#destroy', format: false + end resources :mini_environments, path: '/' do post '/', to: 'mini_environments#perform_action', as: 'perform_action' diff --git a/db/migrate/20180406123612_add_state_id_to_terraform_state.rb b/db/migrate/20180406123612_add_state_id_to_terraform_state.rb new file mode 100644 index 0000000..4d2e668 --- /dev/null +++ b/db/migrate/20180406123612_add_state_id_to_terraform_state.rb @@ -0,0 +1,10 @@ +class AddStateIdToTerraformState < ActiveRecord::Migration[5.1] + def change + add_column :terraform_states, :state_id, :string, null: false, default: '' + execute( + "UPDATE terraform_states "\ + "SET state_id = 'mini_environment/' || mini_environment_id::text" + ) + change_column :terraform_states, :state_id, :string, null: false + end +end diff --git a/db/migrate/20180406124443_remove_mini_environment_id_from_terraform_state.rb b/db/migrate/20180406124443_remove_mini_environment_id_from_terraform_state.rb new file mode 100644 index 0000000..129a264 --- /dev/null +++ b/db/migrate/20180406124443_remove_mini_environment_id_from_terraform_state.rb @@ -0,0 +1,5 @@ +class RemoveMiniEnvironmentIdFromTerraformState < ActiveRecord::Migration[5.1] + def change + remove_column :terraform_states, :mini_environment_id + end +end |