Migrating 3scale Applications and Mapping rules using Toolbox
Issue
We are facing an issue during the migration of Applications and Mapping Rules from a 3scale version 2.7 (OCP3.11) to version 2.9 (OCP4.5) using the Toolbox copy command:
3scale -k copy service {SERVICE_ID} --source=https://{ACCESS_KEY}@3{3SCALE_SRC_URL} --destination=https://{DEST_KEY}@{3SCALE_DST_URL}
The following error is being returned:
{
"code": "E_UNKNOWN",
"message": "#<Net::HTTPForbidden 403 Forbidden readbody=true> body={\"status\":\"Forbidden\"}",
"class": "ThreeScale::API::HttpClient::ForbiddenError",
"stacktrace": [
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale-api-1.4.0/lib/3scale/api/http_client.rb:74:in `forbidden!'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale-api-1.4.0/lib/3scale/api/http_client.rb:59:in `parse'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale-api-1.4.0/lib/3scale/api/http_client.rb:36:in `get'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale-api-1.4.0/lib/3scale/api/client.rb:1025:in `list_backend_usages'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/lib/3scale_toolbox/remote_cache.rb:144:in `public_send'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/lib/3scale_toolbox/remote_cache.rb:144:in `method_missing'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/lib/3scale_toolbox/entities/service.rb:324:in `backend_usage_list'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/lib/3scale_toolbox/crds/product_dump.rb:30:in `to_cr'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/lib/3scale_toolbox/commands/product_command/export_command.rb:38:in `serialized_object'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/lib/3scale_toolbox/commands/product_command/export_command.rb:24:in `block in run'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/lib/3scale_toolbox/commands/product_command/export_command.rb:49:in `select_output'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/lib/3scale_toolbox/commands/product_command/export_command.rb:23:in `run'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/cri-2.15.11/lib/cri/command_runner.rb:34:in `call'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/cri-2.15.11/lib/cri/command_dsl.rb:294:in `block in runner'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/cri-2.15.11/lib/cri/command.rb:362:in `run_this'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/cri-2.15.11/lib/cri/command.rb:298:in `run'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/cri-2.15.11/lib/cri/command.rb:316:in `run'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/cri-2.15.11/lib/cri/command.rb:316:in `run'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/lib/3scale_toolbox/cli.rb:47:in `block in run'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/lib/3scale_toolbox/cli/error_handler.rb:5:in `block in error_watchdog'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/lib/3scale_toolbox/cli/error_handler.rb:11:in `error_watchdog'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/lib/3scale_toolbox/cli/error_handler.rb:5:in `error_watchdog'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/lib/3scale_toolbox/cli.rb:44:in `run'",
"/opt/3scale-toolbox/embedded/lib/ruby/gems/2.5.0/gems/3scale_toolbox-0.18.0/exe/3scale:15:in `<top (required)>'",
"/opt/3scale-toolbox/bin/3scale:23:in `load'",
"/opt/3scale-toolbox/bin/3scale:23:in `<main>'"
]
}
Environment
- Red Hat 3scale API Management
- 2.X On-Premises
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.