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 +4 -4
- data/3scale_toolbox.gemspec +3 -3
- data/README.md +1 -2
- data/lib/3scale_toolbox/commands/backend_command/copy_command.rb +3 -0
- data/lib/3scale_toolbox/commands/backend_command/copy_command/delete_mapping_rules_task.rb +18 -0
- data/lib/3scale_toolbox/commands/backend_command/copy_command/task.rb +4 -0
- data/lib/3scale_toolbox/commands/import_command/openapi.rb +2 -0
- data/lib/3scale_toolbox/commands/product_command/copy_command.rb +1 -0
- data/lib/3scale_toolbox/commands/product_command/copy_command/copy_backends_task.rb +6 -0
- data/lib/3scale_toolbox/commands/product_command/import_command.rb +1 -0
- data/lib/3scale_toolbox/entities/account.rb +1 -1
- data/lib/3scale_toolbox/remote_cache.rb +9 -2
- data/lib/3scale_toolbox/version.rb +1 -1
- data/licenses.xml +13 -23
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aaf0f178f318385464342bd932cc8e0e78f3e8a291e2226204692d62c1d2dca7
|
4
|
+
data.tar.gz: a5aeca4f1da609adb33fc11a5cecd1ec435fcdef8c08c8755796da768c47e9ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8521f2b23f6724ea4d9b62064710d22cd884cb2d518df211792b764cc7faaf753644801da6576d9fd61ce872b1503314346e842267632f8ff4b7b7a266658bc3
|
7
|
+
data.tar.gz: '099dcc4097d3d16803c30b8834e9db9985a3fc46b393f2bbfa31cb9eb5f646c5d9b729ece1fd63a7771b180d1a6d03246716163d2a42935a2b9cf2cec00a5817'
|
data/3scale_toolbox.gemspec
CHANGED
@@ -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 = ['
|
12
|
-
spec.email = ['
|
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.
|
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
|
-
|
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
|
@@ -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
|
@@ -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
|
-
|
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)
|
data/licenses.xml
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
</dependency>
|
14
14
|
<dependency>
|
15
15
|
<packageName>3scale_toolbox</packageName>
|
16
|
-
<version>0.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
4
|
+
version: 0.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Miguel Soriano
|
8
8
|
- Eguzki Astiz Lezaun
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-
|
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
|
-
-
|
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.
|
347
|
+
version: '2.6'
|
347
348
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
348
349
|
requirements:
|
349
350
|
- - ">="
|