# 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 Backends::TerraformLibvirtController < ApplicationController def new @backend = Backends::TerraformLibvirt.new @backend.uri = 'qemu:///system' end def create backend = Backends::TerraformLibvirt.create(create_params) Backends::TerraformLibvirtJob.enqueue(backend.id, :deploy_backend) flash[:success] = "Backend #{backend.label} created" redirect_to terraform_libvirt_backend_path(backend) end def update @backend = Backends::TerraformLibvirt.update( params['id'], update_params ) flash[:success] = "Backend #{@backend.label} updated" render :show end def show @backend = Backends::TerraformLibvirt.find(params['id']) end def destroy backend = Backends::TerraformLibvirt.find(params['id']) flash[:success] = "Backend #{backend.label} deleted" backend.delete redirect_to setup_path end def perform_action @backend = Backends::TerraformLibvirt.find(params['id']) action = params.require(:commit) case action when 'Destroy' Backends::TerraformLibvirtJob.enqueue(@backend.id, :destroy_backend) flash[:notice] = 'Destroying the backend' when 'Deploy' Backends::TerraformLibvirtJob.enqueue(@backend.id, :deploy_backend) flash[:notice] = 'Deploying the backend' when 'Refresh state' Backends::TerraformLibvirtJob.enqueue(@backend.id, :refresh_backend_state) flash[:notice] = 'Refreshing the backend state information' else flash[:error] = "Unknown action #{action}" end redirect_to terraform_libvirt_backend_path(@backend) end private def create_params params .require(:backends_terraform_libvirt) .permit( :label, :domain, :uri ) end def update_params params .require(:backends_terraform_libvirt) .permit( :label ) end end