diff options
author | Christopher Baines <mail@cbaines.net> | 2018-02-18 11:23:41 +0000 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2018-03-29 07:41:09 +0100 |
commit | bc1ffc5214ab3f563b60523d9c349fab7974e634 (patch) | |
tree | 1caa1ed8bf2fb96c4d340aeffd53cd50a8799980 /app/controllers | |
parent | 700b8b0a112fa976b9850418a7f0c71d95b6dd79 (diff) | |
download | govuk-mini-environment-admin-bc1ffc5214ab3f563b60523d9c349fab7974e634.tar govuk-mini-environment-admin-bc1ffc5214ab3f563b60523d9c349fab7974e634.tar.gz |
Add some govuk-guix related jobs
And various other views and routes.
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/govuk_guix/revisions_controller.rb | 4 | ||||
-rw-r--r-- | app/controllers/mini_environments_controller.rb | 36 | ||||
-rw-r--r-- | app/controllers/que_jobs_controller.rb | 19 |
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 |