aboutsummaryrefslogtreecommitdiff
path: root/app/controllers/mini_environments_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/mini_environments_controller.rb')
-rw-r--r--app/controllers/mini_environments_controller.rb36
1 files changed, 30 insertions, 6 deletions
diff --git a/app/controllers/mini_environments_controller.rb b/app/controllers/mini_environments_controller.rb
index c45ed4a..8009777 100644
--- a/app/controllers/mini_environments_controller.rb
+++ b/app/controllers/mini_environments_controller.rb
@@ -8,14 +8,38 @@ class MiniEnvironmentsController < ApplicationController
end
def create
- ActiveRecord::Base.transaction do
- @mini_environment = MiniEnvironment.create(
- params.require(:mini_environment).permit(:name)
- )
+ @mini_environment = MiniEnvironment.create(
+ params
+ .require(:mini_environment)
+ .permit(
+ :name,
+ :govuk_guix_revision_id
+ )
+ )
- SetupJob.enqueue(@mini_environment.id)
- end
+ GovukGuix::BuildJob.enqueue(@mini_environment.id)
redirect_to @mini_environment
end
+
+ def perform_action
+ @mini_environment = MiniEnvironment.find(params[:mini_environment_id])
+
+ action = params.require(:commit)
+
+ case action
+ when 'Destroy'
+ DestroyJob.enqueue(@mini_environment.id)
+
+ flash[:notice] = "Destroying mini environment"
+ when 'Start'
+ StartJob.enqueue(@mini_environment.id)
+
+ flash[:notice] = "Starting mini environment"
+ else
+ flash[:error] = "Unknown action #{action}"
+ end
+
+ render 'show'
+ end
end