Sha256: 9d6cd1b1f8be5653373f274fe6d0f281f35d64ef5ae57a48babf42d2e691ba66

Contents?: true

Size: 1.22 KB

Versions: 6

Compression:

Stored size: 1.22 KB

Contents

require File.expand_path('lib/foreman/dynflow/configuration', ::Rails.root)

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
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
foreman-tasks-7.1.0 lib/foreman_tasks/dynflow/configuration.rb
foreman-tasks-6.0.3 lib/foreman_tasks/dynflow/configuration.rb
foreman-tasks-7.0.0 lib/foreman_tasks/dynflow/configuration.rb
foreman-tasks-6.0.2 lib/foreman_tasks/dynflow/configuration.rb
foreman-tasks-6.0.1 lib/foreman_tasks/dynflow/configuration.rb
foreman-tasks-6.0.0 lib/foreman_tasks/dynflow/configuration.rb