У меня есть приложение, которое подключается к узлу упругого поиска на другом сервере через клиент транспорта с использованием JAVA API. У узла есть защита экрана, поэтому я использую maven для извлечения экрана. Мое приложение работает нормально. Однако теперь я пытаюсь настроить интеграционные тесты для процесса сборки моего приложения. Таким образом, вместо того, чтобы пытаться использовать Транспортный клиент, я пытаюсь запустить локальный узел для запуска моих тестов. Однако местный узел жалуется на следующие проблемы.Отключить экран для тестов интеграции
- Лицензия действительна только в течение 30 дней. Документация прекрасно описывает, как это сделать, используя всевозможные инструменты, но не говорит, как обновлять лицензию с помощью JAVA API.
- Я получаю org.elasticsearch.shield.authz.AuthorizationException: действие [индексы: data/write/index] неавторизовано для пользователя [__es_system_user]. Это происходит потому, что мой узел не настроил пользователей. Вновь документация прекрасно описывает, как добавлять пользователей к узлу, но не объясняет, как это сделать, используя JAVA API.
Это меня интересует, можно ли отключить щит для тестов интеграции. Я попробовал следующее, но это не сработало. Любая помощь приветствуется.
nodeBuilder().local(true).settings(ImmutableSettings.builder()
.put("shield.enabled", false)).build()
Так странно, работая сейчас. Похоже, я ответил на свой вопрос. Кстати, я создал узел, используя вышеприведенный код. Есть ли способ подключиться к этому узлу из одного и того же jvm с помощью TransportClient? – dingdong
Да возможно: 'InternalNode internalNode = (InternalNode) узел; TransportClient transportClient = new TransportClient (ImmutableSettings.settingsBuilder() .put ("shield.enabled", false) .put ("node.local", true)); TransportAddress address = internalNode.injector(). GetInstance (TransportService.class) .boundAddress(). PublishAddress(); transportClient.addTransportAddress (адрес); ' На основании тестового кода elasticsearch: https://github.com/elastic/elasticsearch/blob/1.x/src/test/java/org/elasticsearch/test/InternalTestCluster.java # L854-L869 – jaymode
У меня нет доступа к моему внутреннему узлу из кода, который запускает TransportClient. Есть ли какая-то статическая функция для извлечения последнего созданного активного узла? – dingdong