Вызов API Python-jenkins для перенастройки задания не работает

В настоящее время я использую API jenkins-python для подключения к моему серверу jenkins, получения информации о задании и успешного получения xml конфигурации задания через этот API. Я пытаюсь отредактировать часть этого XML-файла конфигурации, а затем отправить его обратно в Jenkins... однако это не работает. Вызов API для этого существует в reconfig_job, но когда я использую следующее:

jenkinsServer.reconfig_job('jobname', 'xmlFile.xml')

Я не получаю никаких результатов от запуска этого, никаких сбоев, никаких исключений, ничего... но когда я смотрю на свою работу jenkins, конфигурация не изменилась. Поскольку здесь нет сообщений, не совсем уверен, в чем проблема.

XML, который я пытаюсь использовать для новой конфигурации, должен быть в порядке, потому что я могу использовать curl, чтобы подтолкнуть новый XML конфигурации, и это успешно обновляет задание jenkins.

Заранее спасибо, ребята!


person warlord786    schedule 13.01.2017    source источник


Ответы (1)


config_xml в reconfig_job должен быть строка xml, а не файл xml.

Итак, в вашем случае выполните:

with open('xmlFile.xml', 'r') as xml_file:
    config_data = xml_file.read()
jenkinsServer.reconfig_job('jobname', config_data)

(Кстати, проверьте, не хотели ли вы поместить строку 'jobname' вместо jobname переменной, содержащей имя задания.)

person aneroid    schedule 13.01.2017
comment
Похоже, я нахожусь в той же лодке при переходе на это, по-прежнему нет вывода или ошибок, а задание все еще не обновляется. Я могу распечатать config_data, и это правильный XML с изменениями, которые я хочу внести. Также да, я передаю строковый параметр имени моей работы. - person warlord786; 13.01.2017
comment
Понятно, проблема заключалась в том, что я использовал http вместо https для URL-адреса моего сервера Jenkins. Что, казалось, не имело значения для других вызовов, которые я делал, но имело значение для загрузки конфигурации. Изменение этого решило проблему, и теперь конфигурация задания обновляется правильно. Спасибо - person warlord786; 13.01.2017