Search pools.

            Maps to the function :py:func:`nipap.backend.Nipap.search_pool` in
            the backend. Please see the documentation for the backend function
            for information regarding input arguments and return values.

def search(cls, query, search_opts=None):
        """ Search pools.

            Maps to the function :py:func:`nipap.backend.Nipap.search_pool` in
            the backend. Please see the documentation for the backend function
            for information regarding input arguments and return values.
        """

        if search_opts is None:
            search_opts = {}

        xmlrpc = XMLRPCConnection()
        try:
            search_result = xmlrpc.connection.search_pool(
                {
                    'query': query,
                    'search_options': search_opts,
                    'auth': AuthOptions().options
                })
        except xmlrpclib.Fault as xml_fault:
            raise _fault_to_exception(xml_fault)
        result = dict()
        result['result'] = []
        result['search_options'] = search_result['search_options']
        for pool in search_result['result']:
            p = Pool.from_dict(pool)
            result['result'].append(p)

        return result