Add a new VRF.

            Valid keys in the `args`-struct:

            * `auth` [struct]
                Authentication options passed to the :class:`AuthFactory`.
            * `attr` [struct]
                VRF attributes.

            Returns the internal database ID for the VRF.

def add_vrf(self, args):
        """ Add a new VRF.

            Valid keys in the `args`-struct:

            * `auth` [struct]
                Authentication options passed to the :class:`AuthFactory`.
            * `attr` [struct]
                VRF attributes.

            Returns the internal database ID for the VRF.
        """
        try:
            res = self.nip.add_vrf(args.get('auth'), args.get('attr'))

            # fugly cast from large numbers to string to deal with XML-RPC
            for val in ( 'num_prefixes_v4', 'num_prefixes_v6',
                'total_addresses_v4', 'total_addresses_v6',
                'used_addresses_v4', 'used_addresses_v6', 'free_addresses_v4',
                'free_addresses_v6'):
                res[val] = unicode(res[val])

            return res
        except (AuthError, NipapError) as exc:
            self.logger.debug(unicode(exc))
            raise Fault(exc.error_code, unicode(exc))