Bug 1021579
| Summary: | No error when criteria inside request body lack the required type_ids (when unassociating this results in an empty repository) | ||
|---|---|---|---|
| Product: | [Retired] Pulp | Reporter: | Vincent Van Driessche <vincent.vandriessche> |
| Component: | API/integration | Assignee: | pulp-bugs |
| Status: | CLOSED UPSTREAM | QA Contact: | pulp-qe-list |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 2.2 | CC: | austin, cduryee, skarmark |
| Target Milestone: | --- | Keywords: | Triaged |
| Target Release: | 3.0.0 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2015-02-28 21:59:27 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
I would consider this to be an API bug, it is unexpected that all of the units are unassociated. I will document it for now but it should be fixed for Pulp 3.0. doc update: https://github.com/pulp/pulp/pull/1327 docs update is merged to 2.4-release and up, changing BZ component to API/integration for the actual fix This is the case for more than just this call. Many API calls that use critera to filter results have a similar issue. Moved to https://pulp.plan.io/issues/379 |
Description of problem: While making a script to remove a set of packages, I encountered a stubborn error: When performing a POST request to "/pulp/api/v2/repositories/pulp2-cleanup-test/actions/unassociate/" with message body resembling following json: {'criteria': {'filters': {'unit': {'unit_id': {'$in': ['5b1feecc-5b48-40a6-a890-39f0bf5b3960'] } } } } } I ran into the fact that it did not remove the package with ID 5b1feecc-5b48-40a6-a890-39f0bf5b3960; It removed ALL of the repositories packages. After some talking to the developers I was pointed out that without a type_id specified, the filters would all be dropped, what remains was an unassociate query without filtering: resulting in every package being removed. This is how the packages are not all being dropped any longer: {"criteria": {"filters": {"unit": {"unit_id": {"$in": ['5b1feecc-5b48-40a6-a890-39f0bf5b3960'] } } }, "type_ids":["rpm"] } } I do think this should be properly documented or/and should throw an error instead of just wiping out repositories. ^^ Kind regards Vincent