Bug 689917 - repo rest api GET call doesnt seem to handle multiple query requests
Summary: repo rest api GET call doesnt seem to handle multiple query requests
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Pulp
Classification: Retired
Component: z_other
Version: unspecified
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Jason Connor
QA Contact: Preethi Thomas
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-03-22 19:24 UTC by Pradeep Kilambi
Modified: 2014-03-31 01:39 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-02-24 20:12:35 UTC


Attachments (Terms of Use)

Description Pradeep Kilambi 2011-03-22 19:24:56 UTC
For a single request I get back right result:


$ curl -k -u admin:admin https://localhost/pulp/api/repositories/?groupid=x
[{"use_symlinks": false, "files": "/pulp/api/repositories/x/files/", "groupid": ["x"], "feed_cert": null, "sync_schedule": null, "clone_ids": [], "package_count": 0, "distributionid": [], "publish": true, "last_sync": null, "consumer_cert": null, "source": null, "relative_path": "x", "filters": [], "checksum_type": "sha256", "_id": "x", "arch": "noarch", "id": "x", "name": "x", "uri_ref": "/pulp/api/repositories/x/", "files_count": 0, "packages": "/pulp/api/repositories/x/packages/", "packagegroups": "/pulp/api/repositories/x/packagegroups/", "packagegroupcategories": "/pulp/api/repositories/x/packagegroupcategories/", "errata": "/pulp/api/repositories/x/errata/", "distribution": "/pulp/api/repositories/x/distribution/", "keys": "/pulp/api/repositories/x/keys/", "comps": "/pulp/api/repositories/x/comps/"}]

for multiple param query:

$ curl -k -u admin:admin https://localhost/pulp/api/repositories/?groupid=x&groupid=z
[1] 8708
[pkilambi@prad pulp{master}]$ [{"use_symlinks": false, "files": "/pulp/api/repositories/x/files/", "groupid": ["x"], "feed_cert": null, "sync_schedule": null, "clone_ids": [], "package_count": 0, "distributionid": [], "publish": true, "last_sync": null, "consumer_cert": null, "source": null, "relative_path": "x", "filters": [], "checksum_type": "sha256", "_id": "x", "arch": "noarch", "id": "x", "name": "x", "uri_ref": "/pulp/api/repositories/x/", "files_count": 0, "packages": "/pulp/api/repositories/x/packages/", "packagegroups": "/pulp/api/repositories/x/packagegroups/", "packagegroupcategories": "/pulp/api/repositories/x/packagegroupcategories/", "errata": "/pulp/api/repositories/x/errata/", "distribution": "/pulp/api/repositories/x/distribution/", "keys": "/pulp/api/repositories/x/keys/", "comps": "/pulp/api/repositories/x/comps/"}]

its still only one result. So looks like we are only accounting for the first param.

Comment 1 Pradeep Kilambi 2011-03-23 16:13:15 UTC
looking closely I think this is a none issue,

looks like https://localhost/pulp/api/repositories/?groupid=x&groupid=z

is put in background after groupid=x& and ignoring groupid=z

if i run the same command as:

$ curl -k -u admin:admin https://localhost/pulp/api/repositories/?groupid=x\&groupid=y

[{"use_symlinks": false, "files": "/pulp/api/repositories/x/files/", "groupid": ["x"], "feed_cert": null, "sync_schedule": null, "clone_ids": [], "package_count": 0, "distributionid": [], "publish": true, "last_sync": null, "consumer_cert": null, "source": null, "relative_path": "x", "filters": [], "checksum_type": "sha256", "_id": "x", "arch": "noarch", "id": "x", "name": "x", "uri_ref": "/pulp/api/repositories/x/", "files_count": 0, "packages": "/pulp/api/repositories/x/packages/", "packagegroups": "/pulp/api/repositories/x/packagegroups/", "packagegroupcategories": "/pulp/api/repositories/x/packagegroupcategories/", "errata": "/pulp/api/repositories/x/errata/", "distribution": "/pulp/api/repositories/x/distribution/", "keys": "/pulp/api/repositories/x/keys/", "comps": "/pulp/api/repositories/x/comps/"}, {"use_symlinks": false, "files": "/pulp/api/repositories/y/files/", "groupid": ["y"], "feed_cert": null, "sync_schedule": null, "clone_ids": [], "package_count": 0, "distributionid": [], "publish": true, "last_sync": null, "consumer_cert": null, "source": null, "relative_path": "y", "filters": [], "checksum_type": "sha256", "_id": "y", "arch": "noarch", "id": "y", "name": "y", "uri_ref": "/pulp/api/repositories/y/", "files_count": 0, "packages": "/pulp/api/repositories/y/packages/", "packagegroups": "/pulp/api/repositories/y/packagegroups/", "packagegroupcategories": "/pulp/api/repositories/y/packagegroupcategories/", "errata": "/pulp/api/repositories/y/errata/", "distribution": "/pulp/api/repositories/y/distribution/", "keys": "/pulp/api/repositories/y/keys/", "comps": "/pulp/api/repositories/y/comps/"}]

Comment 2 Sayli Karmarkar 2011-07-15 21:52:12 UTC
This should be fixed as part of union-intersection feature.

Comment 3 Jason Connor 2011-09-23 19:11:32 UTC
When specifying multiple parameters, you should also specify what you want the behavior to be: _intersect or _union

Example:
GET /pulp/api/repositories/?groupid=x&groupid=y

This will throw an error if no behavior is specified:
MalformedFilters: Multiple values specified for groupid, but _intersect or _union operation not specified


Example:
GET /pulp/api/repositories/?groupid=x&groupid=y&_intersect=groupid

This will return only repositories the belong to both the x and y groups


Example:
GET /pulp/api/repositories/?groupid=x&groupid=y&_union=groupid

This will return repositories that are in either the x or y group

Comment 4 Preethi Thomas 2011-09-23 19:26:54 UTC
verified
[root@preethi certs]# rpm -q pulp
pulp-0.0.233-1.fc15.noarch

[root@preethi certs]#  curl -k -u admin:admin https://localhost/pulp/api/repositories/?groupid=pulp&groupid=fedora&_intersect=fedora
[1] 19792
[2] 19793
[root@preethi certs]# [{"use_symlinks": false, "package_count": 9580, "distributionid": [], "consumer_cert": null, "consumer_ca": null, "filters": [], "id": "f14-updates", "publish": true, "source": {"url": "http://download.fedora.redhat.com/pub/fedora/linux/updates/14/x86_64/", "type": "remote"}, "groupid": ["fedora", "pulp"], "files": "/pulp/api/repositories/f14-updates/files/", "relative_path": "pub/fedora/linux/updates/14/x86_64", "sync_schedule": null, "arch": "noarch", "feed_cert": null, "name": "f14-updates", "feed_ca": null, "notes": {}, "last_sync": "2011-09-22T11:24:13-04:00", "content_types": "yum", "clone_ids": [], "checksum_type": "sha256", "_id": "f14-updates", "uri_ref": "/pulp/api/repositories/f14-updates/", "files_count": 0, "packages": "/pulp/api/repositories/f14-updates/packages/", "packagegroups": "/pulp/api/repositories/f14-updates/packagegroups/", "packagegroupcategories": "/pulp/api/repositories/f14-updates/packagegroupcategories/", "errata": "/pulp/api/repositories/f14-updates/errata/", "distribution": "/pulp/api/repositories/f14-updates/distribution/", "keys": "/pulp/api/repositories/f14-updates/keys/", "comps": "/pulp/api/repositories/f14-updates/comps/"}, {"use_symlinks": false, "package_count": 18, "distributionid": [], "consumer_cert": null, "consumer_ca": null, "filters": [], "id": "pulp", "publish": true, "source": {"url": "http://repos.fedorapeople.org/repos/pulp/pulp/fedora-14/x86_64/", "type": "remote"}, "groupid": ["pulp"], "files": "/pulp/api/repositories/pulp/files/", "relative_path": "repos/pulp/pulp/fedora-14/x86_64", "sync_schedule": null, "arch": "noarch", "feed_cert": null, "name": "pulp", "feed_ca": null, "notes": {}, "last_sync": "2011-09-23T11:56:15-04:00", "content_types": "yum", "clone_ids": [], "checksum_type": "sha256", "_id": "pulp", "uri_ref": "/pulp/api/repositories/pulp/", "files_count": 0, "packages": "/pulp/api/repositories/pulp/packages/", "packagegroups": "/pulp/api/repositories/pulp/packagegroups/", "packagegroupcategories": "/pulp/api/repositories/pulp/packagegroupcategories/", "errata": "/pulp/api/repositories/pulp/errata/", "distribution": "/pulp/api/repositories/pulp/distribution/", "keys": "/pulp/api/repositories/pulp/keys/", "comps": "/pulp/api/repositories/pulp/comps/"}]
[1]-  Done                    curl -k -u admin:admin https://localhost/pulp/api/repositories/?groupid=pulp
[2]+  Done                    groupid=fedora
[root@preethi certs]# 
[root@preethi certs]# 
[root@preethi certs]#  curl -k -u admin:admin https://localhost/pulp/api/repositories/?groupid=pulp&groupid=fedora&_union=fedora
[1] 19801
[2] 19802
[root@preethi certs]# [{"use_symlinks": false, "package_count": 9580, "distributionid": [], "consumer_cert": null, "consumer_ca": null, "filters": [], "id": "f14-updates", "publish": true, "source": {"url": "http://download.fedora.redhat.com/pub/fedora/linux/updates/14/x86_64/", "type": "remote"}, "groupid": ["fedora", "pulp"], "files": "/pulp/api/repositories/f14-updates/files/", "relative_path": "pub/fedora/linux/updates/14/x86_64", "sync_schedule": null, "arch": "noarch", "feed_cert": null, "name": "f14-updates", "feed_ca": null, "notes": {}, "last_sync": "2011-09-22T11:24:13-04:00", "content_types": "yum", "clone_ids": [], "checksum_type": "sha256", "_id": "f14-updates", "uri_ref": "/pulp/api/repositories/f14-updates/", "files_count": 0, "packages": "/pulp/api/repositories/f14-updates/packages/", "packagegroups": "/pulp/api/repositories/f14-updates/packagegroups/", "packagegroupcategories": "/pulp/api/repositories/f14-updates/packagegroupcategories/", "errata": "/pulp/api/repositories/f14-updates/errata/", "distribution": "/pulp/api/repositories/f14-updates/distribution/", "keys": "/pulp/api/repositories/f14-updates/keys/", "comps": "/pulp/api/repositories/f14-updates/comps/"}, {"use_symlinks": false, "package_count": 18, "distributionid": [], "consumer_cert": null, "consumer_ca": null, "filters": [], "id": "pulp", "publish": true, "source": {"url": "http://repos.fedorapeople.org/repos/pulp/pulp/fedora-14/x86_64/", "type": "remote"}, "groupid": ["pulp"], "files": "/pulp/api/repositories/pulp/files/", "relative_path": "repos/pulp/pulp/fedora-14/x86_64", "sync_schedule": null, "arch": "noarch", "feed_cert": null, "name": "pulp", "feed_ca": null, "notes": {}, "last_sync": "2011-09-23T11:56:15-04:00", "content_types": "yum", "clone_ids": [], "checksum_type": "sha256", "_id": "pulp", "uri_ref": "/pulp/api/repositories/pulp/", "files_count": 0, "packages": "/pulp/api/repositories/pulp/packages/", "packagegroups": "/pulp/api/repositories/pulp/packagegroups/", "packagegroupcategories": "/pulp/api/repositories/pulp/packagegroupcategories/", "errata": "/pulp/api/repositories/pulp/errata/", "distribution": "/pulp/api/repositories/pulp/distribution/", "keys": "/pulp/api/repositories/pulp/keys/", "comps": "/pulp/api/repositories/pulp/comps/"}]
[1]-  Done                    curl -k -u admin:admin https://localhost/pulp/api/repositories/?groupid=pulp
[2]+  Done                    groupid=fedora
[root@preethi certs]#

Comment 5 Preethi Thomas 2012-02-24 20:12:35 UTC
Pulp v1.0 is released
Closed Current Release.


Note You need to log in before you can comment on or make changes to this bug.