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