lib/foreman_tasks/dynflow/configuration.rb in foreman-tasks-0.9.5 vs lib/foreman_tasks/dynflow/configuration.rb in foreman-tasks-0.9.6

- old
+ new

@@ -101,10 +101,12 @@ config.pool_size = 5 config.persistence_adapter = initialize_persistence config.transaction_adapter = transaction_adapter config.executor = ->(world, _) { initialize_executor(world) } config.connector = ->(world, _) { initialize_connector(world) } + config.backup_deleted_plans = backup_settings[:backup_deleted_plans] + config.backup_dir = backup_settings[:backup_dir] # we can't do any operation until the ForemanTasks.dynflow.world is set config.auto_execute = false end end @@ -141,8 +143,32 @@ end # Sequel adapter based on Rails app database.yml configuration def initialize_persistence ForemanTasks::Dynflow::Persistence.new(default_sequel_adapter_options) + 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 end end