From 3812987b26fd9242e8331934bd52ea53ca924f05 Mon Sep 17 00:00:00 2001 From: Frank Sweetser Date: Mon, 14 Jun 2010 14:24:42 -0400 Subject: [PATCH] Add a "cancel build" option --- app/controllers/hosts_controller.rb | 10 ++++++++++ app/views/hosts/show.html.erb | 3 ++- config/routes.rb | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/controllers/hosts_controller.rb b/app/controllers/hosts_controller.rb index 1e56b80..1742873 100644 --- a/app/controllers/hosts_controller.rb +++ b/app/controllers/hosts_controller.rb @@ -156,6 +156,16 @@ class HostsController < ApplicationController redirect_to :back end + def cancelBuild + host = Host.find params[:id] + if host.built != false + flash[:foreman_notice] = "Canceled pending build for #{host.name}" + else + flash[:foreman_error] = "Failed to cancel pending build for #{host.name}" + end + redirect_to :back + end + # generates a link to Puppetmaster RD graphs def rrdreport if SETTINGS[:rrd_report_url].nil? or (host=Host.find(params[:id])).last_report.nil? diff --git a/app/views/hosts/show.html.erb b/app/views/hosts/show.html.erb index 34dade9..1ecefd4 100644 --- a/app/views/hosts/show.html.erb +++ b/app/views/hosts/show.html.erb @@ -5,7 +5,8 @@ <%= link_to "Facts", fact_values_path("search[host_id_eq]" => @host.id), :title => "Browse host facts" %> | <%= link_to "Reports", reports_host_path(@host), :title => "Browse host reports" %> | <%= link_to "YAML", externalNodes_host_path(@host), :title => "Puppet external nodes YAML dump" %> | - <%= link_to_if @host.can_be_build?, "Build", setBuild_host_path(@host), :title => "prepare this host for build" %> | + <% if @host.can_be_build? %> <%= link_to "Build", setBuild_host_path(@host), :title => "prepare this host for build" -%> + <% else %><%= link_to "Cancel Build", cancelBuild_host_path(@host), :title => "cancel build request for this host" %><% end %> | <%= link_to_if SETTINGS[:puppetrun], "Run Puppet", puppetrun_host_path(@host) %> | diff --git a/config/routes.rb b/config/routes.rb index 47eac2a..8ee2b19 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -8,7 +8,7 @@ ActionController::Routing::Routes.draw do |map| map.resources :hosts, :member => { :report => :get, :reports => :get, :clone => :get, :environment_selected => :post, :architecture_selected => :post, :os_selected => :post, - :storeconfig_klasses => :get, :externalNodes => :get, :setBuild => :get, :puppetrun => :get}, + :storeconfig_klasses => :get, :externalNodes => :get, :setBuild => :get, :cancelBuild => :get, :puppetrun => :get}, :collection => { :show_search => :get, :multiple_actions => :get, :multiple_parameters => :get, :update_multiple_parameters => :post, :save_checkbox => :post, :select_multiple_hostgroup => :get, :update_multiple_hostgroup => :post, :select_multiple_environment => :get, :update_multiple_environment => :post, -- 1.6.6.1