Bug 2159629

Summary: Sync status of a Sync Plan or Product is confusing
Product: Red Hat Satellite Reporter: Pavel Moravec <pmoravec>
Component: RepositoriesAssignee: satellite6-bugs <satellite6-bugs>
Status: NEW --- QA Contact: Satellite QE Team <sat-qe-bz-list>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.11.4CC: iballou, saydas
Target Milestone: UnspecifiedKeywords: Triaged, UserExperience
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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:

Description Pavel Moravec 2023-01-10 08:26:16 UTC
Description of problem:
Querying for a Sync status of a Sync Plan or a Product via API endpoints:

GET /katello/api/sync_plans/:id
GET /katello/api/v2/products?organization_id=:id&sync_plan_id=:id
(possibly others)

return sync status of the very last *repository* within the Sync Plan or Product. That is sometimes confusing, when you:

- sync 5 repos of a product, 4 of them fail
- now, the sync status shows "Incomplete sync"
  - as the latest sync relevant to the product was bulk task of syncing 5 repos, that (partially) failed
- syncing one of failed repos succeeds
- now, the sync status shows "Syncing Complete." for the whole product / sync plan
  - as the latest sync relevant to the product was a single repo sync that succeeded - ignoring the other repos failed during their latest sync


This logic "take an outcome of latest product-relevant sync, regardless of the sync scope" should be be either documented (in APIdoc also), or improved to query each and every repo of the product.


Version-Release number of selected component (if applicable):
Sat 6.11.


How reproducible:
100%


Steps to Reproduce:
1. Have a custom product with 2 repos, one with valid feed URL, second with invalid URL
2. Create a Sync Plan for the Product
2. Sync *Product* and check sync status of the Sync Plan / Product 
3. Sync just the correct repo


Actual results:
2. Shows "Incomplete sync." (which is correct)
3. Shows "Syncing Complete.", despite nothing really changed from point 2.


Expected results:
3. to show "Incomplete sync"  OR  document this behaviour as described above


Additional info: