def handle_snapshot(config_spec, object_ref, reloc_spec, template, vm_):
    '''
    Returns a clone spec for cloning from shapshots
    :rtype vim.vm.CloneSpec
    '''
    if 'snapshot' not in vm_:
        return None

    allowed_types = [
        FLATTEN_DISK_FULL_CLONE,
        COPY_ALL_DISKS_FULL_CLONE,
        CURRENT_STATE_LINKED_CLONE,
        QUICK_LINKED_CLONE,
    ]

    clone_spec = get_clonespec_for_valid_snapshot(
        config_spec,
        object_ref,
        reloc_spec,
        template,
        vm_)
    if not clone_spec:
        raise SaltCloudSystemExit('Invalid disk move type specified'
                                  ' supported types are'
                                  ' {0}'.format(' '.join(allowed_types)))
    return clone_spec
Returns a clone spec for cloning from shapshots
    :rtype vim.vm.CloneSpec