From 32ff728e8798feea24b1587e2157526aecaf1013 Mon Sep 17 00:00:00 2001 From: Jochen Schalanda Date: Mon, 7 Feb 2011 15:38:25 +0100 Subject: [PATCH] Fixes bug #582 - make dependency on libvirt optional through a configuration option in config/settings.yaml. --- app/models/orchestration.rb | 2 +- app/views/home/_settings.html.erb | 4 +++- app/views/hosts/_unattended.html.erb | 2 ++ config/environment.rb | 6 ++++++ config/initializers/foreman.rb | 2 -- config/preinitializer.rb | 5 +++++ config/settings.yaml | 1 + 7 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 config/preinitializer.rb diff --git a/app/models/orchestration.rb b/app/models/orchestration.rb index 85da9f4..91f99d4 100644 --- a/app/models/orchestration.rb +++ b/app/models/orchestration.rb @@ -14,7 +14,7 @@ module Orchestration include Orchestration::DHCP include Orchestration::DNS include Orchestration::TFTP - include Orchestration::Libvirt + include Orchestration::Libvirt unless SETTINGS[:provisioning] == false # save handles both creation and update of hosts before_save :on_save diff --git a/app/views/home/_settings.html.erb b/app/views/home/_settings.html.erb index 7d5843a..e8a1dbd 100644 --- a/app/views/home/_settings.html.erb +++ b/app/views/home/_settings.html.erb @@ -8,7 +8,6 @@ ['Global Parameters', common_parameters_url], ['Hardware Models', models_url], ['Host Groups', hostgroups_url], - ['Hypervisors', hypervisors_url], ['Installation Media', media_url], ['LDAP Authentication', auth_source_ldaps_url], ['Operating Systems', operatingsystems_url], @@ -25,6 +24,9 @@ choices += [ ['Roles', roles_url] ] if SETTINGS[:login] and User.current.admin? + choices += [ + ['Hypervisors', hypervisors_url], + ] if SETTINGS[:provisioning] %> <%= select_tag "settings_dropdown", options_for_select(choices, @controller.request.url) %> diff --git a/app/views/hosts/_unattended.html.erb b/app/views/hosts/_unattended.html.erb index ffee868..f77c261 100644 --- a/app/views/hosts/_unattended.html.erb +++ b/app/views/hosts/_unattended.html.erb @@ -1,7 +1,9 @@ <% field_set_tag 'Unattended settings', :id => "unattended" do -%> + <% if SETTINGS[:provisioning] == true -%> <%= render 'hypervisor' if @host.new_record? and Hypervisor.count > 0 %> + <% end -%> <% field_set_tag 'Network settings', :id => "network" do -%> diff --git a/config/environment.rb b/config/environment.rb index 70316ac..607ee07 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -18,6 +18,12 @@ Rails::Initializer.run do |config| config.gem "googlecharts", :lib => "gchart" config.gem "safemode" config.gem "rack", :version => '1.1.0' + + if SETTINGS[:provisioning] == true + config.gem 'libvirt' + config.gem 'virt' + end + # config.gem "bj" # config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net" # config.gem "sqlite3-ruby", :lib => "sqlite3" diff --git a/config/initializers/foreman.rb b/config/initializers/foreman.rb index 96e0095..b446d70 100644 --- a/config/initializers/foreman.rb +++ b/config/initializers/foreman.rb @@ -3,8 +3,6 @@ require 'puppet' require 'puppet/rails' require 'gchart' -# import settings file -SETTINGS= YAML.load_file("#{RAILS_ROOT}/config/settings.yaml") # fallback to a 30 minutes run interval if its not defined SETTINGS[:puppet_interval] ||= 30 SETTINGS[:run_interval] = SETTINGS[:puppet_interval].minutes diff --git a/config/preinitializer.rb b/config/preinitializer.rb new file mode 100644 index 0000000..0172fbd --- /dev/null +++ b/config/preinitializer.rb @@ -0,0 +1,5 @@ +require 'yaml' + +# import settings file +SETTINGS = YAML.load_file("#{RAILS_ROOT}/config/settings.yaml") +SETTINGS[:provisioning] = true unless SETTINGS.has_key?(:provisioning) diff --git a/config/settings.yaml b/config/settings.yaml index a9fcf83..62e8bdd 100644 --- a/config/settings.yaml +++ b/config/settings.yaml @@ -7,6 +7,7 @@ #if none specified, plain "puppet" will be used. #:puppet_server: puppet #:unattended: false +#:provisioning: false #use the following setting to override the default 30 minutes puppet run interval - value must be in minutes #:puppet_interval: 60 #:document_root: /var/www -- 1.7.4