Actions
Refactor #16718
closedReplace modifications to host list relation in host multiple action code
Difficulty:
Triaged:
Description
On Rails 5, some of the host multiple action tests fail as the controller states that all hosts failed, instead of all succeeding:
HostsControllerTest::submit actions with multiple hosts#test_0001_build without reboot [/home/dcleal/code/foreman/foreman/test/controllers/hosts_controller_test.rb:686]:
--- expected
+++ actual
@ -1 +1
@
-"The selected hosts will execute a build operation on next reboot"
+nil
To obtain a list of hosts where updating their build status etc. didn't work, the controller relied on calling .to_a.delete_if on the host list relation and then checking the result later. This doesn't work under Rails 5, it simply returns the cached result of the relation again as it hasn't actually changed.
Rather than trying to delete entries out of the Rails relation, the code should keep a separate list of hosts that failed the action and use this for display purposes. The code should be clearer as a result too.
Actions