<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def find_free_prefix(self, args):
 """ Find a free prefix. Valid keys in the `args`-struct: * `auth` [struct] Authentication options passed to the :class:`AuthFactory`. * `args` [struct] Arguments for the find_free_prefix-function such as what prefix or pool to allocate from. """


        try:
            return self.nip.find_free_prefix(args.get('auth'), args.get('vrf'), args.get('args'))
        except NipapError as exc:
            self.logger.debug(unicode(exc))
            raise Fault(exc.error_code, unicode(exc))