'Creates a new child provider with the given name and uuid under the
given parent.
:returns: the new provider
:raises ValueError if parent_uuid points to a non-existing provider.'

def new_child(self, name, parent_uuid, uuid=None, generation=None):

    with self.lock:
        parent = self._find_with_lock(parent_uuid)
        if (not parent):
            raise ValueError((_('No    such    parent    %s') % parent_uuid))
        p = _Provider(name, uuid, generation, parent_uuid)
        parent.add_child(p)
        return p
