aboutsummaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/govuk_guix/revisions_controller.rb4
-rw-r--r--app/controllers/mini_environments_controller.rb36
-rw-r--r--app/controllers/que_jobs_controller.rb19
3 files changed, 53 insertions, 6 deletions
diff --git a/app/controllers/govuk_guix/revisions_controller.rb b/app/controllers/govuk_guix/revisions_controller.rb
new file mode 100644
index 0000000..a890fd0
--- /dev/null
+++ b/app/controllers/govuk_guix/revisions_controller.rb
@@ -0,0 +1,4 @@
+class GovukGuix::RevisionsController < ApplicationController
+ def index
+ end
+end
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
diff --git a/app/controllers/que_jobs_controller.rb b/app/controllers/que_jobs_controller.rb
new file mode 100644
index 0000000..bab2c47
--- /dev/null
+++ b/app/controllers/que_jobs_controller.rb
@@ -0,0 +1,19 @@
+class QueJobsController < ApplicationController
+ def cancel
+ ActiveRecord::Base.connection.execute(
+ "DELETE FROM que_jobs WHERE job_id = #{job_id}::bigint"
+ )
+ end
+
+ def retry_now
+ ActiveRecord::Base.connection.execute(
+ "UPDATE que_jobs
+ SET run_at = now()
+ WHERE job_id = #{job_id}::bigint"
+ )
+ end
+
+ def job_id
+ params[:id].to_i
+ end
+end