<!-- Add the related story/sub-task/bug number, like Resolves #123, or remove if NA --> **Related issue:** Resolves #47348 Does two things: - Removes the software_installers and software_titles joins. These could be null, but we would still want to create software install records for these installs even if the installer or title were deleted. - Changes every case where a host_software_installs is deleted into setting the canceled flag to 1 on that row. It also updates some comments. `deletePendingSoftwareInstallsForPolicy` had a comment that said it should be called _after_ deleting a policy, but that seems wrong and was not actually reflected in the code even when it was originally added. It should be called _before_ deleting the policy so that the siua.policy_id column is still available before it gets set to null by the FK constraint. Same for `deletePendingHostScriptExecutionsForPolicy`. Also removes the `NOTE(mna): ...` comment, because it seems like the code works as intended and only the comments were wrong. # Checklist for submitter If some of the following don't apply, delete the relevant line. - [x] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. See [Changes files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files) for more information. - [ ] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements), JS inline code is prevented especially for url redirects, and untrusted data interpolated into shell scripts/commands is validated against shell metacharacters. - [ ] Timeouts are implemented and retries are limited to avoid infinite loops - [ ] If paths of existing endpoints are modified without backwards compatibility, checked the frontend/CLI for any necessary changes ## Testing - [x] Added/updated automated tests - [ ] Where appropriate, [automated tests simulate multiple hosts and test for host isolation](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/reference/patterns-backend.md#unit-testing) (updates to one hosts's records do not affect another) - [x] QA'd all new/changed functionality manually <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Prevented a 500 error when late software installation results are reported after the related installer has been deleted. * Pending software install entries are now preserved as **canceled** (instead of being deleted) during installer, policy, and batch update flows, keeping results consistent. * Improved correctness of intermediate failure recording and setup-experience deletion behavior, including distinguishing **canceled** vs **removed** installs. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2 lines
223 B
Plaintext
2 lines
223 B
Plaintext
- Fixed a 500 error when a host reported a software install result for a deleted software installer. When an installer is deleted, records of its pending installations will be set to canceled instead of completely deleted.
|