Remove information about a snapshot. If a snapshot is published, it can not be
        dropped without first removing publishing for that snapshot. If a snapshot is
        used as the source for other snapshots, Aptly will refuse to remove it unless
        forced.

    :param str name: The name of the snapshot given during snapshot creation.
    :param str config_path: The path to the configuration file for the aptly instance.
    :param bool force: Whether to remove the snapshot even if it is used as the source
        of another snapshot.

    :return: A boolean representing whether all changes succeeded.
    :rtype: bool

    CLI Example:

    .. code-block:: bash

        salt '*' aptly.delete_snapshot name="test-snapshot"

def delete_snapshot(name, config_path=_DEFAULT_CONFIG_PATH, force=False):
    '''
    Remove information about a snapshot. If a snapshot is published, it can not be
        dropped without first removing publishing for that snapshot. If a snapshot is
        used as the source for other snapshots, Aptly will refuse to remove it unless
        forced.

    :param str name: The name of the snapshot given during snapshot creation.
    :param str config_path: The path to the configuration file for the aptly instance.
    :param bool force: Whether to remove the snapshot even if it is used as the source
        of another snapshot.

    :return: A boolean representing whether all changes succeeded.
    :rtype: bool

    CLI Example:

    .. code-block:: bash

        salt '*' aptly.delete_snapshot name="test-snapshot"
    '''
    _validate_config(config_path)
    force = six.text_type(bool(force)).lower()

    current_snapshot = __salt__['aptly.get_snapshot'](name=name, config_path=config_path)

    if not current_snapshot:
        log.debug('Snapshot already absent: %s', name)
        return True

    cmd = ['snapshot', 'drop', '-config={}'.format(config_path),
           '-force={}'.format(force), name]

    _cmd_run(cmd)
    snapshot = __salt__['aptly.get_snapshot'](name=name, config_path=config_path)

    if snapshot:
        log.error('Unable to remove snapshot: %s', name)
        return False
    log.debug('Removed snapshot: %s', name)
    return True