The system.comparePackageProfile API does not return installed rpm's package_id instead it returns 'package_name_id'. This makes it unsuable with other APIs like system.schedulePackageInstall and system.schedulePackageRemove. There is no other API which returns package id when package_name_id is provided. When there are multiple systems comparing them with stored package profile from WebUI is manual task. The API system.comparePackageProfile can be used to automate this but as this provides package_name_id its not usable with any other API.
Taking...
spacewalk.git: a60ba0f5d0f12bfc685f375bca0fb72fe7a90d3d 7531663c58fe6e92d68e4408d6fbb55d9c59d4da Changes to fix bug: 1) added information about epoch, version, release to PackageMetadataSerializer (if epoch is null, PackageMetadataSerializer omit it from XML-RPC) 2) Added new API-methods to install/remove packages using their Nevra: schedulePackageInstallByNevra schedulePackageRemoveByNevra
Spacewalk 2.5 was released.
This BZ closed some time during 2.5, 2.6 or 2.7. Adding to 2.7 tracking bug.