Yes 'the corresponding row', I understand it's was too short (and also incorrect) ... My analysis :
About package deploiement, you create a package and a row is created in table 'download_available', index 'file_id' is a timestamp = epoch time (number of seconds from 1970/1/1 0:0:0).
Then you activate the package and a row is created in table 'download_enable', the index is 'id' an autoincrement and you have a link with field 'file_id'.
When you affect the package to a hardware, a row is created in table 'devices' (curious name of table !!) : you have 5 fields :
- hardware_id : link to (table) hardware
- name : mostly 'DOWNLOAD'
- ivalue : link to table 'download_enable' field 'id' (not directly the timestamp)
- tvalue : the result or actual status (SUCCESS, NOTIFIED, ERR_xxx, ...) or null
- comments : when success the date of success
When tvalue is null, that's mean the package is affected but agent is not NOTIFIED. When tvalue is NOTIFIED, that's mean the agent know it have to download the package.
Using this analysis, you are able to 'un-affect' a package for a hardware known : the row to remove is in table 'devices' ...