Sha256: 5fa6fec99447c8469bd0bf3600e51aa53698aa9f38203ea0a8403276ddd9363c

Contents?: true

Size: 1.24 KB

Versions: 6

Compression:

Stored size: 1.24 KB

Contents

module ThreeScaleToolbox
  module Commands
    module PlansCommand
      module Import
        class ImportMetricLimitsStep
          include Step
          ##
          # Writes Plan limits
          def call
            # SET semantics
            # First, delete existing limits
            # Second, add new limits
            plan.limits.each do |limit|
              limit.delete()
              puts "Deleted existing plan limit: [metric: #{limit.metric_id}, #{limit.attrs}]"
            end

            resource_limits_processed.each do |limit_attrs|
              metric_id = limit_attrs.delete('metric_id')
              plan.create_limit(metric_id, limit_attrs)
              puts "Created plan limit: [metric: #{metric_id}, #{limit_attrs}]"
            end
          end

          private

          def resource_limits_processed
            resource_limits.map do |limit|
              metric = find_metric_by_system_name(limit.delete('metric_system_name'))
              # this ImportMetricLimitsStep step is assuming all metrics/methods have been created
              # in previous step, so finding metric should always succeed.
              limit.merge('metric_id' => metric.id)
            end
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
3scale_toolbox-0.19.2 lib/3scale_toolbox/commands/plans_command/import/import_plan_limits_step.rb
3scale_toolbox-0.19.1 lib/3scale_toolbox/commands/plans_command/import/import_plan_limits_step.rb
3scale_toolbox-0.19.0 lib/3scale_toolbox/commands/plans_command/import/import_plan_limits_step.rb
3scale_toolbox-0.18.3 lib/3scale_toolbox/commands/plans_command/import/import_plan_limits_step.rb
3scale_toolbox-0.18.2 lib/3scale_toolbox/commands/plans_command/import/import_plan_limits_step.rb
3scale_toolbox-0.18.0 lib/3scale_toolbox/commands/plans_command/import/import_plan_limits_step.rb