Дженкинс — получение информации о плагине EnvInject с помощью rest api

#rest #jenkins

#rest #Дженкинс

Вопрос:

Я использую https://wiki.jenkins.io/display/JENKINS/EnvInject Плагин 1.93.1 в моей установке Jenkins.

Мне нужно получить конфигурацию свойств EnvInject для каждого задания, которое у меня есть, но, похоже, я не могу найти способ сделать это в job rest api.

Я решил сделать это, извлекая последнюю сборку для каждого задания, а затем нажимая injectedEnvVars/api/ .

Эта стратегия не является оптимальной, потому что я должен выполнять запрос для каждого задания, а это занимает слишком много времени (более 4000 заданий).

Я что-то упустил? Есть ли способ получить свойства EnvInject вместе с информацией о задании?

Комментарии:

1. Можете ли вы иметь доступ к входу в главную машину Дженкинса, проверьте папку JENKINS_HOME, я думаю, что есть что-то для хранения значения EnvInject для каждого задания.

Ответ №1:

Если вы считаете, что отправка 4000 HTTP-запросов неэффективна, вы можете выполнить итерацию папки JENKINS_HOME на Jenkins Master.

Следующая картинка иллюстрирует структуру, для injectedEnvVars.txt которой хранится значение EnvInject .

  1. .jenkins является ли папка JENKINS_HOME
  2. fetch-envinject-value это работа Дженкинса
  3. builds/1 является ли сборка 1-го задания
  4. builds/1/injectedEnvVars.txt все переменные среды для этой сборки задания.

введите описание изображения здесь

Комментарии:

1. Я понял, почему запросы выполняются медленно. Это как-то связано с нашей аутентификацией LDAP. Каждый базовый запрос аутентификации занимает ~ 5 секунд против 100 миллисекунд при доступе через браузер.