Bug 2127520

Summary: Inventory sync would return "nothing to sync" if "All organizations" is selected.
Product: Red Hat Satellite Reporter: Sahil Bhasin <sabhasin>
Component: RH CloudAssignee: Shimon Shtein <sshtein>
Status: CLOSED MIGRATED QA Contact: Satellite QE Team <sat-qe-bz-list>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.11.2CC: aruzicka, dsinglet, peter.vreman
Target Milestone: UnspecifiedKeywords: FutureFeature, MigratedToJIRA, Triaged
Target Release: Unused   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-06-06 12:34:28 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:

Description Sahil Bhasin 2022-09-16 16:33:47 UTC
Description of problem:

1. Proposed title of this feature request

Toggle option per organization required in Satellite to Sync the Inventory

2. What is the nature and description of the request?

Modification of the code which allows to Sync the Inventory Manually.

3. Why does the customer need this? (List the business requirements here)

Current behavior:

A) Let's assume right now the satellite has one organization only called ACME and nothing else. It has manifest imported with valid subs and perhaps some hosts registered as well.


B) If we are under the context of this Organization ACME, Then

   ** If we go to Configure --> Inventory Upload page --> It will only list ACME Organization there 

   ** If we click on "Sync Inventory Status" It will\should work fine.

   ** If we click on ACME, it will give us the "Restart" button which will "re-collect" and "re-upload" the inventory data for the org and it will work as well.


C) Now, I create a new org called "Test" and just save it. There are no manifests imported here. 

D) As long as we are in the context of the "ACME" organization, Step B will remain the same.

E) But if we switch to "Any Organization" context, That entitles the satellite to show and execute the action on both "ACME" and "Test" org.

F) If I try to do "Sync Inventory Status" now It will show that error :

~~
Inventory sync has failed: ERF74-6085 [InventoryUpload::TaskActions::NothingToSyncError]: Nothing to sync, there are no hosts with subscriptions for this organization.
~~

Why? As Satellite is trying to generate a bulk task for both of the organizations but one of them does not have any manifest imported and no systems present with a valid subscription status associated with the Test Org.

Expectations:

* Introduce some sort of flag that can be toggled per organization.
* Once toggled for the “Test” org, It should disable the “Inventory sync” actions for that Org. 
* As a result, While on Step F, the Inventory sync should be getting successfully triggered only for the ACME org that is allowed for “Inventory Sync” action.


4. How would the customer like to achieve this? (List the functional requirements here)

When going to Configure --> Inventory Upload page, then for individual organizations, that toggle option should present and will allow the inventory sync task to be enabled or disabled for the individual orgs. 

5. For each functional requirement listed, specify how Red Hat and the customer 
can test to confirm the requirement is successfully implemented.

Same as Point 3. 

6. Is there already an existing RFE upstream or in Red Hat Bugzilla?

No

7. Does the customer have any specific timeline dependencies and which release would they like to target?

As soon as possible

8. Is the sales team involved in this request and do they have any additional input?

No

9. List any affected packages or components.

NA

10. Would the customer be able to assist in testing this functionality if implemented?

Yes

Comment 1 Shimon Shtein 2023-01-26 13:07:52 UTC
The behavior you are describing is actually an incorrect message for this specific edge case.
Theoretically the action can be performed only in the context of a specific org (as opposed to "Any org" selected in this case).

In more techincal terms start_inventory_sync from https://github.com/theforeman/foreman_rh_cloud/blob/731a755c43691d9b61c45c22b94734c8b7e8ec53/app/controllers/concerns/inventory_upload/task_actions.rb#L13 is called with selected_org=nil and this will not return any hosts, causing the "Nothing to sync" message.

I suppose we should either support "All orgs" (and then filter out those without manifest) or put a better message to indicate that "All orgs" are not supported.

Comment 2 Shimon Shtein 2023-07-11 08:42:25 UTC
Renaming the issue to indicate that this is a bug.

We need to either throw a meaningful message or run the sync task for each organization that the user can see.

Comment 4 Eric Helms 2024-06-06 12:34:28 UTC
This BZ has been automatically migrated to the issues.redhat.com Red Hat Issue Tracker. All future work related to this report will be managed there.

Due to differences in account names between systems, some fields were not replicated.  Be sure to add yourself to Jira issue's "Watchers" field to continue receiving updates and add others to the "Need Info From" field to continue requesting information.

To find the migrated issue, look in the "Links" section for a direct link to the new issue location. The issue key will have an icon of 2 footprints next to it, and begin with "SAT-" followed by an integer.  You can also find this issue by visiting https://issues.redhat.com/issues/?jql= and searching the "Bugzilla Bug" field for this BZ's number, e.g. a search like:

"Bugzilla Bug" = 1234567

In the event you have trouble locating or viewing this issue, you can file an issue by sending mail to rh-issues. You can also visit https://access.redhat.com/articles/7032570 for general account information.