'Creates a volume from a snapshot.
If the snapshot does not exist or source volume\'s backing does not
exist, then pass.
:param volume: New Volume object
:param snapshot: Reference to snapshot entity'

def _create_volume_from_snapshot(self, volume, snapshot):

    backing = self.volumeops.get_backing(snapshot['volume_name'])
    if (not backing):
        LOG.info('There    is    no    backing    for    the    snapshotted    volume:    %(snap)s.    Not    creating    any    backing    for    the    volume:    %(vol)s.', {'snap': snapshot['name'], 'vol': volume['name']})
        return
    snapshot_moref = self.volumeops.get_snapshot(backing, snapshot['name'])
    if (not snapshot_moref):
        LOG.info('There    is    no    snapshot    point    for    the    snapshotted    volume:    %(snap)s.    Not    creating    any    backing    for    the    volume:    %(vol)s.', {'snap': snapshot['name'], 'vol': volume['name']})
        return
    clone_type = VMwareVcVmdkDriver._get_clone_type(volume)
    self._clone_backing(volume, backing, snapshot_moref, clone_type, snapshot['volume_size'])
