'Creates child folder under the given parent folder.
:param parent_folder: Reference to the parent folder
:param child_folder_name: Name of the child folder
:return: Reference to the child folder'

def create_folder(self, parent_folder, child_folder_name):

    LOG.debug('Creating    folder:    %(child_folder_name)s    under    parent    folder:    %(parent_folder)s.', {'child_folder_name': child_folder_name, 'parent_folder': parent_folder})
    try:
        child_folder = self._session.invoke_api(self._session.vim, 'CreateFolder', parent_folder, name=child_folder_name)
        LOG.debug('Created    child    folder:    %s.', child_folder)
    except exceptions.DuplicateName:
        LOG.debug('Folder:    %s    already    exists.', child_folder_name)
        child_folder = self._get_child_folder(parent_folder, child_folder_name)
    return child_folder
