'Create a new cinder snapshot on a volume.
This maps onto a Concerto \'timemark\', but we must always first
ensure that a snapshot resource area (SRA) exists, and that a
snapshot policy exists.
:param snapshot:  cinder snapshot object provided by the Manager
:raises:
VolumeBackendAPIException: If SRA could not be created, or
snapshot policy could not be created
RequestRetryTimeout: If backend could not complete the request
within the allotted timeout.
ViolinBackendErr: If backend reports an error during the
create snapshot phase.'

def _create_lun_snapshot(self, snapshot):

    cinder_volume_id = snapshot['volume_id']
    cinder_snapshot_id = snapshot['id']
    LOG.debug('Creating    LUN    snapshot    %(snap_id)s    on    volume    %(vol_id)s    %(dpy_name)s.', {'snap_id': cinder_snapshot_id, 'vol_id': cinder_volume_id, 'dpy_name': snapshot['display_name']})
    self._ensure_snapshot_resource_area(cinder_volume_id)
    self._ensure_snapshot_policy(cinder_volume_id)
    try:
        self._send_cmd(self.vmem_mg.snapshot.create_lun_snapshot, 'Create    TimeMark    successfully', lun=cinder_volume_id, comment=self._compress_snapshot_id(cinder_snapshot_id), priority=CONCERTO_DEFAULT_PRIORITY, enable_notification=False)
    except Exception:
        LOG.exception('Lun    create    snapshot    for    volume    %(vol)s    snapshot    %(snap)s    failed!', {'vol': cinder_volume_id, 'snap': cinder_snapshot_id})
        raise
