[ContentMigration] Katello::Errors::Pulp3MigrationError: Pulp 3 migration cannot run. Types file, docker have already been migrated

Problem:
Just upgraded from Foreman 1.24 to 2.0 and from Katello 3.14 to 3.15 RC2.

Unable to migrate from Pulp 2 to Pulp 3.
After running:

foreman-maintain advanced procedure run content-prepare

Receive this error:

Katello::Errors::Pulp3MigrationError: Pulp 3 migration cannot run. Types file, docker have already been migrated.

Expected outcome:

I’d expect this to just be a warning, not an error if in fact file and docker have already been migrated (I don’t have these content types, perhaps a clue.)

Foreman and Proxy versions:
2.0.0

Foreman and Proxy plugin versions:
2.0.0

Distribution and version:
CentOS 7.7.1908

Other relevant data:
`
2: Actions::Pulp3::ContentMigration (error) [ 0.30s / 0.30s ] Skip
Queue: default

Started at: 2020-04-15 20:11:48 UTC

Ended at: 2020-04-15 20:11:48 UTC

Real time: 0.30s

Execution time (excluding suspended state): 0.30s

Input:


services_checked:

  • pulp3
    smart_proxy_id: 1
    remote_user: admin
    remote_cp_user: admin
    current_request_id:
    current_timezone: UTC
    current_user_id: 1
    current_organization_id:
    current_location_id:
    Output:

— {}
Error:

Katello::Errors::Pulp3MigrationError

Pulp 3 migration cannot run. Types file, docker have already been migrated.


  • “/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.15.0.rc2/app/services/katello/pulp3/migration.rb:21:in
    `initialize’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.15.0.rc2/app/lib/actions/pulp3/content_migration.rb:12:in
    `new’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.15.0.rc2/app/lib/actions/pulp3/content_migration.rb:12:in
    `invoke_external_task’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action/polling.rb:84:in
    `initiate_external_action’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action/polling.rb:19:in
    `run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action/cancellable.rb:14:in
    `run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.15.0.rc2/app/lib/actions/pulp3/abstract_async_task.rb:45:in
    `run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action.rb:563:in
    `block (3 levels) in execute_run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:27:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware.rb:19:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware.rb:32:in
    `run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:23:in
    `call’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:27:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware.rb:19:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.15.0.rc2/app/lib/actions/middleware/remote_action.rb:16:in
    `block in run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.15.0.rc2/app/lib/actions/middleware/remote_action.rb:40:in
    `block in as_remote_user’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.15.0.rc2/app/models/katello/concerns/user_extensions.rb:21:in
    `cp_config’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.15.0.rc2/app/lib/actions/middleware/remote_action.rb:27:in
    `as_cp_user’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.15.0.rc2/app/lib/actions/middleware/remote_action.rb:39:in
    `as_remote_user’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.15.0.rc2/app/lib/actions/middleware/remote_action.rb:16:in
    `run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:23:in
    `call’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:27:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware.rb:19:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/rails_executor_wrap.rb:14:in
    `block in run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/execution_wrapper.rb:87:in
    `wrap’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/rails_executor_wrap.rb:13:in
    `run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:23:in
    `call’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:27:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware.rb:19:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action/progress.rb:31:in
    `with_progress_calculation’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action/progress.rb:17:in
    `run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:23:in
    `call’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:27:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware.rb:19:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/keep_current_request_id.rb:15:in
    `block in run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/keep_current_request_id.rb:49:in
    `restore_current_request_id’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/keep_current_request_id.rb:15:in
    `run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:23:in
    `call’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:27:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware.rb:19:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/keep_current_timezone.rb:15:in
    `block in run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/keep_current_timezone.rb:44:in
    `restore_curent_timezone’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/keep_current_timezone.rb:15:in
    `run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:23:in
    `call’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:27:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware.rb:19:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/keep_current_user.rb:15:in
    `block in run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/keep_current_user.rb:44:in
    `restore_curent_user’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/keep_current_user.rb:15:in
    `run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:23:in
    `call’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:27:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware.rb:19:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/keep_current_taxonomies.rb:15:in
    `block in run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/keep_current_taxonomies.rb:45:in
    `restore_current_taxonomies’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/foreman-tasks-1.0.1/app/lib/actions/middleware/keep_current_taxonomies.rb:15:in
    `run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:23:in
    `call’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:27:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware.rb:19:in
    `pass’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware.rb:32:in
    `run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/stack.rb:23:in
    `call’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/middleware/world.rb:31:in
    `execute’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action.rb:562:in
    `block (2 levels) in execute_run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action.rb:561:in
    `catch’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action.rb:561:in
    `block in execute_run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action.rb:475:in
    `block in with_error_handling’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action.rb:475:in
    `catch’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action.rb:475:in
    `with_error_handling’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action.rb:556:in
    `execute_run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/action.rb:285:in
    `execute’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:18:in
    `block (2 levels) in execute’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/execution_plan/steps/abstract.rb:167:in
    `with_meta_calculation’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:17:in
    `block in execute’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:32:in
    `open_action’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:16:in
    `execute’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/director.rb:68:in
    `execute’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/executors/sidekiq/worker_jobs.rb:11:in
    `block (2 levels) in perform’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/executors.rb:12:in
    `run_user_code’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/executors/sidekiq/worker_jobs.rb:9:in
    `block in perform’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/executors/sidekiq/worker_jobs.rb:25:in
    `with_telemetry’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/executors/sidekiq/worker_jobs.rb:8:in
    `perform’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/dynflow-1.4.2/lib/dynflow/executors/sidekiq/serialization.rb:27:in
    `perform’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:192:in
    `execute_job’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:165:in
    `block (2 levels) in process’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:128:in
    `block in invoke’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/middleware/chain.rb:133:in
    `invoke’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:164:in
    `block in process’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:137:in
    `block (6 levels) in dispatch’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:109:in
    `local’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:136:in
    `block (5 levels) in dispatch’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq.rb:37:in
    `block in module:Sidekiq’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:132:in
    `block (4 levels) in dispatch’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:250:in
    `stats’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:127:in
    `block (3 levels) in dispatch’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/job_logger.rb:8:in
    `call’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:126:in
    `block (2 levels) in dispatch’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/job_retry.rb:74:in
    `global’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:125:in
    `block in dispatch’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:48:in
    `with_context’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/logging.rb:42:in
    `with_job_hash_context’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:124:in
    `dispatch’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:163:in
    `process’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:83:in
    `process_one’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/processor.rb:71:in
    `run’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:16:in
    `watchdog’”
  • “/opt/theforeman/tfm/root/usr/share/gems/gems/sidekiq-5.2.7/lib/sidekiq/util.rb:25:in
    `block in safe_thread’”
  • "/opt/theforeman/tfm/root/usr/share/gems/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in
    block in create_with_logging_context'"

Hi @jforeman,

The Pulp 3 migration only supports file and docker at the moment. I do believe it’s a bug that you saw that error, instead it should probably warn that nothing will be migrated.

When you say that you don’t have the file and docker content types, are they disabled or do you simply not have any file or docker content?

Ah, I see. File & docker are enabled in my instance, I simply don’t have any file or docker content.

Oh, from the error you got I expected File and Docker to be disabled. I’m curious, what do you see on your main smart proxy on the Services tag under Pulpcore? (https://<server_name>/smart_proxies/<your_pulp_master>#services)

Docker and file should say that they’re overridden to Pulp 2. I’m wondering if your upgrade from 3.14 to 3.15 RC2 enabled Pulp 3 (Pulpcore).

I’ve built a new server 2.0 to remove any update errors. But still smae username issue
https://lab03torch03.devops.vocus.net:9090
Version
2.0.0
Active features

External IPAM
HTTPBoot
Logs
Pulp
Pulpcore

Puppet
Puppet CA
Templates
TFTP

Hi iballou,

Unfortunately, I rolled back to 3.14 and Foreman 1.24.2 so I am unable to review the config at the new versions. I’ve uploaded what it looks like now. I will be upgrading again shortly after 3.15 is stable, though.

Thank you!

1 Like

Got the same issue, can see these on my infrastructure:

DNS

Version

2.0.0

Domänen

Dynflow

Version

0.2.4

HTTPBoot

Version

2.0.0

Openscap

Version

0.7.2

Spool errors

Keine gefunden

Pulp

Version

2.0.0

Pulp server version

2.21.1

Database connection

Messaging connection

Workers

6

Supported Content Types

  • deb
  • puppet
  • yum

Pulpcore

Version

2.0.0

Supported Content Types

  • docker
  • file

Realm

Version

2.0.0

Realms

SSH

Version

0.2.1

TFTP

Version

2.0.0

TFTP-Server

false

Templates

Version

2.0.0

1 Like