docs: def _select_controllers_by(server, select_condition, msg):
      """Filters out the hpssa controllers based on the condition.
  
      This method updates the server with only the controller which satisfies
      the condition. The controllers which doesn't satisfies the selection
      condition will be removed from the list.
  
      :param server: The object containing all the supported hpssa controllers
          details.
      :param select_condition: A lambda function to select the controllers based
          on requirement.
      :param msg: A String which describes the controller selection.
      :raises exception.HPSSAOperationError, if all the controller are in HBA
          mode.
      """
      all_controllers = server.controllers
      supported_controllers = [c for c in all_controllers if select_condition(c)]
  
      if not supported_controllers:
          reason = ("None of the available SSA controllers %(controllers)s "
                    "have %(msg)s"
                    % {'controllers': ', '.join([c.id for c in all_controllers]),
                       'msg': msg})
          raise exception.HPSSAOperationError(reason=reason)
  
      server.controllers = supported_controllers