Module: ThreeScaleToolbox::CRD::Limit

Included in:
Entities::Limit
Defined in:
lib/3scale_toolbox/crds/limit_dump.rb

Instance Method Summary collapse

Instance Method Details

#metric_system_nameObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/3scale_toolbox/crds/limit_dump.rb', line 12

def metric_system_name
  # Find in service methods
  # Find in service metrics
  # Find in backend methods
  # Find in backend metrics
  if (method = plan.service.methods.find { |m| m.id == metric_id })
    { 'systemName' => method.system_name }
  elsif (metric = plan.service.metrics.find { |m| m.id == metric_id })
    { 'systemName' => metric.system_name }
  elsif (backend = backend_from_metric)
    if (backend_metric = backend.metrics.find { |m| m.id == metric_id })
      { 'systemName' => backend_metric.system_name, 'backend' => backend.system_name }
    elsif (backend_method = backend.methods.find { |m| m.id == metric_id })
      { 'systemName' => backend_method.system_name, 'backend' => backend.system_name }
    else
      raise ThreeScaleToolbox::Error, "Unexpected error. Limit #{id} " \
        "referencing to metric id #{metric_id} which has not been found"
    end
  else
    raise ThreeScaleToolbox::Error, "Unexpected error. Limit #{id} " \
      "referencing to metric id #{metric_id} which has not been found"
  end
end

#to_crObject



4
5
6
7
8
9
10
# File 'lib/3scale_toolbox/crds/limit_dump.rb', line 4

def to_cr
  {
    'period' => period,
    'value' => value,
    'metricMethodRef' => metric_system_name,
  }
end