def test_raises_if_aliased_to_multiple_indices(self, client): """Raise if ``index`` is an alias pointing to multiple indices.""" client.conn.indices.get_alias.return_value = { 'index-one': {'aliases': {'foo': {}}}, 'index-two': {'aliases': {'foo': {}}}, } with pytest.raises(RuntimeError): get_aliased_index(client)
def test_returns_underlying_index_name(self, client): """If ``index`` is an alias, return the name of the concrete index.""" client.conn.indices.get_alias.return_value = { 'target-index': {'aliases': {'foo': {}}}, } assert get_aliased_index(client) == 'target-index'
def reindex(session, es, request): """Reindex all annotations into a new index, and update the alias.""" if get_aliased_index(es) is None: raise RuntimeError('cannot reindex if current index is not aliased') settings = request.find_service(name='settings') new_index = configure_index(es) try: settings.put(SETTING_NEW_INDEX, new_index) request.tm.commit() indexer = BatchIndexer(session, es, request, target_index=new_index, op_type='create') errored = indexer.index() if errored: log.debug('failed to index {} annotations, retrying...'.format( len(errored))) errored = indexer.index(errored) if errored: log.warn('failed to index {} annotations: {!r}'.format( len(errored), errored)) update_aliased_index(es, new_index) finally: settings.delete(SETTING_NEW_INDEX) request.tm.commit()
def test_raises_if_aliased_to_multiple_indices(self, client): """Raise if ``index`` is an alias pointing to multiple indices.""" client.conn.indices.get_alias.return_value = { 'index-one': { 'aliases': { 'foo': {} } }, 'index-two': { 'aliases': { 'foo': {} } }, } with pytest.raises(RuntimeError): get_aliased_index(client)
def test_returns_underlying_index_name(self, client): """If ``index`` is an alias, return the name of the concrete index.""" client.conn.indices.get_alias.return_value = { 'target-index': { 'aliases': { 'foo': {} } }, } assert get_aliased_index(client) == 'target-index'
def test_returns_none_when_no_alias(self, client): """If ``index`` is a concrete index, return None.""" client.conn.indices.get_alias.side_effect = NotFoundError('test', 'test desc') assert get_aliased_index(client) is None
def test_returns_none_when_no_alias(self, client): """If ``index`` is a concrete index, return None.""" client.conn.indices.get_alias.side_effect = NotFoundError( 'test', 'test desc') assert get_aliased_index(client) is None