Bug 1107876

Summary: CV publish with a exclusion filter fails
Product: Red Hat Satellite Reporter: Partha Aji <paji>
Component: Content ManagementAssignee: Partha Aji <paji>
Status: CLOSED CURRENTRELEASE QA Contact: sthirugn <sthirugn>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.0.3CC: cwelton, jmontleo, kbidarka, mmccune, sthirugn
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
URL: http://projects.theforeman.org/issues/6153
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-07-02 14:07:49 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Partha Aji 2014-06-10 22:01:03 UTC
1) Create a content view with a repo
2) Create an exclusion package filter with name = '*', or name= <a matching package to exclude>
3) Publish a new version
4) Publish failure with the following gist
pulp.server.webservices.controllers.repositories:ERROR: Error parsing unassociation criteria [{'fields': {}, 't
ype_ids': ['rpm'], 'filters': {'$or': [{'filename': {'$in': ['gofer-1.2.0-1.el6.noarch.rpm']}}]}}]




Server Log

[ERROR 2014-06-10 21:58:30 pulp_rest] RestClient.post "https://centos.dev/pulp/api/v2/repositories/ACME_Corporation-sleep-4-justin-lame/actions/unassociate/", "{\"criteria\":{\"type_ids\":[\"rpm\"],\"filters\":{\"$or\":[{\"filename\":{\"$in\":[\"gofer-1.2.0-1.el6.noarch.rpm\"]}}]},\"fields\":{\"unit\":[\"name\",\"epoch\",\"version\",\"release\",\"arch\",\"checksumtype\",\"checksum\"]}}}", "Accept"=>"*/*; q=0.5, application/xml", "Accept-Encoding"=>"gzip, deflate", "Authorization"=>"OAuth oauth_body_hash=\"2jmj7l5rSw0yVb%2FvlWAYkK%2FYBwk%3D\", oauth_consumer_key=\"vMGGttuYq97Zq5RcytRBBeLjP8cabpgu\", oauth_nonce=\"dBlTOrNQvPBhv6wYhl3oA0qYzoAbzSJNEKw91tRkU\", oauth_signature=\"nN8CkPKjjPmsudSjw4FOgjUSaK8%3D\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"1402437510\", oauth_version=\"1.0\"", "Content-Length"=>"195", "accept"=>"application/json", "content_type"=>"application/json", "pulp-user"=>"admin"
 | \n# => 400 BadRequest | application/json 381 bytes
 | 
400 Bad Request (RestClient::BadRequest)
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/rest-client-1.6.7/lib/restclient/abstract_response.rb:48:in `return!'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/runcible-1.1.0/lib/runcible/base.rb:97:in `block in get_response'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/rest-client-1.6.7/lib/restclient/request.rb:228:in `call'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/rest-client-1.6.7/lib/restclient/request.rb:228:in `process_result'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/rbovirt-0.0.24/lib/restclient_ext/request.rb:50:in `block in transmit'
/home/paji/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/net/http.rb:852:in `start'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/rbovirt-0.0.24/lib/restclient_ext/request.rb:44:in `transmit'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/rest-client-1.6.7/lib/restclient/request.rb:64:in `execute'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/rest-client-1.6.7/lib/restclient/request.rb:33:in `execute'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/rest-client-1.6.7/lib/restclient/resource.rb:67:in `post'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/runcible-1.1.0/lib/runcible/base.rb:96:in `get_response'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/runcible-1.1.0/lib/runcible/base.rb:87:in `call'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/runcible-1.1.0/lib/runcible/resources/repository.rb:151:in `unassociate_units'
/home/paji/sparta/projects/katello/app/lib/actions/pulp/repository/abstract_remove_content.rb:24:in `invoke_external_task'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action/polling.rb:70:in `initiate_external_action'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action/polling.rb:12:in `run'
/home/paji/sparta/projects/katello/app/lib/actions/pulp/abstract_async_task.rb:56:in `run'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action.rb:439:in `block (3 levels) in execute_run'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/middleware/stack.rb:26:in `call'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/middleware/stack.rb:26:in `pass'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/middleware.rb:16:in `pass'
/home/paji/sparta/projects/katello/app/lib/actions/middleware/remote_action.rb:25:in `block in run'
/home/paji/sparta/projects/katello/app/lib/actions/middleware/remote_action.rb:51:in `block (2 levels) in as_remote_user'
/home/paji/sparta/projects/katello/app/lib/katello/util/thread_session.rb:85:in `set_pulp_config'
/home/paji/sparta/projects/katello/app/lib/actions/middleware/remote_action.rb:41:in `as_pulp_user'
/home/paji/sparta/projects/katello/app/lib/actions/middleware/remote_action.rb:50:in `block in as_remote_user'
/home/paji/sparta/projects/katello/app/lib/katello/util/thread_session.rb:92:in `set_cp_config'
/home/paji/sparta/projects/katello/app/lib/actions/middleware/remote_action.rb:36:in `as_cp_user'
/home/paji/sparta/projects/katello/app/lib/actions/middleware/remote_action.rb:49:in `as_remote_user'
/home/paji/sparta/projects/katello/app/lib/actions/middleware/remote_action.rb:25:in `run'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/middleware/stack.rb:22:in `call'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/middleware/stack.rb:26:in `pass'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/middleware.rb:16:in `pass'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action/progress.rb:30:in `with_progress_calculation'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action/progress.rb:16:in `run'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/middleware/stack.rb:22:in `call'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/middleware/stack.rb:26:in `pass'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/middleware.rb:16:in `pass'
/home/paji/sparta/projects/katello/app/lib/actions/middleware/keep_locale.rb:24:in `block in run'
/home/paji/sparta/projects/katello/app/lib/actions/middleware/keep_locale.rb:35:in `with_locale'
/home/paji/sparta/projects/katello/app/lib/actions/middleware/keep_locale.rb:24:in `run'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/middleware/stack.rb:22:in `call'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/middleware/world.rb:30:in `execute'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action.rb:438:in `block (2 levels) in execute_run'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action.rb:437:in `catch'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action.rb:437:in `block in execute_run'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action.rb:361:in `call'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action.rb:361:in `block in with_error_handling'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action.rb:361:in `catch'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action.rb:361:in `with_error_handling'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action.rb:432:in `execute_run'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/action.rb:226:in `execute'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:9:in `block (2 levels) in execute'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/execution_plan/steps/abstract.rb:152:in `call'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/execution_plan/steps/abstract.rb:152:in `with_meta_calculation'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:8:in `block in execute'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:22:in `open_action'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/execution_plan/steps/abstract_flow_step.rb:7:in `execute'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/executors/parallel/worker.rb:20:in `block in on_message'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/algebrick-0.4.0/lib/algebrick.rb:859:in `block in assigns'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/algebrick-0.4.0/lib/algebrick.rb:858:in `tap'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/algebrick-0.4.0/lib/algebrick.rb:858:in `assigns'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/algebrick-0.4.0/lib/algebrick.rb:138:in `match_value'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/algebrick-0.4.0/lib/algebrick.rb:116:in `block in match'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/algebrick-0.4.0/lib/algebrick.rb:115:in `each'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/algebrick-0.4.0/lib/algebrick.rb:115:in `match'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/executors/parallel/worker.rb:17:in `on_message'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/micro_actor.rb:82:in `on_envelope'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/micro_actor.rb:72:in `receive'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/micro_actor.rb:99:in `block (2 levels) in run'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/micro_actor.rb:99:in `loop'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/micro_actor.rb:99:in `block in run'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/micro_actor.rb:99:in `catch'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/micro_actor.rb:99:in `run'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/dynflow-0.7.0/lib/dynflow/micro_actor.rb:13:in `block in initialize'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `call'
/home/paji/.rvm/gems/ruby-2.0.0-p481/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'
         Step ce32e876-15a7-40c6-956f-0cbe207b1b6f:11   running >>     error in phase      Run Actions::Pulp::Repository::RemoveRpm
[DEBUG 2014-06-10 21:58:30 pulp_rest] RestClient.post "https://centos.dev/pulp/api/v2/repositories/ACME_Corporation-sleep-4-justin-lame/actions/unassociate/", "{\"criteria\":{\"type_ids\":[\"rpm\"],\"filters\":{\"$or\":[{\"filename\":{\"$in\":[\"gofer-1.2.0-1.el6.noarch.rpm\"]}}]},\"fields\":{\"unit\":[\"name\",\"epoch\",\"version\",\"release\",\"arch\",\"checksumtype\",\"checksum\"]}}}", "Accept"=>"*/*; q=0.5, application/xml", "Accept-Encoding"=>"gzip, deflate", "Authorization"=>"OAuth oauth_body_hash=\"2jmj7l5rSw0yVb%2FvlWAYkK%2FYBwk%3D\", oauth_consumer_key=\"vMGGttuYq97Zq5RcytRBBeLjP8cabpgu\", oauth_nonce=\"dBlTOrNQvPBhv6wYhl3oA0qYzoAbzSJNEKw91tRkU\", oauth_signature=\"nN8CkPKjjPmsudSjw4FOgjUSaK8%3D\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"1402437510\", oauth_version=\"1.0\"", "Content-Length"=>"195", "accept"=>"application/json", "content_type"=>"application/json", "pulp-user"=>"admin"

Comment 1 Partha Aji 2014-06-10 22:01:04 UTC
Created from redmine issue http://projects.theforeman.org/issues/6153

Comment 3 Partha Aji 2014-06-11 22:03:34 UTC
ae460f0177a1665cfa1c6a27f1756f9ce0208105

Comment 6 sthirugn@redhat.com 2014-06-17 20:51:22 UTC
Verified. 

Verification steps:
1) Create a content view with a repo
2) Create an exclusion package filter and add few packages
3) Publish a new version
4) Worked without error described in the bug description


Version Tested:
* apr-util-ldap-1.3.9-3.el6_0.1.x86_64
* candlepin-0.9.19-1.el6_5.noarch
* candlepin-scl-1-5.el6_4.noarch
* candlepin-scl-quartz-2.1.5-5.el6_4.noarch
* candlepin-scl-rhino-1.7R3-1.el6_4.noarch
* candlepin-scl-runtime-1-5.el6_4.noarch
* candlepin-selinux-0.9.19-1.el6_5.noarch
* candlepin-tomcat6-0.9.19-1.el6_5.noarch
* elasticsearch-0.90.10-4.el6sat.noarch
* foreman-1.6.0.17-1.el6sat.noarch
* foreman-compute-1.6.0.17-1.el6sat.noarch
* foreman-gce-1.6.0.17-1.el6sat.noarch
* foreman-libvirt-1.6.0.17-1.el6sat.noarch
* foreman-ovirt-1.6.0.17-1.el6sat.noarch
* foreman-postgresql-1.6.0.17-1.el6sat.noarch
* foreman-proxy-1.6.0.7-1.el6sat.noarch
* foreman-selinux-1.6.0-4.el6sat.noarch
* foreman-vmware-1.6.0.17-1.el6sat.noarch
* katello-1.5.0-26.el6sat.noarch
* katello-ca-1.0-1.noarch
* katello-certs-tools-1.5.5-1.el6sat.noarch
* katello-installer-0.0.48-1.el6sat.noarch
* openldap-2.4.23-32.el6_4.1.x86_64
* pulp-katello-0.3-3.el6sat.noarch
* pulp-nodes-common-2.4.0-0.20.beta.el6sat.noarch
* pulp-nodes-parent-2.4.0-0.20.beta.el6sat.noarch
* pulp-puppet-plugins-2.4.0-0.20.beta.el6sat.noarch
* pulp-puppet-tools-2.4.0-0.20.beta.el6sat.noarch
* pulp-rpm-plugins-2.4.0-0.20.beta.el6sat.noarch
* pulp-selinux-2.4.0-0.20.beta.el6sat.noarch
* pulp-server-2.4.0-0.20.beta.el6sat.noarch
* python-ldap-2.3.10-1.el6.x86_64
* ruby193-rubygem-net-ldap-0.3.1-3.el6sat.noarch
* ruby193-rubygem-runcible-1.1.0-2.el6sat.noarch

Comment 7 Bryan Kearney 2014-07-02 14:07:49 UTC
This was delivered with 6.0.3, which is the Satellite 6 Beta.