Bug 1271221
| Summary: | API Listing repositories slow, 24 repositories of redhat server product takes 30 seconds | ||
|---|---|---|---|
| Product: | Red Hat Satellite | Reporter: | Peter Vreman <peter.vreman> |
| Component: | Content Management | Assignee: | Justin Sherrill <jsherril> |
| Status: | CLOSED ERRATA | QA Contact: | jcallaha |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 6.1.2 | CC: | bbuckingham, ehelms, jcallaha, sthirugn, tpapaioa |
| Target Milestone: | Unspecified | Keywords: | Triaged |
| Target Release: | Unused | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| URL: | http://projects.theforeman.org/issues/13923 | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-07-27 09:19:46 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: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1122832 | ||
Sync plans are not used, as mentioned in the a related BZ1253802 See also BZ1271160 for products listing, that might be related Connecting redmine issue http://projects.theforeman.org/issues/10208 from this bug Upstream bug component is Content Management Connecting redmine issue http://projects.theforeman.org/issues/13923 from this bug For some comparison with this change. On 6.2 (katello 3.0) i was able to list ~20 Red Hat Repositories (all RHEL 6.X and 7.X repos) in 500-1500ms. When I upped that to 36 repos (adding more RHEL 6.x and RHEV agent repos) it went a bit higher to 4000-5000ms. Verified in Satellite 6.2 Beta RC. Listing over 50 repositories of a product took 7 seconds. ~20 repositories took just over 2 seconds.
time curl -k -u admin:<passowrd> -H "Content-Type: application/json" -d '{"per_page":9999,"organization_id":1,"product_id":9}' -XGET https://rhsm-qe-1.rhq.lab.eng.bos.redhat.com/katello/api/v2/repositories
...
real 0m7.124s
user 0m0.031s
sys 0m0.061s
Confirmed on Sat6.2.0 Beta2
For 19 repos:
[crash] root@li-lc-1578:~# time curl -K /opt/hoici/etc/sat6/curl-hoici.conf "-HContent-Type: application/json" "-d{\"per_page\":9999,\"organization_id\":3,\"product_id\":14}" -XGET https://localhost/katello/api/v2/repositories > p.json
real 0m5.266s
user 0m0.041s
sys 0m0.066s
The output is strange regading the sync_plan part, it contains an Array with for the end-user useless information:
"name": "Red Hat Enterprise Linux 6 Server RPMs x86_64 6Server",
"label": "Red_Hat_Enterprise_Linux_6_Server_RPMs_x86_64_6Server",
"product": {
"sync_plan": [
"name",
"description",
"sync_date",
"interval",
"next_sync"
],
"name": "Red Hat Enterprise Linux Server",
"cp_id": "69",
"id": 14
},
"last_sync": {
"progress": 1,
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2016:1501 |
Description of problem: Using the API to list repositories is slow. Rendering the view of 24 repositories of the redhat server product takes 30 seconds: time curl -K /opt/hoici/etc/sat6/curl-hoici.conf "-HContent-Type: application/json" "-d{\"per_page\":9999,\"organization_id\":3,\"product_id\":14}" -XGET https://localhost/katello/api/v2/repositories > p.json real 0m34.105s user 0m0.178s sys 0m0.054s [crash] root@li-lc-1578:~# hoi-json p.json --get results.id | wc -l 24 2015-10-13 12:00:50 [I] Processing by Katello::Api::V2::RepositoriesController#index as */* 2015-10-13 12:00:50 [I] Parameters: {"per_page"=>9999, "organization_id"=>3, "product_id"=>14, "api_version"=>"v2", "repository"=>{"product_id"=>14}} 2015-10-13 12:00:51 [I] Authorized user hoici(hoici ) 2015-10-13 12:01:23 [I] Rendered /opt/rh/ruby193/root/usr/share/gems/gems/katello-2.2.0.67/app/views/katello/api/v2/repositories/index.json.rabl within katello/api/v2/layouts/collection (28697.1ms) Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. Enable 25 repositories under RedHat Server product 2. List repositories through API 3. Actual results: Listing takes 30 seconds Expected results: Listing takes <5 seconds Additional info: