app/services/foreman_openscap/lookup_key_overrides_common.rb
module ForemanOpenscap
module LookupKeyOverridesCommon
extend ActiveSupport::Concern
def override(config)
return unless handle_config_not_available(config)
override_required_params config
end
def override_required_params(config)
return unless config.managed_overrides?
item = config.find_config_item
return unless handle_config_item_not_available(config, item)
override_params item.public_send(config.override_method_name), config
end
def override_params(lookup_keys, config)
policies_param = lookup_keys.find_by :key => config.policies_param
port_param = lookup_keys.find_by :key => config.port_param
server_param = lookup_keys.find_by :key => config.server_param
missing_keys = missing_lookup_keys(config.policies_param => policies_param,
config.port_param => port_param,
config.server_param => server_param)
return unless handle_missing_lookup_keys config, missing_keys.compact.join(', ')
override_policies_param(policies_param, config)
override_port_param(port_param, config)
override_server_param(server_param, config)
end
def override_policies_param(parameter, config)
override_param 'policies', config.policies_param, parameter, config, 'array', config.policies_param_default_value
end
def override_port_param(param, config)
override_param 'port', config.port_param, param, config, 'integer'
end
def override_server_param(param, config)
override_param 'server', config.server_param, param, config, 'string'
end
def override_param(handler, param_name, param, config, key_type, default_value = nil)
param.override = true
param.hidden_value = false
param.key_type = key_type
param.default_value = default_value
send("handle_#{handler}_param_override", config, param)
end
def missing_lookup_keys(hash)
return [] if hash.values.all?
hash.reduce([]) do |memo, (key, value)|
memo << key if value.blank?
memo
end
end
end
end