'Clone backing.
If the clone_type is \'full\', then a full clone of the source volume
backing will be created. Else, if it is \'linked\', then a linked clone
of the source volume backing will be created.
:param name: Name for the clone
:param backing: Reference to the backing entity
:param snapshot: Snapshot point from which the clone should be done
:param clone_type: Whether a full clone or linked clone is to be made
:param datastore: Reference to the datastore entity
:param disk_type: Disk type of the clone
:param host: Target host
:param resource_pool: Target resource pool
:param extra_config: Key-value pairs to be written to backing\'s
extra-config
:param folder: The location of the clone'

def clone_backing(self, name, backing, snapshot, clone_type, datastore, disk_type=None, host=None, resource_pool=None, extra_config=None, folder=None):

    LOG.debug('Creating    a    clone    of    backing:    %(back)s,    named:    %(name)s,    clone    type:    %(type)s    from    snapshot:    %(snap)s    on    resource    pool:    %(resource_pool)s,    host:    %(host)s,    datastore:    %(ds)s    with    disk    type:    %(disk_type)s.', {'back': backing, 'name': name, 'type': clone_type, 'snap': snapshot, 'ds': datastore, 'disk_type': disk_type, 'host': host, 'resource_pool': resource_pool})
    if (folder is None):
        folder = self._get_folder(backing)
    if (clone_type == LINKED_CLONE_TYPE):
        disk_move_type = 'createNewChildDiskBacking'
    else:
        disk_move_type = 'moveAllDiskBackingsAndDisallowSharing'
    clone_spec = self._get_clone_spec(datastore, disk_move_type, snapshot, backing, disk_type, host=host, resource_pool=resource_pool, extra_config=extra_config)
    task = self._session.invoke_api(self._session.vim, 'CloneVM_Task', backing, folder=folder, name=name, spec=clone_spec)
    LOG.debug('Initiated    clone    of    backing:    %s.', name)
    task_info = self._session.wait_for_task(task)
    new_backing = task_info.result
    LOG.info('Successfully    created    clone:    %s.', new_backing)
    return new_backing
