# GOV.UK Mini Environment Admin # Copyright © 2018 Christopher Baines # # This file is part of the GOV.UK Mini Environment Admin. # # The GOV.UK Mini Environment Admin is free software: you can # redistribute it and/or modify it under the terms of the GNU Affero # General Public License as published by the Free Software Foundation, # either version 3 of the License, or (at your option) any later # version. # # The GOV.UK Mini Environment Admin is distributed in the hope that it # will be useful, but WITHOUT ANY WARRANTY; without even the implied # warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public # License along with the GOV.UK Mini Environment Admin. If not, see # . class MiniEnvironmentJob < Que::Job def run(mini_environment_id, action) ActiveRecord::Base.transaction do @mini_environment = MiniEnvironment.find(mini_environment_id) @mini_environment.backend.send(action, @mini_environment) end end def destroy FinishedTerraformJob.create( model_id: @mini_environment.id, job_class: attrs[:job_class] ) super end def self.jobs(mini_environment_id) [ QueJob .where( job_class: name ).where( "args->>0 = '#{mini_environment_id}'" ).to_a, FinishedTerraformJob .where( job_class: name, model_id: mini_environment_id ) ].flatten.sort_by do |x| if x.instance_of? QueJob x.run_at else # FinishedTerraformJob x.created_at end end end end