I would do ```server_nodes = nodes.select { |n| n.intended_role == "controller" } || nodes.first```.

If there's no node with the controller intended role, then there's no reason to put it where nova-controller is. This could as well be where keystone-server is.