mirror of
https://github.com/fleetdm/fleet
synced 2026-05-19 06:58:30 +00:00
for #28700 # Checklist for submitter - [X] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. ## Details This PR adds the ability to use filters to select a subset of hosts to run a script on, using the existing batch execution system. Due to the scale limitations of the framework, we limit this to 5,000 hosts (we may lift this limit in the future as we iterate on this feature). The implementation follows the same basic strategy as the "transfer hosts to team by filter" endpoint. If filters are supplied, they are used to get host records using `ListHosts` or `ListHostsInLabel`. If IDs are supplied, `ListHostsLiteByIDs` is used. From there, we do the same validation as in the previous iteration, and send the host IDs to the batch execution function. There are many avenues for optimization here, some of which I already have in a branch, but this is a very low-touch solution to get us larger batch sizes right now. To do this at true scale warrants some cross-team architecture discussions. ## Testing **Automated:** New automated tests were added for the existing `BatchExecuteScript` service method, and verified that they still pass with the code updates. **Manual testing:** * Tested running a script on a subset of hosts on a single page (no team and real team) * Tested running a script on a subset of hosts using a query filter (no team and real team) * Tested running a script on a subset of hosts using a label filter (no team and real team)
1 line
80 B
Text
1 line
80 B
Text
- Added ability to execute scripts on up to 5,000 hosts at a time using filters
|