Module: ForemanDocker::ParameterValidators

Extended by:
ActiveSupport::Concern
Included in:
Container, DockerContainerWizardStates::Environment
Defined in:
app/models/concerns/foreman_docker/parameter_validators.rb

Instance Method Summary collapse

Instance Method Details

#duplicate_key?(keys, param) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
26
27
28
29
30
31
32
# File 'app/models/concerns/foreman_docker/parameter_validators.rb', line 23

def duplicate_key?(keys, param)
  if keys.include?(param.key)
    param.errors.add(:key, _('has already been taken'))
    return true
  else
    keys << param.key
  end

  false
end

#validate_unique_parameter_keysObject



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/models/concerns/foreman_docker/parameter_validators.rb', line 9

def validate_unique_parameter_keys
  parameters_symbol = [:environment_variables, :exposed_ports, :dns]
  parameters_symbol.each do |param_symbol|
    keys  = []
    errors = false

    self.public_send(param_symbol).each do |param|
      errors = duplicate_key?(keys, param)
    end

    self.errors.add(param_symbol, _('Please ensure the following parameters are unique')) if errors
  end
end