aboutsummaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2018-02-18 11:23:41 +0000
committerChristopher Baines <mail@cbaines.net>2018-03-29 07:41:09 +0100
commitbc1ffc5214ab3f563b60523d9c349fab7974e634 (patch)
tree1caa1ed8bf2fb96c4d340aeffd53cd50a8799980 /app/controllers
parent700b8b0a112fa976b9850418a7f0c71d95b6dd79 (diff)
downloadgovuk-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.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