Description of problem:
On using the API systemgroup.scheduleApplyErrataToActive, it fails with Invalid errata exception. It is seen that if all errata's which are applicable to the group are not applicalbe to all the systems then it fails with Invalid errata exception.
ErrataID: 101,102,103 are applicabe to GroupAB which has SystemA and SystemB
ErrataId: 101,102,103 is applicable to SystemA and 101,102 is applicable to SystemB
So as 103 errata is not applicable to SystemB, the API fails with Invalid Errata exception.
Version-Release number of selected component (if applicable):
RHN Satellite v5.4.0
Steps to Reproduce:
1. Create a system group and add 2 systems to it which are not fully updated. (ensure all errata's applicalbe to the system group are not applicalbe to all the systems. Refer the example mentioned above for more details)
2. Now execute the scheduleApplyErrataToActive API by passing errata's such that all are not applicalbe to all the systems in that group.
Using the same example:
$client->call('systemgroup.scheduleApplyErrataToActive', $session, "GroupAB", \@patch_errata);
Fails with exception : Fault returned from XML RPC Server, fault code 2600: redstone.xmlrpc.XmlRpcFault: Invalid errata
1] API should schedule the errata's for the systems for which errata is applicable and/or
2] API should print which errata is not applicable to which system
The API call schedules an action to apply errata updates. Either the action is relevant and the API passes or isn't.
If you wouldn't want to apply the erratum to all systems in the group, you definitely wouldn't call this API call. It's not possible to process the call just half the way.
There're another API calls, using them you can achieve, what you would like to.
Closing as NOTABUG.