Class: ThreeScaleToolbox::Commands::ServiceCommand::CopyCommand::CopyPricingRulesTask

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

Instance Attribute Summary

Attributes included from Task

#context

Instance Method Summary collapse

Methods included from Task

#activedocs_report, #delete_mapping_rules, #find_source_service, #force_delete_mapping_rules, #initialize, #logger, #option_target_system_name, #plans_report, #report, #source, #source_metrics_and_methods, #source_remote, #source_service_ref, #target, #target=, #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_pricingrules_task.rb', line 8

def call
  plan_mapping = Helper.application_plan_mapping(source.plans, target.plans)
  plan_mapping.each do |source_plan, target_plan|
    missing_pricing_rules = compute_missing_pricing_rules(source_plan.pricing_rules, target_plan.pricing_rules)
    missing_pricing_rules.each do |pricing_rule|
      target_plan.create_pricing_rule(metrics_map.fetch(pricing_rule.metric_id), pricing_rule.attrs)
    end
    logger.info "Missing #{missing_pricing_rules.size} pricing rules from target application plan " \
      "#{target_plan.id}. Source plan #{source_plan.id}"

    plans_report[target_plan.system_name] = {'application_plan_id' => target_plan.id} unless plans_report.has_key? target_plan.system_name
    plans_report[target_plan.system_name].merge!({'missing_pricing_rules_created' => missing_pricing_rules.size})
  end
end