Bug #33064
openTracker #33061: Puppet extraction for 3.0
Importing Puppet classes fails with Failed to create Puppetclass: Environment can't be blank
Description
2021-07-20T13:19:51 [I|app|4301f8b9] Started POST "/foreman_puppet/puppetclasses/obsolete_and_new" for 192.168.122.1 at 2021-07-20 13:19:51 +0000 2021-07-20T13:19:51 [I|app|4301f8b9] Processing by ForemanPuppet::PuppetclassesController#obsolete_and_new as HTML 2021-07-20T13:19:51 [I|app|4301f8b9] Parameters: {"utf8"=>"✓", "authenticity_token"=>"qj1/RSzucUXkdgGGj4AjseRv+YtMOfaIIt5fR5FPFQIIab0QLtkUxTFnkdbabxYkDfEmhZaj+2RaQH+R7MGLJg==", "changed"=>{"new"=>{"production"=>"{\"motd\":{\"new\":{\"ensure\":\"present\",\"config_file\":\"/etc/motd\",\"template\":\"motd/motd.erb\"}},\"stdlib\":{\"new\":{}},\"stdlib::stages\":{\"new\":{}}}"}}, "commit"=>"Update"} 2021-07-20T13:19:52 [W|app|4301f8b9] Failed to calculate obsolete and new 2021-07-20T13:19:52 [I|app|4301f8b9] Backtrace for 'Failed to calculate obsolete and new' error (Foreman::Exception): ERF42-0618 [Foreman::Exception]: Failed to create Puppetclass: Environment can't be blank 4301f8b9 | /usr/share/gems/gems/foreman_puppet-1.0.0.rc.1/app/services/foreman_puppet/puppet_class_importer.rb:350:in `find_or_create_puppetclass_for_env' 4301f8b9 | /usr/share/gems/gems/foreman_puppet-1.0.0.rc.1/app/services/foreman_puppet/puppet_class_importer.rb:254:in `block in add_classes_to_foreman' 4301f8b9 | /usr/share/gems/gems/foreman_puppet-1.0.0.rc.1/app/services/foreman_puppet/puppet_class_importer.rb:253:in `each' 4301f8b9 | /usr/share/gems/gems/foreman_puppet-1.0.0.rc.1/app/services/foreman_puppet/puppet_class_importer.rb:253:in `add_classes_to_foreman' 4301f8b9 | /usr/share/gems/gems/foreman_puppet-1.0.0.rc.1/app/services/foreman_puppet/puppet_class_importer.rb:73:in `block in obsolete_and_new' 4301f8b9 | /usr/share/gems/gems/foreman_puppet-1.0.0.rc.1/app/services/foreman_puppet/puppet_class_importer.rb:72:in `each' 4301f8b9 | /usr/share/gems/gems/foreman_puppet-1.0.0.rc.1/app/services/foreman_puppet/puppet_class_importer.rb:72:in `obsolete_and_new' 4301f8b9 | /usr/share/gems/gems/foreman_puppet-1.0.0.rc.1/app/controllers/concerns/foreman_puppet/environments_import.rb:31:in `obsolete_and_new' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/abstract_controller/base.rb:195:in `process_action' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_controller/metal/rendering.rb:30:in `process_action' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/abstract_controller/callbacks.rb:42:in `block in process_action' 4301f8b9 | /usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:112:in `block in run_callbacks' 4301f8b9 | /usr/share/foreman/app/controllers/concerns/foreman/controller/timezone.rb:10:in `set_timezone' 4301f8b9 | /usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks' 4301f8b9 | /usr/share/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread' 4301f8b9 | /usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks' 4301f8b9 | /usr/share/foreman/app/controllers/concerns/foreman/controller/topbar_sweeper.rb:12:in `set_topbar_sweeper_controller' 4301f8b9 | /usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks' 4301f8b9 | /usr/share/gems/gems/audited-4.9.0/lib/audited/sweeper.rb:14:in `around' 4301f8b9 | /usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks' 4301f8b9 | /usr/share/gems/gems/audited-4.9.0/lib/audited/sweeper.rb:14:in `around' 4301f8b9 | /usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:121:in `block in run_callbacks' 4301f8b9 | /usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:139:in `run_callbacks' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/abstract_controller/callbacks.rb:41:in `process_action' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_controller/metal/rescue.rb:22:in `process_action' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action' 4301f8b9 | /usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/notifications.rb:180:in `block in instrument' 4301f8b9 | /usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/notifications/instrumenter.rb:24:in `instrument' 4301f8b9 | /usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/notifications.rb:180:in `instrument' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_controller/metal/instrumentation.rb:32:in `process_action' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_controller/metal/params_wrapper.rb:245:in `process_action' 4301f8b9 | /usr/share/gems/gems/activerecord-6.0.3.7/lib/active_record/railties/controller_runtime.rb:27:in `process_action' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/abstract_controller/base.rb:136:in `process' 4301f8b9 | /usr/share/gems/gems/actionview-6.0.3.7/lib/action_view/rendering.rb:39:in `process' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_controller/metal.rb:190:in `dispatch' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_controller/metal.rb:254:in `dispatch' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/routing/route_set.rb:50:in `dispatch' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/routing/route_set.rb:33:in `serve' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/journey/router.rb:49:in `block in serve' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/journey/router.rb:32:in `each' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/journey/router.rb:32:in `serve' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/routing/route_set.rb:834:in `call' 4301f8b9 | /usr/share/gems/gems/railties-6.0.3.7/lib/rails/engine.rb:527:in `call' 4301f8b9 | /usr/share/gems/gems/railties-6.0.3.7/lib/rails/railtie.rb:190:in `public_send' 4301f8b9 | /usr/share/gems/gems/railties-6.0.3.7/lib/rails/railtie.rb:190:in `method_missing' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/routing/mapper.rb:48:in `serve' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/journey/router.rb:49:in `block in serve' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/journey/router.rb:32:in `each' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/journey/router.rb:32:in `serve' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/routing/route_set.rb:834:in `call' 4301f8b9 | /usr/share/gems/gems/apipie-dsl-2.4.0/lib/apipie_dsl/static_dispatcher.rb:67:in `call' 4301f8b9 | /usr/share/gems/gems/apipie-rails-0.5.17/lib/apipie/static_dispatcher.rb:66:in `call' 4301f8b9 | /usr/share/gems/gems/apipie-rails-0.5.17/lib/apipie/extractor/recorder.rb:137:in `call' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/static.rb:126:in `call' 4301f8b9 | /usr/share/foreman/lib/foreman/middleware/telemetry.rb:10:in `call' 4301f8b9 | /usr/share/gems/gems/apipie-rails-0.5.17/lib/apipie/middleware/checksum_in_headers.rb:27:in `call' 4301f8b9 | /usr/share/foreman/lib/foreman/middleware/catch_json_parse_errors.rb:9:in `call' 4301f8b9 | /usr/share/gems/gems/rack-2.2.3/lib/rack/tempfile_reaper.rb:15:in `call' 4301f8b9 | /usr/share/gems/gems/rack-2.2.3/lib/rack/etag.rb:27:in `call' 4301f8b9 | /usr/share/gems/gems/rack-2.2.3/lib/rack/conditional_get.rb:40:in `call' 4301f8b9 | /usr/share/gems/gems/rack-2.2.3/lib/rack/head.rb:12:in `call' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/http/content_security_policy.rb:18:in `call' 4301f8b9 | /usr/share/foreman/lib/foreman/middleware/logging_context_session.rb:22:in `call' 4301f8b9 | /usr/share/gems/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:266:in `context' 4301f8b9 | /usr/share/gems/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:260:in `call' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/cookies.rb:648:in `call' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call' 4301f8b9 | /usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/callbacks.rb:101:in `run_callbacks' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/callbacks.rb:26:in `call' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call' 4301f8b9 | /usr/share/gems/gems/railties-6.0.3.7/lib/rails/rack/logger.rb:37:in `call_app' 4301f8b9 | /usr/share/gems/gems/railties-6.0.3.7/lib/rails/rack/logger.rb:28:in `call' 4301f8b9 | /usr/share/gems/gems/sprockets-rails-3.2.1/lib/sprockets/rails/quiet_assets.rb:13:in `call' 4301f8b9 | /usr/share/foreman/lib/foreman/middleware/logging_context_request.rb:11:in `call' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/remote_ip.rb:81:in `call' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/request_id.rb:27:in `call' 4301f8b9 | /usr/share/gems/gems/rack-2.2.3/lib/rack/method_override.rb:24:in `call' 4301f8b9 | /usr/share/gems/gems/rack-2.2.3/lib/rack/runtime.rb:22:in `call' 4301f8b9 | /usr/share/gems/gems/activesupport-6.0.3.7/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/executor.rb:14:in `call' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/static.rb:126:in `call' 4301f8b9 | /usr/share/gems/gems/rack-2.2.3/lib/rack/sendfile.rb:110:in `call' 4301f8b9 | /usr/share/gems/gems/actionpack-6.0.3.7/lib/action_dispatch/middleware/host_authorization.rb:76:in `call' 4301f8b9 | /usr/share/gems/gems/secure_headers-6.3.0/lib/secure_headers/middleware.rb:11:in `call' 4301f8b9 | /usr/share/gems/gems/railties-6.0.3.7/lib/rails/engine.rb:527:in `call' 4301f8b9 | /usr/share/gems/gems/railties-6.0.3.7/lib/rails/railtie.rb:190:in `public_send' 4301f8b9 | /usr/share/gems/gems/railties-6.0.3.7/lib/rails/railtie.rb:190:in `method_missing' 4301f8b9 | /usr/share/gems/gems/rack-2.2.3/lib/rack/urlmap.rb:74:in `block in call' 4301f8b9 | /usr/share/gems/gems/rack-2.2.3/lib/rack/urlmap.rb:58:in `each' 4301f8b9 | /usr/share/gems/gems/rack-2.2.3/lib/rack/urlmap.rb:58:in `call' 4301f8b9 | /usr/share/gems/gems/puma-5.3.2/lib/puma/configuration.rb:249:in `call' 4301f8b9 | /usr/share/gems/gems/puma-5.3.2/lib/puma/request.rb:77:in `block in handle_request' 4301f8b9 | /usr/share/gems/gems/puma-5.3.2/lib/puma/thread_pool.rb:338:in `with_force_shutdown' 4301f8b9 | /usr/share/gems/gems/puma-5.3.2/lib/puma/request.rb:76:in `handle_request' 4301f8b9 | /usr/share/gems/gems/puma-5.3.2/lib/puma/server.rb:438:in `process_client' 4301f8b9 | /usr/share/gems/gems/puma-5.3.2/lib/puma/thread_pool.rb:145:in `block in spawn_thread' 4301f8b9 | /usr/share/gems/gems/logging-2.3.0/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context' 2021-07-20T13:19:52 [I|app|4301f8b9] Redirected to https://centos8-foreman-nightly.wisse.example.com/foreman_puppet/puppetclasses 2021-07-20T13:19:52 [I|app|4301f8b9] Completed 302 Found in 181ms (ActiveRecord: 13.3ms | Allocations: 16598)
Updated by Marek Hulán over 3 years ago
I assuem this is a new instance. Did you install plugin afterwards or from the beginning? I'm looking at the code and environments still use the old table so I'm not sure why it's not found. Debug log level may help. Do you perform this under admin or could it be permissions/taxonomies related? Also this is installer based right? The production env should be autocreated, can you check it's current org/loc?
Updated by Ewoud Kohl van Wijngaarden over 3 years ago
It was a fresh instance, installed using vagrant up centos8-foreman-nightly. It should install the plugin before migrating. I also ran it as admin. I'll also note that when I ran the importer via the API (using hammer) it did work.
Updated by Ondřej Ezr over 3 years ago
Was this before or after the bump to 3.0? It works for me on the current nightlies.