lib/foreman_tasks/dynflow/configuration.rb in foreman-tasks-0.10.2 vs lib/foreman_tasks/dynflow/configuration.rb in foreman-tasks-0.10.3
- old
+ new
@@ -4,9 +4,40 @@
require 'foreman_tasks/dynflow/persistence'
module ForemanTasks
# Import all Dynflow configuration from Foreman, and add our own for Tasks
class Dynflow::Configuration < ::Foreman::Dynflow::Configuration
+ def world_config
+ super.tap do |config|
+ config.backup_deleted_plans = backup_settings[:backup_deleted_plans]
+ config.backup_dir = backup_settings[:backup_dir]
+ end
+ end
+
+ def backup_settings
+ return @backup_settings if @backup_settings
+ backup_options = {
+ :backup_deleted_plans => true,
+ :backup_dir => default_backup_dir
+ }
+ settings = SETTINGS[:'foreman-tasks'] && SETTINGS[:'foreman-tasks'][:backup]
+ backup_options.merge!(settings) if settings
+ @backup_settings = with_environment_override backup_options
+ end
+
+ def default_backup_dir
+ File.join(Rails.root, 'tmp', 'task-backup')
+ end
+
+ def with_environment_override(options)
+ env_var = ENV['TASK_BACKUP']
+ unless env_var.nil?
+ # Everything except 0, n, no, false is considered to be a truthy value
+ options[:backup_deleted_plans] = !%w[0 n no false].include?(env_var.downcase)
+ end
+ options
+ end
+
def initialize_persistence
ForemanTasks::Dynflow::Persistence.new(default_sequel_adapter_options)
end
end
end