3scale_toolbox 0.15.0 → 0.18.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/3scale_toolbox.gemspec +2 -2
  3. data/README.md +15 -9
  4. data/lib/3scale_toolbox.rb +3 -1
  5. data/lib/3scale_toolbox/3scale_client_factory.rb +3 -4
  6. data/lib/3scale_toolbox/cli.rb +4 -0
  7. data/lib/3scale_toolbox/cli/custom_table_printer.rb +32 -0
  8. data/lib/3scale_toolbox/cli/error_handler.rb +17 -14
  9. data/lib/3scale_toolbox/cli/json_printer.rb +13 -0
  10. data/lib/3scale_toolbox/cli/output_flag.rb +20 -0
  11. data/lib/3scale_toolbox/cli/yaml_printer.rb +13 -0
  12. data/lib/3scale_toolbox/commands.rb +7 -1
  13. data/lib/3scale_toolbox/commands/activedocs_command/apply_command.rb +33 -10
  14. data/lib/3scale_toolbox/commands/activedocs_command/create_command.rb +22 -7
  15. data/lib/3scale_toolbox/commands/activedocs_command/list_command.rb +10 -17
  16. data/lib/3scale_toolbox/commands/application_command/apply_command.rb +27 -4
  17. data/lib/3scale_toolbox/commands/application_command/create_command.rb +16 -1
  18. data/lib/3scale_toolbox/commands/application_command/list_command.rb +10 -13
  19. data/lib/3scale_toolbox/commands/application_command/show_command.rb +8 -14
  20. data/lib/3scale_toolbox/commands/backend_command.rb +22 -0
  21. data/lib/3scale_toolbox/commands/backend_command/copy_command.rb +65 -0
  22. data/lib/3scale_toolbox/commands/backend_command/copy_command/copy_mapping_rules_task.rb +36 -0
  23. data/lib/3scale_toolbox/commands/backend_command/copy_command/copy_methods_task.rb +35 -0
  24. data/lib/3scale_toolbox/commands/backend_command/copy_command/copy_metrics_task.rb +30 -0
  25. data/lib/3scale_toolbox/commands/backend_command/copy_command/create_or_update_target_backend_task.rb +46 -0
  26. data/lib/3scale_toolbox/commands/backend_command/copy_command/task.rb +67 -0
  27. data/lib/3scale_toolbox/commands/copy_command.rb +2 -2
  28. data/lib/3scale_toolbox/commands/copy_command/service_command.rb +40 -0
  29. data/lib/3scale_toolbox/commands/import_command/issuer_type_transformer.rb +16 -0
  30. data/lib/3scale_toolbox/commands/import_command/openapi.rb +6 -2
  31. data/lib/3scale_toolbox/commands/import_command/openapi/create_mapping_rule_step.rb +2 -1
  32. data/lib/3scale_toolbox/commands/import_command/openapi/create_method_step.rb +5 -14
  33. data/lib/3scale_toolbox/commands/import_command/openapi/step.rb +4 -0
  34. data/lib/3scale_toolbox/commands/import_command/openapi/update_service_proxy_step.rb +1 -0
  35. data/lib/3scale_toolbox/commands/methods_command/apply_command.rb +28 -8
  36. data/lib/3scale_toolbox/commands/methods_command/create_command.rb +23 -3
  37. data/lib/3scale_toolbox/commands/methods_command/delete_command.rb +1 -1
  38. data/lib/3scale_toolbox/commands/methods_command/list_command.rb +7 -13
  39. data/lib/3scale_toolbox/commands/metrics_command/apply_command.rb +26 -4
  40. data/lib/3scale_toolbox/commands/metrics_command/create_command.rb +23 -1
  41. data/lib/3scale_toolbox/commands/metrics_command/list_command.rb +7 -12
  42. data/lib/3scale_toolbox/commands/plans_command/apply_command.rb +36 -7
  43. data/lib/3scale_toolbox/commands/plans_command/create_command.rb +23 -1
  44. data/lib/3scale_toolbox/commands/plans_command/export/read_plan_limits_step.rb +1 -1
  45. data/lib/3scale_toolbox/commands/plans_command/export/read_plan_methods_step.rb +2 -2
  46. data/lib/3scale_toolbox/commands/plans_command/export/read_plan_metrics_step.rb +2 -2
  47. data/lib/3scale_toolbox/commands/plans_command/export/read_plan_pricing_rules_step.rb +1 -2
  48. data/lib/3scale_toolbox/commands/plans_command/export/step.rb +8 -20
  49. data/lib/3scale_toolbox/commands/plans_command/import/import_plan_limits_step.rb +12 -14
  50. data/lib/3scale_toolbox/commands/plans_command/import/import_plan_metrics_step.rb +6 -13
  51. data/lib/3scale_toolbox/commands/plans_command/import/import_plan_pricing_rules_step.rb +12 -20
  52. data/lib/3scale_toolbox/commands/plans_command/import/step.rb +2 -22
  53. data/lib/3scale_toolbox/commands/plans_command/list_command.rb +8 -13
  54. data/lib/3scale_toolbox/commands/plans_command/show_command.rb +7 -15
  55. data/lib/3scale_toolbox/commands/policies_command.rb +24 -0
  56. data/lib/3scale_toolbox/commands/policies_command/export_command.rb +98 -0
  57. data/lib/3scale_toolbox/commands/policies_command/import_command.rb +61 -0
  58. data/lib/3scale_toolbox/commands/product_command.rb +26 -0
  59. data/lib/3scale_toolbox/commands/product_command/copy_command.rb +82 -0
  60. data/lib/3scale_toolbox/commands/product_command/copy_command/copy_backends_task.rb +88 -0
  61. data/lib/3scale_toolbox/commands/product_command/copy_command/delete_target_backend_usages_task.rb +48 -0
  62. data/lib/3scale_toolbox/commands/product_command/export_command.rb +81 -0
  63. data/lib/3scale_toolbox/commands/product_command/import_command.rb +125 -0
  64. data/lib/3scale_toolbox/commands/proxy_config_command.rb +5 -0
  65. data/lib/3scale_toolbox/commands/proxy_config_command/deploy_command.rb +54 -0
  66. data/lib/3scale_toolbox/commands/proxy_config_command/export_command.rb +74 -0
  67. data/lib/3scale_toolbox/commands/proxy_config_command/helper.rb +15 -0
  68. data/lib/3scale_toolbox/commands/proxy_config_command/list_command.rb +13 -29
  69. data/lib/3scale_toolbox/commands/proxy_config_command/show_command.rb +20 -23
  70. data/lib/3scale_toolbox/commands/service_command.rb +7 -5
  71. data/lib/3scale_toolbox/commands/service_command/apply_command.rb +69 -58
  72. data/lib/3scale_toolbox/commands/service_command/copy_command.rb +95 -0
  73. data/lib/3scale_toolbox/commands/service_command/copy_command/bump_proxy_version_task.rb +36 -0
  74. data/lib/3scale_toolbox/commands/service_command/copy_command/copy_activedocs_task.rb +49 -0
  75. data/lib/3scale_toolbox/commands/service_command/copy_command/copy_app_plans_task.rb +35 -0
  76. data/lib/3scale_toolbox/commands/service_command/copy_command/copy_limits_task.rb +38 -0
  77. data/lib/3scale_toolbox/commands/service_command/copy_command/copy_mapping_rules_task.rb +35 -0
  78. data/lib/3scale_toolbox/commands/service_command/copy_command/copy_methods_task.rb +37 -0
  79. data/lib/3scale_toolbox/commands/service_command/copy_command/copy_metrics_task.rb +37 -0
  80. data/lib/3scale_toolbox/commands/service_command/copy_command/copy_policies_task.rb +17 -0
  81. data/lib/3scale_toolbox/commands/service_command/copy_command/copy_pricingrules_task.rb +41 -0
  82. data/lib/3scale_toolbox/commands/service_command/copy_command/copy_service_proxy_task.rb +32 -0
  83. data/lib/3scale_toolbox/commands/service_command/copy_command/create_or_update_service_task.rb +49 -0
  84. data/lib/3scale_toolbox/commands/service_command/copy_command/destroy_mapping_rules_task.rb +38 -0
  85. data/lib/3scale_toolbox/commands/service_command/copy_command/task.rb +85 -0
  86. data/lib/3scale_toolbox/commands/service_command/create_command.rb +58 -44
  87. data/lib/3scale_toolbox/commands/service_command/delete_command.rb +31 -33
  88. data/lib/3scale_toolbox/commands/service_command/list_command.rb +24 -34
  89. data/lib/3scale_toolbox/commands/service_command/show_command.rb +39 -44
  90. data/lib/3scale_toolbox/commands/update_command.rb +3 -3
  91. data/lib/3scale_toolbox/commands/update_command/{update_service.rb → service_command.rb} +22 -18
  92. data/lib/3scale_toolbox/commands/update_command/service_command/copy_service_settings_task.rb +35 -0
  93. data/lib/3scale_toolbox/commands/update_command/service_command/delete_activedocs_task.rb +24 -0
  94. data/lib/3scale_toolbox/crds.rb +16 -0
  95. data/lib/3scale_toolbox/crds/application_plan_dump.rb +19 -0
  96. data/lib/3scale_toolbox/crds/backend_dump.rb +39 -0
  97. data/lib/3scale_toolbox/crds/backend_mapping_rule_dump.rb +26 -0
  98. data/lib/3scale_toolbox/crds/backend_method_dump.rb +12 -0
  99. data/lib/3scale_toolbox/crds/backend_metric_dump.rb +13 -0
  100. data/lib/3scale_toolbox/crds/backend_parser.rb +55 -0
  101. data/lib/3scale_toolbox/crds/backend_usage_dump.rb +11 -0
  102. data/lib/3scale_toolbox/crds/limit_dump.rb +37 -0
  103. data/lib/3scale_toolbox/crds/mapping_rule_dump.rb +26 -0
  104. data/lib/3scale_toolbox/crds/method_dump.rb +12 -0
  105. data/lib/3scale_toolbox/crds/metric_dump.rb +13 -0
  106. data/lib/3scale_toolbox/crds/pricing_rule_dump.rb +38 -0
  107. data/lib/3scale_toolbox/crds/product_deployment_parser.rb +329 -0
  108. data/lib/3scale_toolbox/crds/product_dump.rb +157 -0
  109. data/lib/3scale_toolbox/crds/product_parser.rb +114 -0
  110. data/lib/3scale_toolbox/crds/remote.rb +682 -0
  111. data/lib/3scale_toolbox/entities.rb +8 -0
  112. data/lib/3scale_toolbox/entities/activedocs.rb +12 -0
  113. data/lib/3scale_toolbox/entities/application_plan.rb +74 -39
  114. data/lib/3scale_toolbox/entities/backend.rb +187 -0
  115. data/lib/3scale_toolbox/entities/backend_mapping_rule.rb +102 -0
  116. data/lib/3scale_toolbox/entities/backend_method.rb +99 -0
  117. data/lib/3scale_toolbox/entities/backend_metric.rb +98 -0
  118. data/lib/3scale_toolbox/entities/backend_usage.rb +105 -0
  119. data/lib/3scale_toolbox/entities/limit.rb +71 -0
  120. data/lib/3scale_toolbox/entities/mapping_rule.rb +90 -0
  121. data/lib/3scale_toolbox/entities/method.rb +33 -19
  122. data/lib/3scale_toolbox/entities/metric.rb +29 -18
  123. data/lib/3scale_toolbox/entities/pricing_rule.rb +63 -0
  124. data/lib/3scale_toolbox/entities/proxy_config.rb +0 -1
  125. data/lib/3scale_toolbox/entities/service.rb +166 -48
  126. data/lib/3scale_toolbox/error.rb +53 -0
  127. data/lib/3scale_toolbox/helper.rb +17 -0
  128. data/lib/3scale_toolbox/openapi/oas3.rb +1 -1
  129. data/lib/3scale_toolbox/proxy_logger.rb +5 -1
  130. data/lib/3scale_toolbox/remote_cache.rb +157 -0
  131. data/lib/3scale_toolbox/remotes.rb +2 -2
  132. data/lib/3scale_toolbox/version.rb +1 -1
  133. data/licenses.xml +113 -45
  134. metadata +75 -26
  135. data/lib/3scale_toolbox/commands/copy_command/copy_service.rb +0 -144
  136. data/lib/3scale_toolbox/tasks.rb +0 -15
  137. data/lib/3scale_toolbox/tasks/bump_proxy_version_task.rb +0 -32
  138. data/lib/3scale_toolbox/tasks/copy_activedocs_task.rb +0 -42
  139. data/lib/3scale_toolbox/tasks/copy_app_plans_task.rb +0 -31
  140. data/lib/3scale_toolbox/tasks/copy_limits_task.rb +0 -36
  141. data/lib/3scale_toolbox/tasks/copy_mapping_rules_task.rb +0 -32
  142. data/lib/3scale_toolbox/tasks/copy_methods_task.rb +0 -36
  143. data/lib/3scale_toolbox/tasks/copy_metrics_task.rb +0 -33
  144. data/lib/3scale_toolbox/tasks/copy_policies_task.rb +0 -13
  145. data/lib/3scale_toolbox/tasks/copy_pricingrules_task.rb +0 -41
  146. data/lib/3scale_toolbox/tasks/copy_service_proxy_task.rb +0 -13
  147. data/lib/3scale_toolbox/tasks/copy_service_settings_task.rb +0 -38
  148. data/lib/3scale_toolbox/tasks/copy_task.rb +0 -66
  149. data/lib/3scale_toolbox/tasks/delete_activedocs_task.rb +0 -22
  150. data/lib/3scale_toolbox/tasks/destroy_mapping_rules_task.rb +0 -22
  151. data/lib/3scale_toolbox/tasks/helper_task.rb +0 -25
@@ -1,36 +0,0 @@
1
- module ThreeScaleToolbox
2
- module Tasks
3
- class CopyLimitsTask
4
- include CopyTask
5
- include Helper
6
-
7
- def call
8
- plan_mapping = application_plan_mapping(source.plans, target.plans)
9
- plan_mapping.each do |plan_id, target_plan|
10
- source_plan = ThreeScaleToolbox::Entities::ApplicationPlan.new(id: plan_id, service: source)
11
- target_plan = ThreeScaleToolbox::Entities::ApplicationPlan.new(id: target_plan['id'], service: target)
12
- missing_limits = missing_limits(source_plan.limits, target_plan.limits, metrics_map)
13
- missing_limits.each do |limit|
14
- limit.delete('links')
15
- target_plan.create_limit(metrics_map.fetch(limit.fetch('metric_id')), limit)
16
- end
17
- puts "Missing #{missing_limits.size} plan limits from target application plan " \
18
- "#{target_plan.id}. Source plan #{plan_id}"
19
- end
20
- end
21
-
22
- private
23
-
24
- def metrics_map
25
- @metrics_map ||= metrics_mapping(source_metrics_and_methods, target_metrics_and_methods)
26
- end
27
-
28
- def missing_limits(source_limits, target_limits, metrics_map)
29
- ThreeScaleToolbox::Helper.array_difference(source_limits, target_limits) do |limit, target|
30
- ThreeScaleToolbox::Helper.compare_hashes(limit, target, ['period']) &&
31
- metrics_map.fetch(limit.fetch('metric_id')) == target.fetch('metric_id')
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,32 +0,0 @@
1
- module ThreeScaleToolbox
2
- module Tasks
3
- class CopyMappingRulesTask
4
- include CopyTask
5
- include Helper
6
-
7
- def call
8
- missing_rules = missing_mapping_rules(source.mapping_rules,
9
- target.mapping_rules, metrics_map)
10
- missing_rules.each do |mapping_rule|
11
- mapping_rule.delete('links')
12
- mapping_rule['metric_id'] = metrics_map.fetch(mapping_rule.delete('metric_id'))
13
- target.create_mapping_rule mapping_rule
14
- end
15
- puts "created #{missing_rules.size} mapping rules"
16
- end
17
-
18
- private
19
-
20
- def metrics_map
21
- @metrics_map ||= metrics_mapping(source_metrics_and_methods, target_metrics_and_methods)
22
- end
23
-
24
- def missing_mapping_rules(source_rules, target_rules, metrics_map)
25
- ThreeScaleToolbox::Helper.array_difference(source_rules, target_rules) do |source_rule, target_rule|
26
- ThreeScaleToolbox::Helper.compare_hashes(source_rule, target_rule, %w[pattern http_method delta]) &&
27
- metrics_map.fetch(source_rule.fetch('metric_id')) == target_rule.fetch('metric_id')
28
- end
29
- end
30
- end
31
- end
32
- end
@@ -1,36 +0,0 @@
1
- module ThreeScaleToolbox
2
- module Tasks
3
- class CopyMethodsTask
4
- include CopyTask
5
-
6
- def call
7
- puts "original service hits metric #{source_hits.fetch('id')} has #{source_methods.size} methods"
8
- puts "target service hits metric #{target_hits.fetch('id')} has #{target_methods.size} methods"
9
- missing_methods.each(&method(:create_method))
10
- puts "created #{missing_methods.size} missing methods on target service"
11
- invalidate_target_methods if missing_methods.size.positive?
12
- end
13
-
14
- private
15
-
16
- def create_method(method)
17
- Entities::Method.create(
18
- service: target,
19
- parent_id: target_hits.fetch('id'),
20
- attrs: ThreeScaleToolbox::Helper.filter_params(%w[friendly_name system_name], method)
21
- )
22
- rescue ThreeScaleToolbox::ThreeScaleApiError => e
23
- raise e unless ThreeScaleToolbox::Helper.system_name_already_taken_error?(e.apierrors)
24
-
25
- warn "[WARN] method #{method.fetch('system_name')} not created. " \
26
- 'Metric with the same system_name exists.'
27
- end
28
-
29
- def missing_methods
30
- @missing_methods ||= ThreeScaleToolbox::Helper.array_difference(source_methods, target_methods) do |method, target|
31
- ThreeScaleToolbox::Helper.compare_hashes(method, target, ['system_name'])
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,33 +0,0 @@
1
- module ThreeScaleToolbox
2
- module Tasks
3
- class CopyMetricsTask
4
- include CopyTask
5
-
6
- def call
7
- puts "original service has #{source_metrics.size} metrics"
8
- puts "target service has #{target_metrics.size} metrics"
9
- missing_metrics.each(&method(:create_metric))
10
- puts "created #{missing_metrics.size} metrics on the target service"
11
- invalidate_target_metrics if missing_metrics.size.positive?
12
- end
13
-
14
- private
15
-
16
- def create_metric(metric)
17
- new_metric = metric.reject { |key, _| %w[id links].include? key }
18
- Entities::Metric.create(service: target, attrs: new_metric)
19
- rescue ThreeScaleToolbox::ThreeScaleApiError => e
20
- raise e unless ThreeScaleToolbox::Helper.system_name_already_taken_error?(e.apierrors)
21
-
22
- warn "[WARN] metric #{metric.fetch('system_name')} not created. " \
23
- 'Method with the same system_name exists.'
24
- end
25
-
26
- def missing_metrics
27
- @missing_metrics ||= ThreeScaleToolbox::Helper.array_difference(source_metrics, target_metrics) do |source, target|
28
- ThreeScaleToolbox::Helper.compare_hashes(source, target, ['system_name'])
29
- end
30
- end
31
- end
32
- end
33
- end
@@ -1,13 +0,0 @@
1
- module ThreeScaleToolbox
2
- module Tasks
3
- class CopyPoliciesTask
4
- include CopyTask
5
-
6
- def call
7
- puts 'copy proxy policies'
8
- source_policies = source.policies
9
- target.update_policies('policies_config' => source_policies)
10
- end
11
- end
12
- end
13
- end
@@ -1,41 +0,0 @@
1
- module ThreeScaleToolbox
2
- module Tasks
3
- class CopyPricingRulesTask
4
- include CopyTask
5
- include Helper
6
-
7
- def call
8
- plan_mapping = application_plan_mapping(source.plans, target.plans)
9
- plan_mapping.each do |plan_id, target_plan|
10
- pricing_rules_source = source.remote.list_pricingrules_per_application_plan(plan_id)
11
- pricing_rules_target = target.remote.list_pricingrules_per_application_plan(target_plan['id'])
12
- missing_pricing_rules = missing_pricing_rules(pricing_rules_source, pricing_rules_target,
13
- metrics_map)
14
- missing_pricing_rules.each do |pricing_rule|
15
- pricing_rule.delete('links')
16
- target.remote.create_pricingrule(
17
- target_plan['id'],
18
- metrics_map.fetch(pricing_rule['metric_id']),
19
- pricing_rule
20
- )
21
- end
22
- puts "Missing #{missing_pricing_rules.size} pricing rules from target application plan " \
23
- "#{target_plan['id']}. Source plan #{plan_id}"
24
- end
25
- end
26
-
27
- private
28
-
29
- def metrics_map
30
- @metrics_map ||= metrics_mapping(source_metrics_and_methods, target_metrics_and_methods)
31
- end
32
-
33
- def missing_pricing_rules(source_pricing_rules, target_pricing_rules, metrics_map)
34
- ThreeScaleToolbox::Helper.array_difference(source_pricing_rules, target_pricing_rules) do |src, target|
35
- ThreeScaleToolbox::Helper.compare_hashes(src, target, %w[cost_per_unit min max]) &&
36
- metrics_map.fetch(src.fetch('metric_id')) == target.fetch('metric_id')
37
- end
38
- end
39
- end
40
- end
41
- end
@@ -1,13 +0,0 @@
1
- module ThreeScaleToolbox
2
- module Tasks
3
- class CopyServiceProxyTask
4
- include CopyTask
5
-
6
- def call
7
- target.update_proxy source.proxy
8
- target.update_oidc source.oidc if source.attrs['backend_version'] == 'oidc'
9
- puts "updated proxy of #{target.id} to match the original"
10
- end
11
- end
12
- end
13
- end
@@ -1,38 +0,0 @@
1
- module ThreeScaleToolbox
2
- module Tasks
3
- class CopyServiceSettingsTask
4
- include CopyTask
5
- PARAMS_FILTER = %w[system_name id links]
6
-
7
- def call
8
- svc_obj = update_service source_service_settings
9
- if (errors = svc_obj['errors'])
10
- raise ThreeScaleToolbox::Error, "Service has not been saved. Errors: #{errors}" \
11
- end
12
-
13
- puts "updated service settings for service id #{source.id}..."
14
- end
15
-
16
- private
17
-
18
- def source_service_settings
19
- source.attrs.reject { |k, _| PARAMS_FILTER.include? k }
20
- end
21
-
22
- def update_service(service_attrs)
23
- svc_obj = target.update service_attrs
24
-
25
- # Source and target remotes might not allow same set of deployment options
26
- # Invalid deployment option check
27
- # use default deployment_option
28
- if (errors = svc_obj['errors']) &&
29
- ThreeScaleToolbox::Helper.service_invalid_deployment_option?(errors)
30
- service_attrs.delete('deployment_option')
31
- svc_obj = target.update service_attrs
32
- end
33
-
34
- svc_obj
35
- end
36
- end
37
- end
38
- end
@@ -1,66 +0,0 @@
1
- module ThreeScaleToolbox
2
- module Tasks
3
- module CopyTask
4
- def self.included(base)
5
- base.extend(ClassMethods)
6
- end
7
-
8
- module ClassMethods
9
- end
10
-
11
- attr_reader :context
12
-
13
- def initialize(context)
14
- @context = context
15
- end
16
-
17
- def source
18
- context[:source]
19
- end
20
-
21
- def target
22
- context[:target]
23
- end
24
-
25
- def source_metrics
26
- context[:source_metrics] ||= source.metrics
27
- end
28
-
29
- def source_hits
30
- context[:source_hits] ||= source.hits
31
- end
32
-
33
- def source_methods
34
- context[:source_methods] ||= source.methods(source_hits.fetch('id'))
35
- end
36
-
37
- def source_metrics_and_methods
38
- source_metrics + source_methods
39
- end
40
-
41
- def target_metrics
42
- context[:target_metrics] ||= target.metrics
43
- end
44
-
45
- def target_hits
46
- context[:target_hits] ||= target.hits
47
- end
48
-
49
- def target_methods
50
- context[:target_methods] ||= target.methods(target_hits.fetch('id'))
51
- end
52
-
53
- def target_metrics_and_methods
54
- target_metrics + target_methods
55
- end
56
-
57
- def invalidate_target_methods
58
- context[:target_methods] = nil
59
- end
60
-
61
- def invalidate_target_metrics
62
- context[:target_metrics] = nil
63
- end
64
- end
65
- end
66
- end
@@ -1,22 +0,0 @@
1
- module ThreeScaleToolbox
2
- module Tasks
3
- class DeleteActiveDocsTask
4
- attr_reader :context
5
-
6
- def initialize(context)
7
- @context = context
8
- end
9
-
10
- def call
11
- puts 'deleting all target service ActiveDocs'
12
- target.activedocs.each do |activedoc|
13
- target.remote.delete_activedocs(activedoc['id'])
14
- end
15
- end
16
-
17
- def target
18
- context[:target]
19
- end
20
- end
21
- end
22
- end
@@ -1,22 +0,0 @@
1
- module ThreeScaleToolbox
2
- module Tasks
3
- class DestroyMappingRulesTask
4
- attr_reader :context
5
-
6
- def initialize(context)
7
- @context = context
8
- end
9
-
10
- def call
11
- puts 'destroying all mapping rules'
12
- target.mapping_rules.each do |mapping_rule|
13
- target.delete_mapping_rule mapping_rule['id']
14
- end
15
- end
16
-
17
- def target
18
- context[:target]
19
- end
20
- end
21
- end
22
- end
@@ -1,25 +0,0 @@
1
- module ThreeScaleToolbox
2
- module Tasks
3
- module Helper
4
- def metrics_mapping(source_metrics, target_metrics)
5
- target_metrics.map do |target|
6
- source = source_metrics.find do |m|
7
- ThreeScaleToolbox::Helper.compare_hashes(m, target, ['system_name'])
8
- end || {}
9
-
10
- [source['id'], target['id']]
11
- end.to_h
12
- end
13
-
14
- def application_plan_mapping(source_app_plans, target_app_plans)
15
- mapping = target_app_plans.map do |target|
16
- source = source_app_plans.find do |app_plan|
17
- ThreeScaleToolbox::Helper.compare_hashes(app_plan, target, ['system_name'])
18
- end || {}
19
- [source['id'], target]
20
- end
21
- mapping.reject { |key, _| key.nil? }
22
- end
23
- end
24
- end
25
- end