'Create a snap Vx of a volume.
:param array: the array serial number
:param snapshot: the snapshot object
:param source_device_id: the source device id
:param extra_specs: the extra specifications
:returns: snap_dict'

def _create_snapshot(self, array, snapshot, source_device_id, extra_specs):

    clone_name = self.utils.get_volume_element_name(snapshot.id)
    snap_name = self.utils.truncate_string(clone_name, 19)
    try:
        self.provision.create_volume_snapvx(array, source_device_id, snap_name, extra_specs)
    except Exception as e:
        exception_message = (_('Error    creating    snap    Vx    of    %(vol)s.    Exception    received:    %(e)s.') % {'vol': source_device_id, 'e': six.text_type(e)})
        LOG.error(exception_message)
        raise exception.VolumeBackendAPIException(data=exception_message)
    snap_dict = {'snap_name': snap_name, 'source_id': source_device_id}
    return snap_dict
