docs: def findall(self, **filter_args):
          """
          Find zero or more resources in scope of this manager, by matching
          resource properties against the specified filter arguments, and return
          a list of their Python resource objects (e.g. for CPCs, a list of
          :class:`~zhmcclient.Cpc` objects is returned).
  
          Any resource property may be specified in a filter argument. For
          details about filter arguments, see :ref:`Filtering`.
  
          The zhmcclient implementation handles the specified properties in an
          optimized way: Properties that can be filtered on the HMC are actually
          filtered there (this varies by resource type), and the remaining
          properties are filtered on the client side.
  
          If the "name" property is specified as the only filter argument, an
          optimized lookup is performed that uses a name-to-URI cache in this
          manager object. This this optimized lookup uses the specified match
          value for exact matching and is not interpreted as a regular
          expression.
  
          Authorization requirements:
  
          * see the `list()` method in the derived classes.
  
          Parameters:
  
            \\**filter_args:
              All keyword arguments are used as filter arguments. Specifying no
              keyword arguments causes no filtering to happen. See the examples
              for usage details.
  
          Returns:
  
            List of resource objects in scope of this manager object that match
            the filter arguments. These resource objects have a minimal set of
            properties.
  
          Raises:
  
            : Exceptions raised by the `list()` methods in derived resource
              manager classes (see :ref:`Resources`).
  
          Examples:
  
          * The following example finds partitions in a CPC by status. Because
            the 'status' resource property is also a valid Python variable name,
            there are two ways for the caller to specify the filter arguments for
            this method:
  
            As named parameters::
  
                run_states = ['active', 'degraded']
                run_parts = cpc.partitions.find(status=run_states)
  
            As a parameter dictionary::
  
                run_parts = cpc.partitions.find(**{'status': run_states})
  
          * The following example finds adapters of the OSA family in a CPC
            with an active status. Because the resource property for the adapter
            family is named 'adapter-family', it is not suitable as a Python
            variable name. Therefore, the caller can specify the filter argument
            only as a parameter dictionary::
  
                filter_args = {'adapter-family': 'osa', 'status': 'active'}
                active_osa_adapters = cpc.adapters.findall(**filter_args)
          """
          if len(filter_args) == 1 and self._name_prop in filter_args:
              try:
                  obj = self.find_by_name(filter_args[self._name_prop])
              except NotFound:
                  return []
              return [obj]
          else:
              obj_list = self.list(filter_args=filter_args)
              return obj_list