Description of problem: Having a synchronization plan with many products associated, listing products takes several minutes. Example: for 20 products, all added into a single sync plan, "hammer product list" takes 4 minutes. The reason is - per hammer debug logs - caused by the search logic that: - generates a list of all products - for each product in the list, it checks presence of sync plan associated with the product - if the sync plan exists, it lists all products within the sync plan (due to an unknown reason - but _this_ is the culprit of the BZ) Due to the above, time complexity of product listing is quadratic to the number of products in the (biggest) sync plan. Version-Release number of selected component (if applicable): foreman-1.7.2.34-1.el7sat.noarch How reproducible: 100% Steps to Reproduce: 1. Enable 20 products 2. count time to "hammer product list" 3. create 20 sync plans, each having 1 product 4. count time to "hammer product list" 5. put all products into one sync plan 6. count time to "hammer product list" Actual results: 2. and 4. shows very similar times 6. shows extraordinary higher time Expected results: 2, 4 and 6 to show similar execution times Time to list products should not depend on number of products in a sync plan Additional info: The issue is nicely evident when enabling hammer debugs and grepping for e.g. "label" there in REST API "hammer product list" response. Each product in a sync plan is written there as many times as the number of products in the sync plan is.
*** This bug has been marked as a duplicate of bug 1253802 ***