def verify_repository()

in curator/helpers/testers.py [0:0]


def verify_repository(client, repository=None):
    """
    Do :py:meth:`~.elasticsearch.snapshot.verify_repository` call. If it fails, raise a
    :py:exc:`~.curator.exceptions.RepositoryException`.

    :param client: A client connection object
    :type client: :py:class:`~.elasticsearch.Elasticsearch`
    :param repository: A repository name

    :type client: :py:class:`~.elasticsearch.Elasticsearch`
    :type repository: str

    :rtype: None
    """
    logger = logging.getLogger(__name__)
    try:
        nodes = client.snapshot.verify_repository(name=repository)['nodes']
        logger.debug('All nodes can write to the repository')
        logger.debug('Nodes with verified repository access: %s', nodes)
    except Exception as err:
        try:
            if err.status_code == 404:
                msg = (
                    f'--- Repository "{repository}" not found. Error: '
                    f'{err.meta.status}, {err.error}'
                )
            else:
                msg = (
                    f'--- Got a {err.meta.status} response from Elasticsearch.  '
                    f'Error message: {err.error}'
                )
        except AttributeError:
            msg = f'--- Error message: {err}'.format()
        report = f'Failed to verify all nodes have repository access: {msg}'
        raise RepositoryException(report) from err