'Create a snapshot from a volume and return its properties.'

def create_snapshot(self, snapshot):

    src_vref = snapshot.volume
    ldev = utils.get_ldev(src_vref)
    if (ldev is None):
        msg = utils.output_log(MSG.INVALID_LDEV_FOR_VOLUME_COPY, type='volume', id=src_vref['id'])
        raise exception.VSPError(msg)
    size = snapshot['volume_size']
    metadata = utils.get_volume_metadata(src_vref)
    new_ldev = self._copy_ldev(ldev, size, metadata)
    return {'provider_location': six.text_type(new_ldev)}
