Bug #17894
closedapipie cache generation with facets fails due to apipie doc dependencies
Description
When using the plugin api to hook into the facet framework, apipie doc generation will fail with the traceback below.
this is due to an ordering issue where the facets are loaded, but the api param groups are not. And so the hosts controller apidoc is loaded and thus the facet framework attempts to load their api param group and fails, as the facet api param group has not been loaded.
Updated by Justin Sherrill almost 8 years ago
traceback
param group Katello::Api::V2::HostContentsController#content_facet_attributes not defined /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/application.rb:152:in `get_param_group' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/apipie_module.rb:18:in `method_missing' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/dsl_definition.rb:338:in `param_group' /home/vagrant/git/foreman/app/controllers/api/v2/hosts_controller.rb:102:in `block (4 levels) in <class:HostsController>' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:286:in `instance_exec' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:286:in `initialize' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:279:in `new' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:279:in `build' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:24:in `block in find' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:23:in `each' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:23:in `find' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/param_description.rb:63:in `initialize' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/param_description.rb:16:in `new' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/param_description.rb:16:in `from_dsl_data' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:300:in `block in params_ordered' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:297:in `map' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:297:in `params_ordered' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:353:in `prepare_hash_params' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:293:in `initialize' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:279:in `new' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:279:in `build' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:24:in `block in find' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:23:in `each' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/validator.rb:23:in `find' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/param_description.rb:63:in `initialize' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/param_description.rb:16:in `new' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/param_description.rb:16:in `from_dsl_data' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/method_description.rb:48:in `block in initialize' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/method_description.rb:47:in `map' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/method_description.rb:47:in `initialize' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/application.rb:92:in `new' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/application.rb:92:in `block in define_method_description' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/application.rb:84:in `each' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/application.rb:84:in `define_method_description' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/apipie_module.rb:18:in `method_missing' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/dsl_definition.rb:408:in `method_added' /home/vagrant/git/foreman/app/controllers/api/v2/hosts_controller.rb:111:in `<class:HostsController>' /home/vagrant/git/foreman/app/controllers/api/v2/hosts_controller.rb:3:in `<module:V2>' /home/vagrant/git/foreman/app/controllers/api/v2/hosts_controller.rb:2:in `<module:Api>' /home/vagrant/git/foreman/app/controllers/api/v2/hosts_controller.rb:1:in `<top (required)>' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:457:in `load' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:457:in `block in load_file' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:647:in `new_constants_in' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:456:in `load_file' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:354:in `require_or_load' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:494:in `load_missing_constant' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.7.1/lib/active_support/dependencies.rb:184:in `const_missing' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.7.1/lib/active_support/inflector/methods.rb:276:in `const_get' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.7.1/lib/active_support/inflector/methods.rb:276:in `block in constantize' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.7.1/lib/active_support/inflector/methods.rb:259:in `each' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.7.1/lib/active_support/inflector/methods.rb:259:in `inject' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.7.1/lib/active_support/inflector/methods.rb:259:in `constantize' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/activesupport-4.2.7.1/lib/active_support/core_ext/string/inflections.rb:66:in `constantize' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/application.rb:412:in `load_controller_from_file' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/application.rb:301:in `block in reload_documentation' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/application.rb:300:in `each' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/application.rb:300:in `reload_documentation' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/apipie/apipie_module.rb:18:in `method_missing' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/tasks/apipie.rake:194:in `with_loaded_documentation' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/apipie-rails-0.3.7/lib/tasks/apipie.rake:64:in `block (2 levels) in <top (required)>' /home/vagrant/.rvm/gems/ruby-2.2.4/gems/rake-12.0.0/exe/rake:27:in `<top (required)>' /home/vagrant/.rvm/gems/ruby-2.2.4/bin/ruby_executable_hooks:15:in `eval' /home/vagrant/.rvm/gems/ruby-2.2.4/bin/ruby_executable_hooks:15:in `<main>'
Updated by The Foreman Bot almost 8 years ago
- Status changed from New to Ready For Testing
- Pull request https://github.com/theforeman/foreman/pull/4150 added
Updated by Anonymous almost 8 years ago
- Status changed from Ready For Testing to Closed
- % Done changed from 0 to 100
Applied in changeset 61ccbc34b4a69682b56ac67dbf0aedc5b71cc27f.
Updated by Dominic Cleal almost 8 years ago
- Translation missing: en.field_release changed from 189 to 210
Looks related to #13216, not 1.14.0, moving.
Updated by Justin Sherrill almost 8 years ago
Its actually related to https://github.com/theforeman/foreman/pull/3987
This broke inheritance of facet attributes from a hostgroup and was fixed alongside in https://github.com/Katello/katello/pull/6474
When moving to the plugin framework as part of https://github.com/Katello/katello/pull/6474, it became clear after the merge that this breaks apipie cache generation.
So now we are stuck unable to build our plugin (in nightly and 1.14) until this change gets in, or we revert part of https://github.com/Katello/katello/pull/6474
Could we get this moved back to 1.14.0?
Updated by Dominic Cleal almost 8 years ago
- Translation missing: en.field_release changed from 210 to 189
Thanks for the info - please include it in the ticket if setting the release.