Description of problem: When we define a filter without following the specified format (E:V-R), the filter created successfully but while publishing, UI raised an error. -- Failed to publish content view 'publish' from definition 'con-def-0812-195450-306'. undefined method `keys' for [{:term=>{:version=>"01-0.01-1"}}, {:term=>{:release=>"01-1"}}]:Array (NoMethodError) -- Version-Release number of selected component (if applicable): katello-1.4.3-1.git.162.c75fe6b.el6.noarch How reproducible: always Steps to Reproduce: 1. Create a content-view 2. Select any created repo 3. Create a package filter 4. do not follow defined package format 5. Publish the CV Actual results: -- Failed to publish content view 'publish' from definition 'con-def-0812-195450-306'. undefined method `keys' for [{:term=>{:version=>"01-0.01-1"}}, {:term=>{:release=>"01-1"}}]:Array (NoMethodError) -- Expected results: At first place, UI should not allow user to create filter when package format is not appropriate. If its allowed then the error message raised while publishing the CV should be rephrased. Additional info: /usr/share/katello/app/models/glue/elastic_search/package.rb:154:in `block in search' /usr/share/katello/app/models/glue/elastic_search/package.rb:153:in `each' /usr/share/katello/app/models/glue/elastic_search/package.rb:153:in `search' /usr/share/katello/app/models/package_rule.rb:55:in `generate_version_clause' /usr/share/katello/app/models/package_rule.rb:36:in `block in generate_clauses' /usr/share/katello/app/models/package_rule.rb:26:in `each' /usr/share/katello/app/models/package_rule.rb:26:in `each_with_object' /usr/share/katello/app/models/package_rule.rb:26:in `generate_clauses' /usr/share/katello/app/models/content_view_definition.rb:296:in `block in generate_clauses' /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/relation/delegation.rb:6:in `collect' /opt/rh/ruby193/root/usr/share/gems/gems/activerecord-3.2.8/lib/active_record/relation/delegation.rb:6:in `collect' /usr/share/katello/app/models/content_view_definition.rb:295:in `generate_clauses' /usr/share/katello/app/models/content_view_definition.rb:257:in `unassociation_clauses' /usr/share/katello/app/models/content_view_definition.rb:146:in `block (2 levels) in unassociate_contents' /usr/share/katello/app/models/content_view_definition.rb:145:in `each' /usr/share/katello/app/models/content_view_definition.rb:145:in `block in unassociate_contents' /usr/share/katello/app/models/content_view_definition.rb:144:in `each' /usr/share/katello/app/models/content_view_definition.rb:144:in `unassociate_contents'
Investigated further and found that the issue is with the type 'only-version'. When you filter a package of specific version with type 'Only-Version' then UI raised the undefined method error. Step to reproduce it: - sync a repo: http://inecas.fedorapeople.org/fakerepos/zoo/ - Create a package filter (include/exclude) for package camel - select 'only-Version' having value '0.1-1'
Since this issue was entered in Red Hat Bugzilla, the release flag has been set to ? to ensure that it is properly evaluated for this release.
Easily reproducible with snap4 compose4. steps to reproduce 1. create a CV and select the repo 2. create filter and associate repo 3. Create a package filter (include/exclude) for any pkg (e.g. camel) 4. select 'only-Version' having value '0.1' 5. publish the cv
The code has changed drastically since the issue was initially reported. Tested this scenario on Satellite 6.2 GA and I was to publish the content view successfully without error. In my test, I used a package exclusion filter and the package was correctly excluded from the published CV. The following is the status of the publish task: Id: fc4f117a-b930-40b7-8f8b-422f5b6aec04 Label: Actions::Katello::ContentView::Publish Name: Publish Owner: admin Execution type: Delayed Start at: 2016-08-04 14:02:42 -0400 Start before: - Started at: 2016-08-04 14:02:42 -0400 Ended at: 2016-08-04 14:03:12 -0400 State: stopped Result: success Params: content view 'zoo'; organization 'Default Organization' Based on this result, closing this bugzilla.