def findall(self, **kwargs):
        """Find all items with attributes matching ``**kwargs``.

        This isn't very efficient: it loads the entire list then filters on
        the Python side.
        """
        found = []
        searches = kwargs.items()

        for obj in self.list():
            try:
                if all(getattr(obj, attr) == value
                       for (attr, value) in searches):
                    found.append(obj)
            except __HOLE__:
                continue

        return found
dataset/ETHPy150Open openstack/python-solumclient/solumclient/openstack/common/apiclient/base.py/ManagerWithFind.findall