def list_vrf(self, auth, spec=None):
if spec is None:<EOL><INDENT>spec = {}<EOL><DEDENT>self._logger.debug("<STR_LIT>" % unicode(spec))<EOL>sql = "<STR_LIT>"<EOL>params = list()<EOL>if spec is not None and not {}:<EOL><INDENT>where, params = self._expand_vrf_spec(spec)<EOL><DEDENT>if len(params) > <NUM_LIT:0>:<EOL><INDENT>sql += "<STR_LIT>" + where<EOL><DEDENT>sql += "<STR_LIT>"<EOL>self._execute(sql, params)<EOL>res = list()<EOL>for row in self._curs_pg:<EOL><INDENT>res.append(dict(row))<EOL><DEDENT>return res<EOL>
Return a list of VRFs matching `spec`.

            * `auth` [BaseAuth]
                AAA options.
            * `spec` [vrf_spec]
                A VRF specification. If omitted, all VRFs are returned.

            Returns a list of dicts.

            This is the documentation of the internal backend function. It's
            exposed over XML-RPC, please also see the XML-RPC documentation for
            :py:func:`nipap.xmlrpc.NipapXMLRPC.list_vrf` for full
            understanding.