3scale_toolbox 0.18.3 → 0.19.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a3084c0b2b684a252c7e07c4c9a87e3087ada1ad6a677766aa508ac98e1f313
4
- data.tar.gz: 158b1b008a67836c2b27ccd8cbcd49f59995e4ac776eae93c59bf44b002cbf3a
3
+ metadata.gz: aaf0f178f318385464342bd932cc8e0e78f3e8a291e2226204692d62c1d2dca7
4
+ data.tar.gz: a5aeca4f1da609adb33fc11a5cecd1ec435fcdef8c08c8755796da768c47e9ea
5
5
  SHA512:
6
- metadata.gz: '02789c23291a2191617a56c3456297539b09e0922bbf62b57b613065b04d8951800d91f49989d510258c0c3b1baa308d1219f4c29373879c8a65f9a93bd4653a'
7
- data.tar.gz: abaca7089c51b5de57c118f5154a74466dd6671a96d7ec043b47ba0d4772761a2d9896b1195e762115ff121296c16cc2f195a5d39e9c20191393f45e6ee756bc
6
+ metadata.gz: 8521f2b23f6724ea4d9b62064710d22cd884cb2d518df211792b764cc7faaf753644801da6576d9fd61ce872b1503314346e842267632f8ff4b7b7a266658bc3
7
+ data.tar.gz: '099dcc4097d3d16803c30b8834e9db9985a3fc46b393f2bbfa31cb9eb5f646c5d9b729ece1fd63a7771b180d1a6d03246716163d2a42935a2b9cf2cec00a5817'
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.name = '3scale_toolbox'
9
9
  spec.version = ThreeScaleToolbox::VERSION
10
10
  spec.licenses = ['MIT']
11
- spec.authors = ['Michal Cichra', 'Eguzki Astiz Lezaun']
12
- spec.email = ['michal@3scale.net', 'eastizle@redhat.com']
11
+ spec.authors = ['Miguel Soriano', 'Eguzki Astiz Lezaun']
12
+ spec.email = ['msoriano@redhat.com', 'eastizle@redhat.com']
13
13
 
14
14
  spec.summary = %q{3scale Toolbox.}
15
15
  spec.description = %q{3scale tools to manage your API from the terminal.}
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
34
34
  spec.add_development_dependency 'rake', '~> 13.0'
35
35
  spec.add_development_dependency 'rspec', '~> 3.8'
36
36
  spec.add_development_dependency 'webmock', '~> 3.4'
37
- spec.required_ruby_version = '>= 2.5'
37
+ spec.required_ruby_version = '>= 2.6'
38
38
 
39
39
  spec.add_dependency '3scale-api', '~> 1.4'
40
40
  spec.add_dependency 'cri', '~> 2.15'
data/README.md CHANGED
@@ -39,7 +39,6 @@
39
39
  ## Requirements
40
40
  Supported Ruby interpreters
41
41
 
42
- * MRI 2.5
43
42
  * MRI 2.6
44
43
  * MRI 2.7
45
44
 
@@ -219,5 +218,5 @@ Install, uninstall and update plugins using tools like [RubyGems](https://guides
219
218
 
220
219
  ## Contributing
221
220
 
222
- Bug reports and pull requests are welcome on GitHub at https://github.com/3scale/3scale_toolbox.
221
+ If you are interested in contributing to 3scale Toolbox, please refer to instructions available [here](docs/contributing.md)
223
222
 
@@ -2,6 +2,7 @@ require '3scale_toolbox/commands/backend_command/copy_command/task'
2
2
  require '3scale_toolbox/commands/backend_command/copy_command/create_or_update_target_backend_task'
3
3
  require '3scale_toolbox/commands/backend_command/copy_command/copy_metrics_task'
4
4
  require '3scale_toolbox/commands/backend_command/copy_command/copy_methods_task'
5
+ require '3scale_toolbox/commands/backend_command/copy_command/delete_mapping_rules_task'
5
6
  require '3scale_toolbox/commands/backend_command/copy_command/copy_mapping_rules_task'
6
7
 
7
8
  module ThreeScaleToolbox
@@ -41,6 +42,7 @@ module ThreeScaleToolbox
41
42
  # First metrics as methods need 'hits' metric in target backend
42
43
  tasks << CopyCommand::CopyMetricsTask.new(context)
43
44
  tasks << CopyCommand::CopyMethodsTask.new(context)
45
+ tasks << CopyCommand::DeleteMappingRulesTask.new(context)
44
46
  tasks << CopyCommand::CopyMappingRulesTask.new(context)
45
47
  tasks.each(&:call)
46
48
  end
@@ -56,6 +58,7 @@ module ThreeScaleToolbox
56
58
  source_remote: threescale_client(fetch_required_option(:source)),
57
59
  target_remote: threescale_client(fetch_required_option(:destination)),
58
60
  source_backend_ref: arguments[:source_backend],
61
+ delete_mapping_rules: true,
59
62
  option_target_system_name: options[:'target-system-name']
60
63
  }
61
64
  end
@@ -0,0 +1,18 @@
1
+ module ThreeScaleToolbox
2
+ module Commands
3
+ module BackendCommand
4
+ module CopyCommand
5
+ class DeleteMappingRulesTask
6
+ include Task
7
+
8
+ # entrypoint
9
+ def run
10
+ return unless delete_mapping_rules
11
+
12
+ target_backend.mapping_rules.each(&:delete)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -53,6 +53,10 @@ module ThreeScaleToolbox
53
53
  context[:report] ||= {}
54
54
  end
55
55
 
56
+ def delete_mapping_rules
57
+ context.fetch(:delete_mapping_rules, false)
58
+ end
59
+
56
60
  private
57
61
 
58
62
  def find_source_backend
@@ -108,6 +108,8 @@ module ThreeScaleToolbox
108
108
  end
109
109
 
110
110
  def openapi_parser
111
+ raise ThreeScaleToolbox::Error, 'only JSON/YAML format is supported' unless openapi_resource.is_a?(Hash)
112
+
111
113
  if openapi_resource.key?('openapi')
112
114
  ThreeScaleToolbox::OpenAPI::OAS3.build(openapi_path, openapi_resource, validate: validate)
113
115
  else
@@ -73,6 +73,7 @@ module ThreeScaleToolbox
73
73
  source_remote: threescale_client(fetch_required_option(:source)),
74
74
  target_remote: threescale_client(fetch_required_option(:destination)),
75
75
  source_service_ref: arguments[:source_product],
76
+ delete_mapping_rules: true,
76
77
  option_target_system_name: options[:'target-system-name']
77
78
  }
78
79
  end
@@ -27,6 +27,7 @@ module ThreeScaleToolbox
27
27
  # First metrics as methods need 'hits' metric in target backend
28
28
  tasks << Commands::BackendCommand::CopyCommand::CopyMetricsTask.new(backend_context)
29
29
  tasks << Commands::BackendCommand::CopyCommand::CopyMethodsTask.new(backend_context)
30
+ tasks << Commands::BackendCommand::CopyCommand::DeleteMappingRulesTask.new(backend_context)
30
31
  tasks << Commands::BackendCommand::CopyCommand::CopyMappingRulesTask.new(backend_context)
31
32
  tasks.each(&:call)
32
33
 
@@ -72,12 +73,17 @@ module ThreeScaleToolbox
72
73
  context.fetch(:logger)
73
74
  end
74
75
 
76
+ def delete_mapping_rules
77
+ context.fetch(:delete_mapping_rules, false)
78
+ end
79
+
75
80
  def create_backend_context(source_backend)
76
81
  {
77
82
  source_remote: source_remote,
78
83
  target_remote: target_remote,
79
84
  source_backend: source_backend,
80
85
  source_backend_ref: source_backend.id,
86
+ delete_mapping_rules: delete_mapping_rules,
81
87
  logger: logger
82
88
  }
83
89
  end
@@ -28,6 +28,7 @@ module ThreeScaleToolbox
28
28
  target_remote: remote,
29
29
  source_remote: crd_remote,
30
30
  source_service_ref: product.system_name,
31
+ delete_mapping_rules: true,
31
32
  logger: Logger.new(File::NULL)
32
33
  }
33
34
 
@@ -62,7 +62,7 @@ module ThreeScaleToolbox
62
62
  end
63
63
 
64
64
  def generic_find(remote, criteria)
65
- account = remote.find_account(criteria)
65
+ account = remote.find_account(**criteria)
66
66
  if (errors = account['errors'])
67
67
  raise ThreeScaleToolbox::ThreeScaleApiError.new(
68
68
  'Account find returned errors', errors
@@ -140,8 +140,15 @@ module ThreeScaleToolbox
140
140
  # Generic methods
141
141
  ###
142
142
 
143
- def method_missing(name, *args)
144
- subject.public_send(name, *args)
143
+ def method_missing(name, *args, **kwargs)
144
+ # Only needed to keep ruby 2.6 support
145
+ # For ruby >= 2.7 it is enough with
146
+ # subject.public_send(name, *args, **kwargs)
147
+ if kwargs.empty?
148
+ subject.public_send(name, *args)
149
+ else
150
+ subject.public_send(name, *args, **kwargs)
151
+ end
145
152
  end
146
153
 
147
154
  def respond_to_missing?(method_name, include_private = false)
@@ -1,3 +1,3 @@
1
1
  module ThreeScaleToolbox
2
- VERSION = '0.18.3'
2
+ VERSION = '0.19.0'
3
3
  end
data/licenses.xml CHANGED
@@ -13,7 +13,7 @@
13
13
  </dependency>
14
14
  <dependency>
15
15
  <packageName>3scale_toolbox</packageName>
16
- <version>0.18.3</version>
16
+ <version>0.19.0</version>
17
17
  <licenses>
18
18
  <license>
19
19
  <name>MIT</name>
@@ -23,7 +23,7 @@
23
23
  </dependency>
24
24
  <dependency>
25
25
  <packageName>activesupport</packageName>
26
- <version>6.1.3.2</version>
26
+ <version>6.1.4</version>
27
27
  <licenses>
28
28
  <license>
29
29
  <name>MIT</name>
@@ -33,7 +33,7 @@
33
33
  </dependency>
34
34
  <dependency>
35
35
  <packageName>addressable</packageName>
36
- <version>2.7.0</version>
36
+ <version>2.8.0</version>
37
37
  <licenses>
38
38
  <license>
39
39
  <name>Apache 2.0</name>
@@ -53,7 +53,7 @@
53
53
  </dependency>
54
54
  <dependency>
55
55
  <packageName>bundler</packageName>
56
- <version>2.1.4</version>
56
+ <version>2.2.21</version>
57
57
  <licenses>
58
58
  <license>
59
59
  <name>MIT</name>
@@ -63,7 +63,7 @@
63
63
  </dependency>
64
64
  <dependency>
65
65
  <packageName>codecov</packageName>
66
- <version>0.5.1</version>
66
+ <version>0.5.2</version>
67
67
  <licenses>
68
68
  <license>
69
69
  <name>MIT</name>
@@ -141,7 +141,7 @@
141
141
  </dependency>
142
142
  <dependency>
143
143
  <packageName>docile</packageName>
144
- <version>1.3.5</version>
144
+ <version>1.4.0</version>
145
145
  <licenses>
146
146
  <license>
147
147
  <name>MIT</name>
@@ -228,16 +228,6 @@
228
228
  <url>http://opensource.org/licenses/mit-license</url>
229
229
  </license>
230
230
  </licenses>
231
- </dependency>
232
- <dependency>
233
- <packageName>mini_portile2</packageName>
234
- <version>2.5.3</version>
235
- <licenses>
236
- <license>
237
- <name>MIT</name>
238
- <url>http://opensource.org/licenses/mit-license</url>
239
- </license>
240
- </licenses>
241
231
  </dependency>
242
232
  <dependency>
243
233
  <packageName>minitest</packageName>
@@ -271,7 +261,7 @@
271
261
  </dependency>
272
262
  <dependency>
273
263
  <packageName>nokogiri</packageName>
274
- <version>1.11.7</version>
264
+ <version>1.12.3</version>
275
265
  <licenses>
276
266
  <license>
277
267
  <name>MIT</name>
@@ -301,7 +291,7 @@
301
291
  </dependency>
302
292
  <dependency>
303
293
  <packageName>pry</packageName>
304
- <version>0.13.1</version>
294
+ <version>0.14.1</version>
305
295
  <licenses>
306
296
  <license>
307
297
  <name>MIT</name>
@@ -385,7 +375,7 @@
385
375
  </dependency>
386
376
  <dependency>
387
377
  <packageName>rspec-mocks</packageName>
388
- <version>3.10.1</version>
378
+ <version>3.10.2</version>
389
379
  <licenses>
390
380
  <license>
391
381
  <name>MIT</name>
@@ -395,7 +385,7 @@
395
385
  </dependency>
396
386
  <dependency>
397
387
  <packageName>rspec-support</packageName>
398
- <version>3.10.1</version>
388
+ <version>3.10.2</version>
399
389
  <licenses>
400
390
  <license>
401
391
  <name>MIT</name>
@@ -405,7 +395,7 @@
405
395
  </dependency>
406
396
  <dependency>
407
397
  <packageName>ruby2_keywords</packageName>
408
- <version>0.0.4</version>
398
+ <version>0.0.5</version>
409
399
  <licenses>
410
400
  <license>
411
401
  <name>ruby</name>
@@ -449,7 +439,7 @@
449
439
  </dependency>
450
440
  <dependency>
451
441
  <packageName>simplecov_json_formatter</packageName>
452
- <version>0.1.2</version>
442
+ <version>0.1.3</version>
453
443
  <licenses>
454
444
  <license>
455
445
  <name>MIT</name>
@@ -489,7 +479,7 @@
489
479
  </dependency>
490
480
  <dependency>
491
481
  <packageName>webmock</packageName>
492
- <version>3.11.1</version>
482
+ <version>3.13.0</version>
493
483
  <licenses>
494
484
  <license>
495
485
  <name>MIT</name>
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: 3scale_toolbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.3
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
- - Michal Cichra
7
+ - Miguel Soriano
8
8
  - Eguzki Astiz Lezaun
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2021-06-11 00:00:00.000000000 Z
12
+ date: 2021-08-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -139,7 +139,7 @@ dependencies:
139
139
  version: '0.20'
140
140
  description: 3scale tools to manage your API from the terminal.
141
141
  email:
142
- - michal@3scale.net
142
+ - msoriano@redhat.com
143
143
  - eastizle@redhat.com
144
144
  executables:
145
145
  - 3scale
@@ -184,6 +184,7 @@ files:
184
184
  - lib/3scale_toolbox/commands/backend_command/copy_command/copy_methods_task.rb
185
185
  - lib/3scale_toolbox/commands/backend_command/copy_command/copy_metrics_task.rb
186
186
  - lib/3scale_toolbox/commands/backend_command/copy_command/create_or_update_target_backend_task.rb
187
+ - lib/3scale_toolbox/commands/backend_command/copy_command/delete_mapping_rules_task.rb
187
188
  - lib/3scale_toolbox/commands/backend_command/copy_command/task.rb
188
189
  - lib/3scale_toolbox/commands/copy_command.rb
189
190
  - lib/3scale_toolbox/commands/copy_command/service_command.rb
@@ -343,7 +344,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
343
344
  requirements:
344
345
  - - ">="
345
346
  - !ruby/object:Gem::Version
346
- version: '2.5'
347
+ version: '2.6'
347
348
  required_rubygems_version: !ruby/object:Gem::Requirement
348
349
  requirements:
349
350
  - - ">="