Class: ThreeScaleToolbox::Commands::ServiceCommand::CopyCommand::CopyLimitsTask

Inherits:
Object
  • Object
show all
Includes:
Task
Defined in:
lib/3scale_toolbox/commands/service_command/copy_command/copy_limits_task.rb

Instance Attribute Summary

Attributes included from Task

#context

Instance Method Summary collapse

Methods included from Task

#delete_mapping_rules, #find_source_service, #force_delete_mapping_rules, #initialize, #invalidate_target_methods, #invalidate_target_metrics, #option_target_system_name, #source, #source_hits, #source_methods, #source_metrics, #source_metrics_and_methods, #source_remote, #source_service_ref, #target, #target=, #target_hits, #target_methods, #target_metrics, #target_metrics_and_methods, #target_remote

Instance Method Details

#callObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/3scale_toolbox/commands/service_command/copy_command/copy_limits_task.rb', line 8

def call
  plan_mapping = Helper.application_plan_mapping(source.plans, target.plans)
  plan_mapping.each do |plan_id, target_plan|
    source_plan = ThreeScaleToolbox::Entities::ApplicationPlan.new(id: plan_id, service: source)
    target_plan = ThreeScaleToolbox::Entities::ApplicationPlan.new(id: target_plan['id'], service: target)
    missing_limits = missing_limits(source_plan.limits, target_plan.limits, metrics_map)
    missing_limits.each do |limit|
      limit.delete('links')
      target_plan.create_limit(metrics_map.fetch(limit.fetch('metric_id')), limit)
    end
    puts "Missing #{missing_limits.size} plan limits from target application plan " \
      "#{target_plan.id}. Source plan #{plan_id}"
  end
end